yangtb24 commited on
Commit
883ae8f
·
verified ·
1 Parent(s): 7722a9d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +60 -60
app.py CHANGED
@@ -83,6 +83,66 @@ BAN_TRIGGER_PHRASES = [
83
  ]
84
  UNBAN_PHRASE = "close username"
85
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
86
  def make_telegram_request(method, data=None):
87
  url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/{method}"
88
  if PHP_PROXY_URL:
@@ -475,65 +535,5 @@ async def unbanUser(chatId, userId):
475
  await sendTelegramMessage(chatId, f"用户 {userId} 已被解禁。")
476
  print(f"用户 {userId} 在群组 {chatId} 中被解禁。")
477
 
478
- WEBDAV_URL = os.environ.get('WEBDAV_URL')
479
- WEBDAV_USERNAME = os.environ.get('WEBDAV_USERNAME')
480
- WEBDAV_PASSWORD = os.environ.get('WEBDAV_PASSWORD')
481
-
482
- def save_data_to_webdav():
483
- data = {
484
- 'chatHistories': chatHistories,
485
- 'GROUP_SETTINGS': GROUP_SETTINGS,
486
- 'USER_SETTINGS': USER_SETTINGS,
487
- 'USER_LAST_ACTIVE': {k: v.isoformat() for k, v in USER_LAST_ACTIVE.items()},
488
- 'GROUP_ACTIVE_USERS': {k: list(v) for k, v in GROUP_ACTIVE_USERS.items()},
489
- 'GROUP_INFO': {k: {**v, 'last_active': v['last_active'].isoformat()} for k, v in GROUP_INFO.items()},
490
- 'BANNED_USERS': {k: v.isoformat() for k, v in BANNED_USERS.items()}
491
- }
492
-
493
- json_data = json.dumps(data)
494
-
495
- response = requests.put(f"{WEBDAV_URL}/tg_bot/bot_data.json",
496
- data=json_data,
497
- auth=HTTPBasicAuth(WEBDAV_USERNAME, WEBDAV_PASSWORD))
498
-
499
- if response.status_code in [200, 201, 204]:
500
- print("数据已保存到WebDAV")
501
- else:
502
- print(f"保存到WebDAV失败: {response.status_code}")
503
-
504
- def load_data_from_webdav():
505
- global chatHistories, GROUP_SETTINGS, USER_SETTINGS, USER_LAST_ACTIVE, GROUP_ACTIVE_USERS, GROUP_INFO, BANNED_USERS
506
-
507
- response = requests.get(f"{WEBDAV_URL}/tg_bot/bot_data.json",
508
- auth=HTTPBasicAuth(WEBDAV_USERNAME, WEBDAV_PASSWORD))
509
-
510
- if response.status_code == 200:
511
- data = json.loads(response.text)
512
-
513
- chatHistories = data['chatHistories']
514
- GROUP_SETTINGS = data['GROUP_SETTINGS']
515
- USER_SETTINGS = data['USER_SETTINGS']
516
- USER_LAST_ACTIVE = {k: datetime.fromisoformat(v) for k, v in data['USER_LAST_ACTIVE'].items()}
517
- GROUP_ACTIVE_USERS = {k: set(v) for k, v in data['GROUP_ACTIVE_USERS'].items()}
518
- GROUP_INFO = {k: {**v, 'last_active': datetime.fromisoformat(v['last_active'])} for k, v in data['GROUP_INFO'].items()}
519
- BANNED_USERS = {k: datetime.fromisoformat(v) for k, v in data['BANNED_USERS'].items()}
520
-
521
- print("数据已从WebDAV加载")
522
- else:
523
- print("WebDAV中没有找到数��或加载失败,使用初始值")
524
-
525
- def periodic_save():
526
- while True:
527
- time.sleep(60) # 等待60秒
528
- save_data_to_webdav()
529
-
530
- # 在程序启动时加载数据
531
- load_data_from_webdav()
532
-
533
- # 启动定期保存的线程
534
- save_thread = threading.Thread(target=periodic_save)
535
- save_thread.daemon = True
536
- save_thread.start()
537
-
538
  if __name__ == '__main__':
