Update app.py
Browse files
app.py
CHANGED
|
@@ -6,6 +6,8 @@ import uvicorn
|
|
| 6 |
import asyncio
|
| 7 |
from threading import Thread
|
| 8 |
from discord import app_commands, ui
|
|
|
|
|
|
|
| 9 |
# 导入数据库基础类
|
| 10 |
from mongo import MongoManager
|
| 11 |
# 导入学科业务函数和学科列表
|
|
@@ -17,6 +19,10 @@ from material import (
|
|
| 17 |
list_materials_logic
|
| 18 |
)
|
| 19 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 20 |
# 初始化数据库管理器
|
| 21 |
db_manager = MongoManager(os.getenv("MONGO_URL"), "tonyd")
|
| 22 |
|
|
@@ -208,6 +214,11 @@ async def start_bot():
|
|
| 208 |
await client.start(token)
|
| 209 |
except Exception as e:
|
| 210 |
print(f"❌ 连接失败: {e},15秒后重试...")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 211 |
await asyncio.sleep(15)
|
| 212 |
|
| 213 |
if __name__ == "__main__":
|
|
|
|
| 6 |
import asyncio
|
| 7 |
from threading import Thread
|
| 8 |
from discord import app_commands, ui
|
| 9 |
+
# 导入自定义 DNS 库
|
| 10 |
+
from dns_resolver import dns_manager
|
| 11 |
# 导入数据库基础类
|
| 12 |
from mongo import MongoManager
|
| 13 |
# 导入学科业务函数和学科列表
|
|
|
|
| 19 |
list_materials_logic
|
| 20 |
)
|
| 21 |
|
| 22 |
+
# --- 注入 DNS 补丁 ---
|
| 23 |
+
# 必须在所有网络连接尝试之前执行
|
| 24 |
+
dns_manager.patch_socket()
|
| 25 |
+
|
| 26 |
# 初始化数据库管理器
|
| 27 |
db_manager = MongoManager(os.getenv("MONGO_URL"), "tonyd")
|
| 28 |
|
|
|
|
| 214 |
await client.start(token)
|
| 215 |
except Exception as e:
|
| 216 |
print(f"❌ 连接失败: {e},15秒后重试...")
|
| 217 |
+
# 报错后尝试关闭客户端,清理 aiohttp session 缓存
|
| 218 |
+
try:
|
| 219 |
+
await client.close()
|
| 220 |
+
except:
|
| 221 |
+
pass
|
| 222 |
await asyncio.sleep(15)
|
| 223 |
|
| 224 |
if __name__ == "__main__":
|