FreshPixels commited on
Commit
6d32a6c
·
verified ·
1 Parent(s): 7d704c7

Update server.py

Browse files
Files changed (1) hide show
  1. server.py +13 -7
server.py CHANGED
@@ -4,7 +4,6 @@ from http.server import BaseHTTPRequestHandler, HTTPServer
4
  PORT = 7860
5
  TOKEN = os.environ.get("TELEGRAM_BOT_TOKEN", "").strip()
6
  ALLOWED_USER = os.environ.get("TELEGRAM_ALLOWED_USERS", "").strip()
7
- # Возвращаем наш надежный мост Cloudflare
8
  CF_URL = os.environ.get("CF_WORKER_URL", "").rstrip('/')
9
 
10
  def log(msg):
@@ -13,23 +12,30 @@ def log(msg):
13
  sys.stdout.flush()
14
 
15
  def send_tg(chat_id, text):
16
- """Отправка сообщений в Telegram ЧЕРЕЗ Cloudflare (обход блокировок)"""
17
  if not CF_URL or not TOKEN:
18
  log("❌ Ошибка: Не задан CF_WORKER_URL или TELEGRAM_BOT_TOKEN")
19
  return
20
 
21
- # Бьем в твой рабочий воркер!
22
  url = f"{CF_URL}/bot{TOKEN}/sendMessage"
23
  data = json.dumps({"chat_id": chat_id, "text": str(text)}).encode('utf-8')
24
- headers = {"Content-Type": "application/json"}
 
 
 
 
 
25
  req = urllib.request.Request(url, data=data, headers=headers)
26
 
27
  try:
28
- # Даем чуть больше таймаут на всякий случай
29
  urllib.request.urlopen(req, timeout=15)
30
  log(f"✈️ Сообщение успешно отправлено в чат {chat_id}")
 
 
 
 
31
  except Exception as e:
32
- log(f"❌ Ошибка отправки в Telegram: {e}")
33
 
34
  class WebhookHandler(BaseHTTPRequestHandler):
35
  def do_POST(self):
@@ -56,7 +62,6 @@ class WebhookHandler(BaseHTTPRequestHandler):
56
  log("🧠 Выполняю команду hermes...")
57
  my_env = os.environ.copy()
58
 
59
- # Убрали --debug, оставили всё как по инструкции Гермеса
60
  cmd = [
61
  "hermes",
62
  "-m", "openai/z-ai/glm-5.1",
@@ -64,6 +69,7 @@ class WebhookHandler(BaseHTTPRequestHandler):
64
  "chat",
65
  "--cli"
66
  ]
 
67
 
68
  result = subprocess.run(cmd, capture_output=True, text=True, env=my_env)
69
 
 
4
  PORT = 7860
5
  TOKEN = os.environ.get("TELEGRAM_BOT_TOKEN", "").strip()
6
  ALLOWED_USER = os.environ.get("TELEGRAM_ALLOWED_USERS", "").strip()
 
7
  CF_URL = os.environ.get("CF_WORKER_URL", "").rstrip('/')
8
 
9
  def log(msg):
 
12
  sys.stdout.flush()
13
 
14
  def send_tg(chat_id, text):
15
+ """Отправка в Telegram через Cloudflare с маскировкой под браузер"""
16
  if not CF_URL or not TOKEN:
17
  log("❌ Ошибка: Не задан CF_WORKER_URL или TELEGRAM_BOT_TOKEN")
18
  return
19
 
 
20
  url = f"{CF_URL}/bot{TOKEN}/sendMessage"
21
  data = json.dumps({"chat_id": chat_id, "text": str(text)}).encode('utf-8')
22
+
23
+ # 🎭 Маскируемся под Google Chrome, чтобы Cloudflare не выдавал 403
24
+ headers = {
25
+ "Content-Type": "application/json",
26
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
27
+ }
28
  req = urllib.request.Request(url, data=data, headers=headers)
29
 
30
  try:
 
31
  urllib.request.urlopen(req, timeout=15)
32
  log(f"✈️ Сообщение успешно отправлено в чат {chat_id}")
33
+ except urllib.error.HTTPError as e:
34
+ # Если Cloudflare все равно ругается, мы выведем точную причину
35
+ error_body = e.read().decode('utf-8', errors='ignore')
36
+ log(f"❌ Ошибка 403/HTTP от Cloudflare: {error_body[:250]}")
37
  except Exception as e:
38
+ log(f"❌ Ошибка сети: {e}")
39
 
40
  class WebhookHandler(BaseHTTPRequestHandler):
41
  def do_POST(self):
 
62
  log("🧠 Выполняю команду hermes...")
63
  my_env = os.environ.copy()
64
 
 
65
  cmd = [
66
  "hermes",
67
  "-m", "openai/z-ai/glm-5.1",
 
69
  "chat",
70
  "--cli"
71
  ]
72
+ log(f"⚙️ Полная команда: {' '.join(cmd)}")
73
 
74
  result = subprocess.run(cmd, capture_output=True, text=True, env=my_env)
75