Spaces:
Paused
Paused
Update app.py
Browse files
app.py
CHANGED
|
@@ -1920,12 +1920,22 @@ async def telegram_webhook_endpoint(request: Request):
|
|
| 1920 |
response_data = await handle_telegram_update(update)
|
| 1921 |
|
| 1922 |
if isinstance(response_data, list):
|
| 1923 |
-
|
| 1924 |
-
|
| 1925 |
-
|
| 1926 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1927 |
return item
|
| 1928 |
-
|
|
|
|
| 1929 |
|
| 1930 |
return response_data
|
| 1931 |
|
|
|
|
| 1920 |
response_data = await handle_telegram_update(update)
|
| 1921 |
|
| 1922 |
if isinstance(response_data, list):
|
| 1923 |
+
# Flatten and filter valid response dicts
|
| 1924 |
+
items = [i for i in response_data if i and isinstance(i, dict) and i.get("method")]
|
| 1925 |
+
|
| 1926 |
+
# Prefer sendMessage / editMessageText over answerCallbackQuery
|
| 1927 |
+
# so the user always sees a real message response.
|
| 1928 |
+
for priority in ("sendMessage", "editMessageText"):
|
| 1929 |
+
for item in items:
|
| 1930 |
+
if item.get("method") == priority:
|
| 1931 |
+
return item
|
| 1932 |
+
|
| 1933 |
+
# Fall back to answerCallbackQuery (e.g. show_alert cases)
|
| 1934 |
+
for item in items:
|
| 1935 |
+
if item.get("method") == "answerCallbackQuery":
|
| 1936 |
return item
|
| 1937 |
+
|
| 1938 |
+
return {"status": "ok"}
|
| 1939 |
|
| 1940 |
return response_data
|
| 1941 |
|