attendantelectro commited on
Commit
a1d6e10
·
verified ·
1 Parent(s): edbf3c5

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -4
app.py CHANGED
@@ -1,3 +1,4 @@
 
1
  from fastapi import FastAPI, Request as FastAPIRequest
2
  from telegram import Update, Bot
3
  from telegram.utils.request import Request
@@ -5,20 +6,29 @@ from telegram.ext import Dispatcher, MessageHandler, Filters
5
  import telegram.vendor.ptb_urllib3.urllib3 as urllib3
6
  import os
7
 
8
- # ایجاد یک کلاس سفارشی برای دور زدن بررسی SSL
 
 
 
 
 
 
 
 
 
 
 
9
  class NoVerifyRequest(Request):
10
  def __init__(self, *args, **kwargs):
11
  super().__init__(*args, **kwargs)
12
- # جایگزینی استخر اتصال با یک استخر که SSL را چک نمی‌کند
13
  self.con_pool = urllib3.PoolManager(
14
  num_pools=self.con_pool_size,
15
- verify=False, # غیرفعال کردن بررسی SSL
16
  cert_reqs='CERT_NONE'
17
  )
18
 
19
  TOKEN = os.getenv("TELEGRAM_TOKEN")
20
 
21
- # استفاده از کلاس سفارشی ما به جای Request معمولی
22
  tg_request = NoVerifyRequest(
23
  connect_timeout=20.0,
24
  read_timeout=20.0
 
1
+ import socket
2
  from fastapi import FastAPI, Request as FastAPIRequest
3
  from telegram import Update, Bot
4
  from telegram.utils.request import Request
 
6
  import telegram.vendor.ptb_urllib3.urllib3 as urllib3
7
  import os
8
 
9
+ # --- راه حل مشکل قطع اتصال (Force IPv4) ---
10
+ # این کدام باعث می‌شود پایتون فقط از IPv4 استفاده کند و به مشکل IPv6 برخورد نکند
11
+ original_getaddrinfo = socket.getaddrinfo
12
+
13
+ def new_getaddrinfo(*args, **kwargs):
14
+ res = original_getaddrinfo(*args, **kwargs)
15
+ return [r for r in res if r[0] == socket.AF_INET]
16
+
17
+ socket.getaddrinfo = new_getaddrinfo
18
+ # ------------------------------------------------
19
+
20
+ # کلاس سفارشی برای غیرفعال کردن بررسی SSL
21
  class NoVerifyRequest(Request):
22
  def __init__(self, *args, **kwargs):
23
  super().__init__(*args, **kwargs)
 
24
  self.con_pool = urllib3.PoolManager(
25
  num_pools=self.con_pool_size,
26
+ verify=False,
27
  cert_reqs='CERT_NONE'
28
  )
29
 
30
  TOKEN = os.getenv("TELEGRAM_TOKEN")
31
 
 
32
  tg_request = NoVerifyRequest(
33
  connect_timeout=20.0,
34
  read_timeout=20.0