Skip to content

Commit 6350c9b

Browse files
committed
Commands for statistics update by admin
1 parent 3f0d14c commit 6350c9b

File tree

1 file changed

+33
-4
lines changed

1 file changed

+33
-4
lines changed

parking_bot.py

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from argparse import ArgumentParser
2-
from json import dump, load
2+
from json import dump, dumps, load, loads
33
from logging import INFO, basicConfig, getLogger
44
from subprocess import run
55

@@ -272,10 +272,10 @@ def get_logs(update: Update, context: CallbackContext) -> None:
272272
if update.effective_user.id == config['owner_id']:
273273
if not context.args:
274274
length = config['logging']['log_length']
275-
log_event(update, f'Отправил logs без ключей, берем {length}')
275+
log_event(update, f'Отправил logs без аргументов, берем {length}')
276276
else:
277277
length = context.args[0]
278-
log_event(update, f'Отправил logs с ключом {length}')
278+
log_event(update, f'Отправил logs с аргументом {length}')
279279
result = run(['tail', '-n', length, config['logging']['log_file']],
280280
capture_output=True, universal_newlines=True)
281281
log = result.stdout
@@ -288,6 +288,33 @@ def get_logs(update: Update, context: CallbackContext) -> None:
288288
log_event(update, 'Отправил logs, хотя не должен о ней знать')
289289

290290

291+
def get_stats(update: Update, context: CallbackContext) -> None:
292+
"""Getting statistics by message from bot by bot owner."""
293+
if update.effective_user.id == config['owner_id']:
294+
update.effective_message.reply_text(
295+
dumps(context.bot_data['stats'].as_dict, indent=4))
296+
log_event(update, 'Экспортировал статистику в json')
297+
else:
298+
log_event(update, 'Отправил get_stats, хотя не должен о ней знать')
299+
300+
301+
def set_stats(update: Update, context: CallbackContext) -> None:
302+
"""Setting statistics by message from bot owner to bot."""
303+
if update.effective_user.id == config['owner_id']:
304+
if not context.args:
305+
update.effective_message.reply_text('Отсутствуют аргументы')
306+
log_event(update, f'Отправил set_stats без аргументов')
307+
else:
308+
stats = ''
309+
for item in context.args:
310+
stats = stats + ' ' + item
311+
context.bot_data['stats'].as_dict = loads(stats)
312+
update.effective_message.reply_text('Статистика импортирована')
313+
log_event(update, 'Импортировал статистику из json')
314+
else:
315+
log_event(update, 'Отправил set_stats, хотя не должен о ней знать')
316+
317+
291318
config = get_config()
292319
"""dict: all config options."""
293320

@@ -307,7 +334,9 @@ def get_logs(update: Update, context: CallbackContext) -> None:
307334
CallbackQueryHandler(statistics_handler, pattern='statistics'),
308335
CallbackQueryHandler(parking_handler),
309336
CommandHandler('whitelist', toggle_whitelist),
310-
CommandHandler('logs', get_logs, pass_args=True)]
337+
CommandHandler('logs', get_logs, pass_args=True),
338+
CommandHandler('get_stats', get_stats),
339+
CommandHandler('set_stats', set_stats, pass_args=True)]
311340

312341

313342
def main():

0 commit comments

Comments
 (0)