Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -1,4 +1,3 @@
|
|
| 1 |
-
|
| 2 |
from flask import Flask, render_template_string, request, redirect, url_for, send_file, flash, jsonify
|
| 3 |
import json
|
| 4 |
import os
|
|
@@ -273,11 +272,15 @@ def save_data(data):
|
|
| 273 |
def start_bot_polling():
|
| 274 |
if bot and dp:
|
| 275 |
logging.info("Starting Aiogram bot polling...")
|
| 276 |
-
|
| 277 |
-
|
| 278 |
-
|
| 279 |
-
|
| 280 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 281 |
|
| 282 |
async def broadcast_message(user_ids, text):
|
| 283 |
# Создаем новый экземпляр бота для рассылки, чтобы избежать конфликта Event Loop
|
|
|
|
|
|
|
| 1 |
from flask import Flask, render_template_string, request, redirect, url_for, send_file, flash, jsonify
|
| 2 |
import json
|
| 3 |
import os
|
|
|
|
| 272 |
def start_bot_polling():
|
| 273 |
if bot and dp:
|
| 274 |
logging.info("Starting Aiogram bot polling...")
|
| 275 |
+
# Используем бесконечный цикл для перезапуска при ошибках сети
|
| 276 |
+
while True:
|
| 277 |
+
try:
|
| 278 |
+
# handle_signals=False критически важен при запуске в отдельном потоке
|
| 279 |
+
# asyncio.run создает и закрывает цикл событий автоматически
|
| 280 |
+
asyncio.run(dp.start_polling(bot, handle_signals=False))
|
| 281 |
+
except Exception as e:
|
| 282 |
+
logging.error(f"Bot polling crashed: {e}. Restarting in 10 seconds...")
|
| 283 |
+
time.sleep(10)
|
| 284 |
|
| 285 |
async def broadcast_message(user_ids, text):
|
| 286 |
# Создаем новый экземпляр бота для рассылки, чтобы избежать конфликта Event Loop
|