1
1
from argparse import ArgumentParser
2
- from json import dump , load
2
+ from json import dump , dumps , load , loads
3
3
from logging import INFO , basicConfig , getLogger
4
4
from subprocess import run
5
5
@@ -272,10 +272,10 @@ def get_logs(update: Update, context: CallbackContext) -> None:
272
272
if update .effective_user .id == config ['owner_id' ]:
273
273
if not context .args :
274
274
length = config ['logging' ]['log_length' ]
275
- log_event (update , f'Отправил logs без ключей , берем { length } ' )
275
+ log_event (update , f'Отправил logs без аргументов , берем { length } ' )
276
276
else :
277
277
length = context .args [0 ]
278
- log_event (update , f'Отправил logs с ключом { length } ' )
278
+ log_event (update , f'Отправил logs с аргументом { length } ' )
279
279
result = run (['tail' , '-n' , length , config ['logging' ]['log_file' ]],
280
280
capture_output = True , universal_newlines = True )
281
281
log = result .stdout
@@ -288,6 +288,33 @@ def get_logs(update: Update, context: CallbackContext) -> None:
288
288
log_event (update , 'Отправил logs, хотя не должен о ней знать' )
289
289
290
290
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
+
291
318
config = get_config ()
292
319
"""dict: all config options."""
293
320
@@ -307,7 +334,9 @@ def get_logs(update: Update, context: CallbackContext) -> None:
307
334
CallbackQueryHandler (statistics_handler , pattern = 'statistics' ),
308
335
CallbackQueryHandler (parking_handler ),
309
336
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 )]
311
340
312
341
313
342
def main ():
0 commit comments