539
  app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 7860)))
 
83
  ]
84
  UNBAN_PHRASE = "close username"
85
 
86
+ WEBDAV_URL = os.environ.get('WEBDAV_URL')
87
+ WEBDAV_USERNAME = os.environ.get('WEBDAV_USERNAME')
88
+ WEBDAV_PASSWORD = os.environ.get('WEBDAV_PASSWORD')
89
+
90
+ def save_data_to_webdav():
91
+ data = {
92
+ 'chatHistories': chatHistories,
93
+ 'GROUP_SETTINGS': GROUP_SETTINGS,
94
+ 'USER_SETTINGS': USER_SETTINGS,
95
+ 'USER_LAST_ACTIVE': {k: v.isoformat() for k, v in USER_LAST_ACTIVE.items()},
96
+ 'GROUP_ACTIVE_USERS': {k: list(v) for k, v in GROUP_ACTIVE_USERS.items()},
97
+ 'GROUP_INFO': {k: {**v, 'last_active': v['last_active'].isoformat()} for k, v in GROUP_INFO.items()},
98
+ 'BANNED_USERS': {k: v.isoformat() for k, v in BANNED_USERS.items()}
99
+ }
100
+
101
+ json_data = json.dumps(data)
102
+
103
+ response = requests.put(f"{WEBDAV_URL}/tg_bot/bot_data.json",
104
+ data=json_data,
105
+ auth=HTTPBasicAuth(WEBDAV_USERNAME, WEBDAV_PASSWORD))
106
+
107
+ if response.status_code in [200, 201, 204]:
108
+ print("数据已保存到WebDAV")
109
+ else:
110
+ print(f"保存到WebDAV失败: {response.status_code}")
111
+
112
+ def load_data_from_webdav():
113
+ global chatHistories, GROUP_SETTINGS, USER_SETTINGS, USER_LAST_ACTIVE, GROUP_ACTIVE_USERS, GROUP_INFO, BANNED_USERS
114
+
115
+ response = requests.get(f"{WEBDAV_URL}/tg_bot/bot_data.json",
116
+ auth=HTTPBasicAuth(WEBDAV_USERNAME, WEBDAV_PASSWORD))
117
+
118
+ if response.status_code == 200:
119
+ data = json.loads(response.text)
120
+
121
+ chatHistories = data['chatHistories']
122
+ GROUP_SETTINGS = data['GROUP_SETTINGS']
123
+ USER_SETTINGS = data['USER_SETTINGS']
124
+ USER_LAST_ACTIVE = {k: datetime.fromisoformat(v) for k, v in data['USER_LAST_ACTIVE'].items()}
125
+ GROUP_ACTIVE_USERS = {k: set(v) for k, v in data['GROUP_ACTIVE_USERS'].items()}
126
+ GROUP_INFO = {k: {**v, 'last_active': datetime.fromisoformat(v['last_active'])} for k, v in data['GROUP_INFO'].items()}
127
+ BANNED_USERS = {k: datetime.fromisoformat(v) for k, v in data['BANNED_USERS'].items()}
128
+
129
+ print("数据已从WebDAV加载")
130
+ else:
131
+ print("WebDAV中没有找到数据或加载失败,使用初始值")
132
+
133
+ def periodic_save():
134
+ while True:
135
+ time.sleep(10) # 等待60秒
136
+ save_data_to_webdav()
137
+
138
+ # 在程序启动时加载数据
139
+ load_data_from_webdav()
140
+
141
+ # 启动定期保存的线程
142
+ save_thread = threading.Thread(target=periodic_save)
143
+ save_thread.daemon = True
144
+ save_thread.start()
145
+
146
  def make_telegram_request(method, data=None):
147
  url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/{method}"
148
  if PHP_PROXY_URL:
 
535
  await sendTelegramMessage(chatId, f"用户 {userId} 已被解禁。")
536
  print(f"用户 {userId} 在群组 {chatId} 中被解禁。")
537
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
538
  if __name__ == '__main__':
539
  app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 7860)))