11# -*- coding: utf-8 -*-
22
3- from telegram import ForceReply , ParseMode
3+ from telegram import ForceReply , ParseMode , InlineKeyboardButton , InlineKeyboardMarkup
44
55from blackjackbot .commands .admin .functions import notify_admins
66from blackjackbot .lang import translate
@@ -13,6 +13,58 @@ def stats_cmd(update, context):
1313 update .message .reply_text (get_user_stats (update .effective_user .id ), parse_mode = ParseMode .HTML )
1414
1515
16+ def reset_stats_cmd (update , context ):
17+ """Asks the user if they want to reset their statistics"""
18+ user_id = update .effective_user .id
19+ chat_id = update .effective_chat .id
20+
21+ _modify_old_reset_message (context )
22+
23+ db = Database ()
24+ lang_id = db .get_lang_id (user_id )
25+
26+ keyboard = [[
27+ InlineKeyboardButton (translate ("reset_stats_confirm_button" ), callback_data = 'reset_stats_confirm' ),
28+ InlineKeyboardButton (translate ("reset_stats_cancel_button" ), callback_data = 'reset_stats_cancel' ),
29+ ]]
30+ reply_markup = InlineKeyboardMarkup (keyboard )
31+
32+ sent_message = update .message .reply_text (translate ("reset_stats_confirm" , lang_id ), reply_markup = reply_markup )
33+ reset_message = {"message_id" : sent_message .message_id , "chat_id" : chat_id }
34+ context .user_data ["reset_messages" ] = reset_message
35+
36+
37+ def _modify_old_reset_message (context ):
38+ """Removes the last saved reset confirmation messages from the chat history"""
39+ reset_message = context .user_data .get ("reset_message" , None )
40+ if reset_message is None :
41+ return
42+
43+ try :
44+ context .bot .edit_message_reply_markup (chat_id = reset_message .get ("chat_id" ), message_id = reset_message .get ("message_id" ))
45+ except :
46+ pass
47+
48+ context .user_data ["reset_messages" ] = None
49+
50+
51+ def reset_stats_callback (update , context ):
52+ """Handler for confirmation of statistics reset"""
53+ query = update .callback_query
54+ query .answer ()
55+
56+ user_id = update .effective_user .id
57+ db = Database ()
58+ lang_id = db .get_lang_id (user_id )
59+
60+ if query .data == "reset_stats_confirm" :
61+ db .reset_stats (user_id = user_id )
62+ query .edit_message_text (translate ("reset_stats_executed" , lang_id ))
63+
64+ elif query .data == "reset_stats_cancel" :
65+ query .edit_message_text (translate ("reset_stats_cancelled" , lang_id ))
66+
67+
1668def comment_cmd (update , context ):
1769 """MessageHandler callback for the /comment command"""
1870 if context .user_data .get ("state" , UserState .IDLE ) != UserState .IDLE :
0 commit comments