Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/isida/vi.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordiSabler <dissy@ya.ru>2017-07-23 01:14:32 +0300
committerdiSabler <dissy@ya.ru>2017-07-23 01:14:32 +0300
commitfc8f041bb833dfbc3f050e9a4c56cbde48adb6a5 (patch)
treecd7baf7b115caac1f91e4b53e1c048d0a7814c41
parent7279363c80d7ee034ab623ffa2cb3bee9e423661 (diff)
fix: service plugin while long polling
-rw-r--r--isida.py23
-rw-r--r--kernel.py23
-rw-r--r--plugins/service.py7
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')