diff options
author | diSabler <dissy@ya.ru> | 2017-07-23 01:14:32 +0300 |
---|---|---|
committer | diSabler <dissy@ya.ru> | 2017-07-23 01:14:32 +0300 |
commit | fc8f041bb833dfbc3f050e9a4c56cbde48adb6a5 (patch) | |
tree | cd7baf7b115caac1f91e4b53e1c048d0a7814c41 | |
parent | 7279363c80d7ee034ab623ffa2cb3bee9e423661 (diff) |
fix: service plugin while long polling
-rw-r--r-- | isida.py | 23 | ||||
-rw-r--r-- | kernel.py | 23 | ||||
-rw-r--r-- | plugins/service.py | 7 |
3 files changed, 33 insertions, 20 deletions
@@ -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) @@ -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') |