Mr-Help commited on
Commit
f703380
·
verified ·
1 Parent(s): f1b8b54

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +20 -17
main.py CHANGED
@@ -144,39 +144,42 @@ def call_ai_bot(message: str):
144
 
145
  def extract_text_message(msg_data: dict) -> str:
146
  """
147
- يحاول يطلع النص من messageData مهما كان typeMessage
 
 
 
148
  """
149
  if not isinstance(msg_data, dict):
150
  return ""
151
 
152
  t = (msg_data.get("typeMessage") or "").strip()
153
 
154
- # 1) textMessage
155
  if t == "textMessage":
156
  return ((msg_data.get("textMessageData") or {}).get("textMessage") or "").strip()
157
 
158
- # 2) extendedTextMessage (شائع جدًا)
159
  if t == "extendedTextMessage":
160
  return ((msg_data.get("extendedTextMessageData") or {}).get("text") or "").strip()
161
 
162
- # 3) quotedMessage / reply (لو جاي مع رد)
163
- if t == "quotedMessage":
164
- q = msg_data.get("quotedMessageData") or {}
165
- # أحيانًا يبقى جوّه نفس المفاتيح
166
- return (
167
- (q.get("textMessage") or "")
168
- or (q.get("text") or "")
169
- or ""
170
- ).strip()
171
-
172
- # 4) fallback عام: جرّب مفاتيح محتملة
173
- # بعض الـ payloads بيكون النص تحت key = "text" أو "message"
174
  for path in [
175
  ("textMessageData", "textMessage"),
176
  ("extendedTextMessageData", "text"),
177
- ("textMessageData", "text"),
178
- ("message",),
179
  ("text",),
 
180
  ]:
181
  cur = msg_data
182
  for k in path:
 
144
 
145
  def extract_text_message(msg_data: dict) -> str:
146
  """
147
+ يرجّع نص المستخدم سواء كان:
148
+ - textMessage
149
+ - extendedTextMessage
150
+ - interactiveButtonsResponse (ضغط زرار)
151
  """
152
  if not isinstance(msg_data, dict):
153
  return ""
154
 
155
  t = (msg_data.get("typeMessage") or "").strip()
156
 
157
+ # 1) رسالة نصية عادية
158
  if t == "textMessage":
159
  return ((msg_data.get("textMessageData") or {}).get("textMessage") or "").strip()
160
 
161
+ # 2) رسالة نصية ممتدة (شائع)
162
  if t == "extendedTextMessage":
163
  return ((msg_data.get("extendedTextMessageData") or {}).get("text") or "").strip()
164
 
165
+ # 3) ضغط زرار (Interactive Buttons Response)
166
+ if t == "interactiveButtonsResponse":
167
+ r = msg_data.get("interactiveButtonsResponse") or {}
168
+ # أهم حاجة: selectedDisplayText (نص الزرار)
169
+ txt = (r.get("selectedDisplayText") or "").strip()
170
+ if txt:
171
+ return txt
172
+ # fallback: selectedId
173
+ return (r.get("selectedId") or "").strip()
174
+
175
+ # fallback عام
 
176
  for path in [
177
  ("textMessageData", "textMessage"),
178
  ("extendedTextMessageData", "text"),
179
+ ("interactiveButtonsResponse", "selectedDisplayText"),
180
+ ("interactiveButtonsResponse", "selectedId"),
181
  ("text",),
182
+ ("message",),
183
  ]:
184
  cur = msg_data
185
  for k in path: