From fc8f041bb833dfbc3f050e9a4c56cbde48adb6a5 Mon Sep 17 00:00:00 2001 From: diSabler Date: Sun, 23 Jul 2017 01:14:32 +0300 Subject: fix: service plugin while long polling --- isida.py | 23 +++++++++++++---------- kernel.py | 23 ++++++++++++++++------- plugins/service.py | 7 ++++--- 3 files changed, 33 insertions(+), 20 deletions(-) diff --git a/isida.py b/isida.py index 555db01..ab9ce33 100644 --- a/isida.py +++ b/isida.py @@ -29,19 +29,21 @@ import time import traceback data_folder = 'data/%s' -slog_folder = data_folder % 'syslog/%s' -tmp_folder = data_folder % 'tmp/%s' +slog_folder = data_folder % 'syslog/%s' +tmp_folder = data_folder % 'tmp/%s' -updatelog_file = slog_folder % 'update.log' -ver_file = tmp_folder % 'version' -old_ver_file = tmp_folder % 'ver' -pid_file = tmp_folder % 'isida.pid' -starttime_file = tmp_folder % 'starttime' +updatelog_file = slog_folder % 'update.log' +ver_file = tmp_folder % 'version' +old_ver_file = tmp_folder % 'ver' +pid_file = tmp_folder % 'isida.pid' +starttime_file = tmp_folder % 'starttime' id_append = '' -GIT_VER_FORMAT = '%s.%s-git%s' -TIME_VER_FORMAT = '%s-none%s' +GIT_VER_FORMAT = '%s.%s-git%s' +TIME_VER_FORMAT = '%s-none%s' OFFSET = 0 # Message offset +RAW_IN = '' +mode = '' def readfile(filename): fp = file(filename) @@ -130,7 +132,8 @@ if __name__ == "__main__": t.kill() elif str(t).startswith('<_Timer'): t.cancel() - except: pass + except: + pass mode = str(mode) if mode == 'update': update(USED_REPO) diff --git a/kernel.py b/kernel.py index 94d0cf1..f478abe 100644 --- a/kernel.py +++ b/kernel.py @@ -468,6 +468,8 @@ def send_raw(raw_in, method, dt, fl={}): # Send message def send_msg(raw_in, msg, parse_mode = 'HTML', custom={}): + global RAW_IN + RAW_IN = raw_in #if parse_mode == 'HTML': # msg = html_escape_soft(msg) MSG = { 'chat_id': raw_in['message']['chat'].get('id', ''), @@ -820,7 +822,7 @@ size_overflow = 262144 # Web page limit in bytes # # Proxy settings user_agent = 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36' # # User agent for web requests -TIMEOUT = 0.1 # Timeout between request updates +TIMEOUT = 1 # Timeout between request updates MAX_TIMEOUT = 15 # Maximal timeout after request error LAST_MESSAGE = time.time() # Last message time CYCLES = 0 # Work cycles @@ -900,15 +902,22 @@ pprint('*** Total plugins: %s' % len(plug_list), 'green') pprint('-'*50, 'blue') pprint('Let\'s begin!', 'white') +if mode: + try: + send_msg(RAW_IN, 'Last mode: %s' % mode) + except: + pass + # --- Main cycle ------------------------------------------------------------- # while not GAME_OVER: try: - if check_updates(): - CYCLES += 1 - time.sleep(TIMEOUT) - else: - THREAD_ERROR_COUNT += 1 - time.sleep(MAX_TIMEOUT) + if not GAME_OVER: + if check_updates(): + CYCLES += 1 + time.sleep(TIMEOUT) + else: + THREAD_ERROR_COUNT += 1 + time.sleep(MAX_TIMEOUT) except KeyboardInterrupt: pprint('Shutdown by CTRL+C...', 'bright_red') time.sleep(1) diff --git a/plugins/service.py b/plugins/service.py index 8d20a3f..f42a0fb 100644 --- a/plugins/service.py +++ b/plugins/service.py @@ -22,11 +22,12 @@ # --------------------------------------------------------------------------- # def raw_bot_restart(raw_in, msg, status): - global GAME_OVER, BOT_EXIT_TYPE - send_msg(raw_in, msg) - check_updates() + global GAME_OVER, BOT_EXIT_TYPE, MAX_TIMEOUT GAME_OVER = True BOT_EXIT_TYPE = status + MAX_TIMEOUT = 0.001 + send_msg(raw_in, msg) + check_updates() def cmd_update(raw_in): raw_bot_restart(raw_in, 'Let\'s update!', 'update') -- cgit v1.2.3