FreshPixels commited on
Commit
25ea7fe
·
verified ·
1 Parent(s): 1a25cf9

Update server.py

Browse files
Files changed (1) hide show
  1. server.py +29 -15
server.py CHANGED
@@ -2,22 +2,30 @@ import os, json, urllib.request, subprocess, traceback, sys
2
  from http.server import BaseHTTPRequestHandler, HTTPServer
3
 
4
  PORT = 7860
5
- TOKEN = os.environ.get("TELEGRAM_BOT_TOKEN", "")
6
- ALLOWED_USER = os.environ.get("TELEGRAM_ALLOWED_USERS", "")
7
- CF_URL = os.environ.get("CF_WORKER_URL", "").rstrip('/')
8
 
9
  def log(msg):
10
- """Специальный print, который мгновенно пробивает буфер Hugging Face"""
11
  print(msg, flush=True)
12
  sys.stdout.flush()
13
 
14
  def send_tg(chat_id, text):
15
- if not CF_URL or not TOKEN:
16
- log("❌ Ошибка: Не задан CF_WORKER_URL или TELEGRAM_BOT_TOKEN")
 
17
  return
18
- url = f"{CF_URL}/bot{TOKEN}/sendMessage"
 
19
  data = json.dumps({"chat_id": chat_id, "text": str(text)}).encode('utf-8')
20
- req = urllib.request.Request(url, data=data, headers={"Content-Type": "application/json"})
 
 
 
 
 
 
21
  try:
22
  urllib.request.urlopen(req)
23
  log(f"✈️ Сообщение успешно отправлено в чат {chat_id}")
@@ -29,7 +37,7 @@ class WebhookHandler(BaseHTTPRequestHandler):
29
  length = int(self.headers.get('Content-Length', 0))
30
  data = json.loads(self.rfile.read(length))
31
 
32
- # Сразу отдаем 200 OK, чтобы Телеграм отстал
33
  self.send_response(200)
34
  self.end_headers()
35
 
@@ -44,14 +52,20 @@ class WebhookHandler(BaseHTTPRequestHandler):
44
  send_tg(chat_id, "⛔ Доступ закрыт.")
45
  return
46
 
47
- send_tg(chat_id, "🤖 Принято! Думаю...")
48
 
49
  try:
50
- log("🧠 Запускаю команду hermes...")
51
  my_env = os.environ.copy()
52
 
53
- # Используем префикс openai/ для кастомных прокси и имя модели из твоего скрина
54
- cmd = ["hermes", "chat", "--cli", "-m", "openai/z-ai/glm-5.1", "-z", text]
 
 
 
 
 
 
55
 
56
  result = subprocess.run(cmd, capture_output=True, text=True, env=my_env)
57
 
@@ -74,7 +88,7 @@ class WebhookHandler(BaseHTTPRequestHandler):
74
  except Exception as e:
75
  error_trace = traceback.format_exc()
76
  log(f"❌ ОШИБКА:\n{error_trace}")
77
- send_tg(chat_id, f"❌ Ошибка: {e}")
78
 
79
  def do_GET(self):
80
  self.send_response(200)
@@ -82,6 +96,6 @@ class WebhookHandler(BaseHTTPRequestHandler):
82
  self.wfile.write(b"Server Online")
83
 
84
  if __name__ == "__main__":
85
- log(f"Starting Hermes Webhook Bridge on port {PORT}")
86
  HTTPServer(('0.0.0.0', PORT), WebhookHandler).serve_forever()
87
 
 
2
  from http.server import BaseHTTPRequestHandler, HTTPServer
3
 
4
  PORT = 7860
5
+ # .strip() уберет случайные пробелы, если они есть в секретах
6
+ TOKEN = os.environ.get("TELEGRAM_BOT_TOKEN", "").strip()
7
+ ALLOWED_USER = os.environ.get("TELEGRAM_ALLOWED_USERS", "").strip()
8
 
9
  def log(msg):
10
+ """Мгновенный вывод в логи Hugging Face"""
11
  print(msg, flush=True)
12
  sys.stdout.flush()
13
 
14
  def send_tg(chat_id, text):
15
+ """Прямая отправка в Telegram БЕЗ Cloudflare"""
16
+ if not TOKEN:
17
+ log("❌ Ошибка: Не задан TELEGRAM_BOT_TOKEN")
18
  return
19
+
20
+ url = f"https://api.telegram.org/bot{TOKEN}/sendMessage"
21
  data = json.dumps({"chat_id": chat_id, "text": str(text)}).encode('utf-8')
22
+ # Добавляем User-Agent, чтобы Телеграм не ругался на скрипт
23
+ headers = {
24
+ "Content-Type": "application/json",
25
+ "User-Agent": "Mozilla/5.0"
26
+ }
27
+ req = urllib.request.Request(url, data=data, headers=headers)
28
+
29
  try:
30
  urllib.request.urlopen(req)
31
  log(f"✈️ Сообщение успешно отправлено в чат {chat_id}")
 
37
  length = int(self.headers.get('Content-Length', 0))
38
  data = json.loads(self.rfile.read(length))
39
 
40
+ # Сразу отдаем 200 OK Телеграму
41
  self.send_response(200)
42
  self.end_headers()
43
 
 
52
  send_tg(chat_id, "⛔ Доступ закрыт.")
53
  return
54
 
55
+ send_tg(chat_id, "🤖 Принято! Запускаю Гермеса...")
56
 
57
  try:
58
+ log("🧠 Выполняю команду hermes...")
59
  my_env = os.environ.copy()
60
 
61
+ # ПРАВИЛЬНЫЙ ПОРЯДОК АРГУМЕНТОВ
62
+ cmd = [
63
+ "hermes",
64
+ "-m", "openai/z-ai/glm-5.1",
65
+ "-z", text,
66
+ "chat",
67
+ "--cli"
68
+ ]
69
 
70
  result = subprocess.run(cmd, capture_output=True, text=True, env=my_env)
71
 
 
88
  except Exception as e:
89
  error_trace = traceback.format_exc()
90
  log(f"❌ ОШИБКА:\n{error_trace}")
91
+ send_tg(chat_id, f"❌ Системная ошибка: {e}")
92
 
93
  def do_GET(self):
94
  self.send_response(200)
 
96
  self.wfile.write(b"Server Online")
97
 
98
  if __name__ == "__main__":
99
+ log(f"🚀 Starting Hermes Webhook Bridge on port {PORT}")
100
  HTTPServer(('0.0.0.0', PORT), WebhookHandler).serve_forever()
101