[FIX] fixed messages echo when xmpp session goes offline
[UPD] do not sync all telegram statuses immediately because it leads to stream error
[UPD] now using messages and files database again to reduce thousands of requests
@xmpp.presence(chat_id.to_s,nil,:chat,@cache[:chats][chat_id].title.to_s,nil,@cache[:userpics][chat_id])ifchat.type.instance_of?TD::Types::ChatType::BasicGrouporchat.type.instance_of?TD::Types::ChatType::Supergroup# send :chat status if its group/supergroup
self.process_user_info(chat.type.user_id)ifchat.type.instance_of?TD::Types::ChatType::Private# process user if its a private chat
# self.process_user_info(chat.type.user_id) if chat.type.instance_of? TD::Types::ChatType::Private # process user if its a private chat
}.wait
end
@ -370,7 +370,7 @@ class TelegramClient
self.process_status_update(user_id,user.status)# status update
@logger.info'New message from [%s] to [%s]'%[msg.from,msg.to]
returnself.process_internal_command(msg.from,msg.first_element_text('body'))ifmsg.to==@@transport.jid# treat message as internal command if received as transport jid
return@sessions[msg.from.bare.to_s].tg_outgoing(msg.from,msg.to.to_s,msg.first_element_text('body'))#if @sessions.key? msg.from.bare.to_s and @sessions[msg.from.bare.to_s].online? # queue message for processing session is active for jid from
@ -112,8 +113,6 @@ class XMPPComponent
reply.type=:result
reply.elements["vCard"]=vcard
@@transport.send(reply)
@sessions[iq.from.bare.to_s].tg_sync_roster(iq.to.to_s)# re-sync status