Skip to content

Commit 73728e5

Browse files
committed
notifications; added processing logic
1 parent f877874 commit 73728e5

File tree

1 file changed

+38
-17
lines changed

1 file changed

+38
-17
lines changed

src/text_message_handler.py

Lines changed: 38 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)