[!] Using YAML serilaization instead of sqlite3. You may convert your SQLite db to YAML format using this:
(echo "---"; sqlite3 users.db 'select jid,login from users'|sed "s/|/: \'/g;s/$/\'/g") > users.dat
[FIX] Fixed repllies
[UPD] Sending presence probe after disconnect received — maybe there are another XMPP resource? ☺
[UPD] When XMPP user goes online if Telegram session already established -- resync statuses with Telegram network to get all contacts online immediately
@logger.debug"Received presence :%s from <%s> to <%s>"%[prsnc.type.to_s,prsnc.from.to_s,prsnc.to.to_s]
@logger.debug(prsnc.to_s)
ifprsnc.type==:subscribethenreply=prsnc.answer(false);reply.type=:subscribed;@component.send(reply);end# send "subscribed" reply to "subscribe" presence
ifprsnc.to==@component.jidand@sessions.key?prsnc.from.bare.to_sandprsnc.type==:unavailablethen@sessions[prsnc.from.bare.to_s].disconnect();return;end# go offline when received offline presence from jabber user
ifprsnc.to==@component.jidand@sessions.key?prsnc.from.bare.to_sthenself.request_tz(prsnc.from);@sessions[prsnc.from.bare.to_s].connect();return;end# connect if we have session
ifprsnc.to==@component.jidand@sessions.key?prsnc.from.bare.to_sandprsnc.type==:unavailablethen@sessions[prsnc.from.bare.to_s].disconnect();self.presence(prsnc.from,nil,:subscribe);return;end# go offline when received offline presence from jabber user
ifprsnc.to==@component.jidand@sessions.key?prsnc.from.bare.to_sthenself.request_tz(prsnc.from);@sessions[prsnc.from.bare.to_s].connect()||@sessions[prsnc.from.bare.to_s].sync_status();return;end# connect if we have session