import asyncio import aiohttp import sys from config import PROXY_URL, PROXY_TYPE async def check_proxy(): """Проверка работоспособности прокси""" if not PROXY_URL: print("❌ Прокси не настроен в файле .env") return False print(f"\n🔍 Проверяем прокси: {PROXY_URL}") print(f"📡 Тип прокси: {PROXY_TYPE.upper()}") print("-" * 50) success_count = 0 total_tests = 0 # Тест 1: Проверка подключения к Telegram API print("\n📡 Тест: Подключение к API...") test_urls = [ ("Telegram API", "https://api.telegram.org"), ("Google", "https://google.com"), ("IP Check", "https://api.ipify.org?format=json") ] for name, url in test_urls: total_tests += 1 print(f" → Проверяю {name}...") try: async with aiohttp.ClientSession() as session: async with session.get(url, proxy=PROXY_URL, timeout=10) as response: if response.status == 200: print(f" ✅ Успешно (статус: {response.status})") success_count += 1 if "ipify" in url: data = await response.json() print(f" 🌐 Ваш IP через прокси: {data.get('ip')}") else: print(f" ❌ Ошибка: статус {response.status}") except asyncio.TimeoutError: print(f" ❌ Таймаут подключения") except Exception as e: print(f" ❌ Ошибка: {type(e).__name__}") # Результат print("\n" + "=" * 50) if success_count == total_tests: print("✅ ПРОКСИ РАБОТАЕТ!") print("=" * 50) return True else: print(f"⚠️ ПРОКСИ РАБОТАЕТ ЧАСТИЧНО ({success_count}/{total_tests} тестов)") print("=" * 50) return True if success_count > 0 else False async def main(): print("\n" + "=" * 50) print("🔍 ПРОВЕРКА ПРОКСИ ДЛЯ TELEGRAM БОТА") print("=" * 50) result = await check_proxy() if result: print("\n✅ ПРОКСИ РАБОТАЕТ! Можно запускать бота.") print("\nЗапустите бота командой: python bot.py") else: print("\n❌ ПРОКСИ НЕ РАБОТАЕТ! Бот не сможет подключиться.") print("\nРекомендации:") print("1. Проверьте правильность данных в файле .env") print("2. Убедитесь, что прокси-сервер активен") print("3. Попробуйте другой прокси") return 0 if result else 1 if __name__ == "__main__": exit_code = asyncio.run(main()) sys.exit(exit_code)