From c2ff64b0bda8e1b3049cf6e449aab3b9cb025d62 Mon Sep 17 00:00:00 2001 From: annelin Date: Thu, 13 Jun 2019 13:12:59 +0300 Subject: [PATCH] Release 1.3.2 [FIX] fixed status-update function [FIX] trying to decrease memory leaks by using chats and message database --- inc/telegramclient.rb | 6 +++--- inc/xmppcomponent.rb | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/inc/telegramclient.rb b/inc/telegramclient.rb index d5feb84..5ca0335 100644 --- a/inc/telegramclient.rb +++ b/inc/telegramclient.rb @@ -18,8 +18,8 @@ class TelegramClient config.client.use_test_dc = params['use_test_dc'] || false config.client.system_version = '42' # I think I have permission to hardcode The Ultimate Question of Life, the Universe, and Everything?.. config.client.use_file_database = true # wow - config.client.use_message_database = false # such library - config.client.use_chat_info_database = false # much options + config.client.use_message_database = true # such library + config.client.use_chat_info_database = true # much options config.client.enable_storage_optimizer = false # ... end TD::Api.set_log_verbosity_level(params['verbosity'] || 1) @@ -380,7 +380,7 @@ class TelegramClient # sync statuses with XMPP roster def sync_status() @logger.debug "Syncing statuses with roster.." - @cache[:chats].each do |chat| self.process_status_update(chat.id, (@cache[:users].include? chat.id ? @cache[:users][chat.id].status : chat.title.to_s), true) end + @cache[:chats].each_value do |chat| self.process_status_update(chat.id, (chat.id > 0 and @cache[:users].include? chat.id) ? @cache[:users][chat.id].status : chat.title.to_s, true) end end # convert telegram status to XMPP one diff --git a/inc/xmppcomponent.rb b/inc/xmppcomponent.rb index 9200b1b..c83955f 100644 --- a/inc/xmppcomponent.rb +++ b/inc/xmppcomponent.rb @@ -84,7 +84,7 @@ class XMPPComponent @sessions.each do |jid, session| self.presence(jid, nil, :subscribe) end Thread.new { while @component.is_connected? do @presence_que.each_value { |p| @component.send(p) }; @presence_que.clear; sleep(60); end } # presence updater thread Thread.stop() - rescue Interrupt + rescue Interrupt, SignalException @logger.error 'Interrupted!' @component.on_exception do |exception,| end self.disconnect()