@@ -1102,6 +1102,7 @@ async def handle_message(bot, update: Update, context: CallbackContext, logger)
11021102 context .user_data .pop ('active_translation' , None )
11031103 return True
11041104
1105+
11051106 # ~~~~~~~~~~~~~~
11061107 # User reminders
11071108 # ~~~~~~~~~~~~~~
@@ -1121,7 +1122,6 @@ async def handle_message(bot, update: Update, context: CallbackContext, logger)
11211122 system_message = "Reminders are disabled in config. Sorry!"
11221123 chat_history .append ({"role" : "system" , "content" : system_message })
11231124 context .chat_data ['chat_history' ] = chat_history
1124- # Optionally re-invoke GPT or just send final text
11251125 break # or return
11261126
11271127 user_id = update .effective_user .id
@@ -1134,47 +1134,68 @@ async def handle_message(bot, update: Update, context: CallbackContext, logger)
11341134 elif not reminder_text :
11351135 result_msg = "No reminder_text provided for adding a reminder."
11361136 else :
1137- result_msg = await handle_add_reminder (user_id , chat_id , reminder_text , due_time_utc )
1137+ result_msg = await handle_add_reminder (
1138+ user_id , chat_id , reminder_text , due_time_utc
1139+ )
1140+
1141+ # If it looks like success, have GPT make a nice user-facing confirmation
1142+ if "has been set" in result_msg :
1143+ # The snippet below is the new approach:
1144+ short_system_msg = (
1145+ f"A new reminder was successfully created for <{ due_time_utc } > "
1146+ f"with text: '{ reminder_text } '. "
1147+ "Please give the user a concise, friendly confirmation message in their language, "
1148+ "mentioning the date/time but NOT quoting the text verbatim unless it's appropriate."
1149+ )
1150+ chat_history .append ({"role" : "system" , "content" : short_system_msg })
1151+ else :
1152+ # Probably an error or partial success
1153+ chat_history .append ({"role" : "system" , "content" : result_msg })
11381154
11391155 elif action == 'view' :
1140- # call handle_view_reminders
11411156 result_msg = await handle_view_reminders (user_id )
1157+ chat_history .append ({"role" : "system" , "content" : result_msg })
11421158
11431159 elif action == 'delete' :
11441160 if not reminder_id :
11451161 result_msg = "No reminder_id was provided for delete."
11461162 else :
11471163 result_msg = await handle_delete_reminder (user_id , reminder_id )
1164+ chat_history .append ({"role" : "system" , "content" : result_msg })
11481165
11491166 elif action == 'edit' :
1150- # you'll want handle_edit_reminder
1151- # parse new_text vs. existing
1152- # if user gave none, we keep old
1153- # if user gave due_time_utc, we override
1154- # etc.
11551167 from reminder_handler import handle_edit_reminder
11561168 if not reminder_id :
11571169 result_msg = "No reminder_id was provided for edit."
11581170 else :
1159- # pass new_due_time_utc, new_text to the function
1160- result_msg = await handle_edit_reminder (user_id , reminder_id , due_time_utc , reminder_text )
1171+ result_msg = await handle_edit_reminder (
1172+ user_id , reminder_id , due_time_utc , reminder_text
1173+ )
1174+ chat_history .append ({"role" : "system" , "content" : result_msg })
1175+
11611176 else :
11621177 # unknown action
11631178 result_msg = f"Unknown 'action' for manage_reminder: { action } "
1179+ chat_history .append ({"role" : "system" , "content" : result_msg })
11641180
1165- # (D) put result_msg in system => re-call GPT or send direct
1166- chat_history .append ({"role" : "system" , "content" : result_msg })
1181+ # (D) Re-invoke GPT to produce final user-facing text
11671182 context .chat_data ['chat_history' ] = chat_history
1168-
1169- # Optionally re-invoke GPT to produce final user-facing text
1170- # or just send it
11711183 response_json = await make_api_request (bot , chat_history , bot .timeout )
1184+
11721185 final_reply_content = response_json ['choices' ][0 ]['message' ].get ('content' , '' )
11731186 final_reply = final_reply_content .strip () if final_reply_content else ""
11741187
11751188 # log & send
1176- bot .log_message (message_type = 'Bot' , message = final_reply , source = 'manage_reminder' )
1177- await context .bot .send_message (chat_id = chat_id , text = final_reply , parse_mode = ParseMode .HTML )
1189+ bot .log_message (
1190+ message_type = 'Bot' ,
1191+ message = final_reply ,
1192+ source = 'manage_reminder'
1193+ )
1194+ await context .bot .send_message (
1195+ chat_id = chat_id ,
1196+ text = final_reply ,
1197+ parse_mode = ParseMode .HTML
1198+ )
11781199
11791200 stop_typing_event .set ()
11801201 return
0 commit comments