Spaces:
Running
Running
Foydalanuvchi commited on
Commit ·
ef6cae2
1
Parent(s): dc6242c
Final network fix: DNS, CA-Cert, and IP Fallback (CLEAN)
Browse files- .gitignore +7 -4
- Dockerfile +1 -0
- main.py +42 -20
- requirements.txt +2 -0
.gitignore
CHANGED
|
@@ -1,7 +1,10 @@
|
|
| 1 |
.env
|
| 2 |
__pycache__/
|
| 3 |
*.db
|
| 4 |
-
in_*
|
| 5 |
-
out_*
|
| 6 |
-
|
| 7 |
-
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
.env
|
| 2 |
__pycache__/
|
| 3 |
*.db
|
| 4 |
+
in_*
|
| 5 |
+
out_*
|
| 6 |
+
input_*
|
| 7 |
+
test_*
|
| 8 |
+
*.avi
|
| 9 |
+
*.exe
|
| 10 |
+
*.log
|
Dockerfile
CHANGED
|
@@ -7,6 +7,7 @@ RUN apt-get update && apt-get install -y \
|
|
| 7 |
libgl1 \
|
| 8 |
libglib2.0-0 \
|
| 9 |
ffmpeg \
|
|
|
|
| 10 |
&& rm -rf /var/lib/apt/lists/*
|
| 11 |
|
| 12 |
# Ishchi katalogini yaratish
|
|
|
|
| 7 |
libgl1 \
|
| 8 |
libglib2.0-0 \
|
| 9 |
ffmpeg \
|
| 10 |
+
ca-certificates \
|
| 11 |
&& rm -rf /var/lib/apt/lists/*
|
| 12 |
|
| 13 |
# Ishchi katalogini yaratish
|
main.py
CHANGED
|
@@ -1,6 +1,35 @@
|
|
| 1 |
import os
|
|
|
|
|
|
|
| 2 |
import logging
|
| 3 |
import asyncio
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4 |
import collections
|
| 5 |
import gc
|
| 6 |
from datetime import datetime, timedelta
|
|
@@ -36,19 +65,6 @@ from database import db
|
|
| 36 |
from concurrent.futures import ThreadPoolExecutor
|
| 37 |
from apscheduler.schedulers.asyncio import AsyncIOScheduler
|
| 38 |
|
| 39 |
-
import socket
|
| 40 |
-
|
| 41 |
-
# --- Hugging Face DNS Patch Start ---
|
| 42 |
-
# Server DNS xatosini chetlab o'tish uchun Telegram IP manzillarini qattiq bog'laymiz
|
| 43 |
-
_original_getaddrinfo = socket.getaddrinfo
|
| 44 |
-
def _patched_getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
|
| 45 |
-
if host == "api.telegram.org":
|
| 46 |
-
# Telegramning rasmiy IP manzillaridan biri
|
| 47 |
-
return [(socket.AF_INET, socket.SOCK_STREAM, 6, '', ('149.154.167.220', port))]
|
| 48 |
-
return _original_getaddrinfo(host, port, family, type, proto, flags)
|
| 49 |
-
socket.getaddrinfo = _patched_getaddrinfo
|
| 50 |
-
# --- Hugging Face DNS Patch End ---
|
| 51 |
-
|
| 52 |
# muhit o'zgaruvchilari
|
| 53 |
load_dotenv()
|
| 54 |
TOKEN = os.getenv("TELEGRAM_BOT_TOKEN")
|
|
@@ -429,16 +445,22 @@ def run_dummy_server():
|
|
| 429 |
logger.error(f"Dummy server xatosi: {e}")
|
| 430 |
|
| 431 |
def wait_for_internet(host="api.telegram.org", port=443, timeout=60):
|
| 432 |
-
"""Internet ulanishini va
|
| 433 |
start_time = time.time()
|
| 434 |
logger.info(f"Tarmoq kutilmoqda: {host}...")
|
|
|
|
|
|
|
|
|
|
|
|
|
| 435 |
while time.time() - start_time < timeout:
|
| 436 |
-
|
| 437 |
-
|
| 438 |
-
|
| 439 |
-
|
| 440 |
-
|
| 441 |
-
|
|
|
|
|
|
|
| 442 |
logger.warning("Tarmoq ulanishida muammo bo'lishi mumkin, lekin davom etamiz...")
|
| 443 |
return False
|
| 444 |
|
|
|
|
| 1 |
import os
|
| 2 |
+
import socket
|
| 3 |
+
import time
|
| 4 |
import logging
|
| 5 |
import asyncio
|
| 6 |
+
|
| 7 |
+
# --- Hugging Face Advanced Network Patch Start ---
|
| 8 |
+
# 1. DNS Resolution Fix using dnspython (Google/Cloudflare DNS)
|
| 9 |
+
try:
|
| 10 |
+
import dns.resolver
|
| 11 |
+
def custom_resolve(host):
|
| 12 |
+
resolver = dns.resolver.Resolver()
|
| 13 |
+
resolver.nameservers = ['8.8.8.8', '1.1.1.1'] # Google va Cloudflare DNS
|
| 14 |
+
try:
|
| 15 |
+
answers = resolver.resolve(host, 'A')
|
| 16 |
+
return [str(rdata) for rdata in answers]
|
| 17 |
+
except:
|
| 18 |
+
return None
|
| 19 |
+
except ImportError:
|
| 20 |
+
custom_resolve = lambda x: None
|
| 21 |
+
|
| 22 |
+
TELEGRAM_IPS = ['149.154.167.220', '149.154.167.189', '149.154.167.50']
|
| 23 |
+
|
| 24 |
+
_original_getaddrinfo = socket.getaddrinfo
|
| 25 |
+
def _patched_getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
|
| 26 |
+
if host == "api.telegram.org":
|
| 27 |
+
resolved_ips = custom_resolve(host) or TELEGRAM_IPS
|
| 28 |
+
return [(socket.AF_INET, socket.SOCK_STREAM, 6, '', (ip, port)) for ip in resolved_ips]
|
| 29 |
+
return _original_getaddrinfo(host, port, family, type, proto, flags)
|
| 30 |
+
socket.getaddrinfo = _patched_getaddrinfo
|
| 31 |
+
# --- Hugging Face Advanced Network Patch End ---
|
| 32 |
+
|
| 33 |
import collections
|
| 34 |
import gc
|
| 35 |
from datetime import datetime, timedelta
|
|
|
|
| 65 |
from concurrent.futures import ThreadPoolExecutor
|
| 66 |
from apscheduler.schedulers.asyncio import AsyncIOScheduler
|
| 67 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 68 |
# muhit o'zgaruvchilari
|
| 69 |
load_dotenv()
|
| 70 |
TOKEN = os.getenv("TELEGRAM_BOT_TOKEN")
|
|
|
|
| 445 |
logger.error(f"Dummy server xatosi: {e}")
|
| 446 |
|
| 447 |
def wait_for_internet(host="api.telegram.org", port=443, timeout=60):
|
| 448 |
+
"""Internet ulanishini, DNS va IP orqali ulanishni kutish."""
|
| 449 |
start_time = time.time()
|
| 450 |
logger.info(f"Tarmoq kutilmoqda: {host}...")
|
| 451 |
+
|
| 452 |
+
# Sinab ko'rish uchun manzillar ro'yxati
|
| 453 |
+
targets = [(host, port)] + [(ip, port) for ip in TELEGRAM_IPS]
|
| 454 |
+
|
| 455 |
while time.time() - start_time < timeout:
|
| 456 |
+
for target_host, target_port in targets:
|
| 457 |
+
try:
|
| 458 |
+
socket.create_connection((target_host, target_port), timeout=5)
|
| 459 |
+
logger.info(f"Tarmoq tayyor! {target_host} ga ulanish muvaffaqiyatli.")
|
| 460 |
+
return True
|
| 461 |
+
except Exception:
|
| 462 |
+
continue
|
| 463 |
+
time.sleep(2)
|
| 464 |
logger.warning("Tarmoq ulanishida muammo bo'lishi mumkin, lekin davom etamiz...")
|
| 465 |
return False
|
| 466 |
|
requirements.txt
CHANGED
|
@@ -7,3 +7,5 @@ torchvision
|
|
| 7 |
numpy
|
| 8 |
python-dotenv
|
| 9 |
apscheduler
|
|
|
|
|
|
|
|
|
| 7 |
numpy
|
| 8 |
python-dotenv
|
| 9 |
apscheduler
|
| 10 |
+
dnspython
|
| 11 |
+
httpx[socks]
|