This commit is contained in:
2026-05-04 12:57:37 +03:00
parent 015b22264c
commit 34d89c2245
2 changed files with 23 additions and 21 deletions
+22 -20
View File
@@ -4,6 +4,7 @@ import os
import sys
import logging
import base64
import re
from datetime import datetime
from telegram import Update
from telegram.ext import (
@@ -12,7 +13,8 @@ from telegram.ext import (
MessageHandler,
ConversationHandler,
filters,
ContextTypes
ContextTypes,
ApplicationBuilder
)
from config import TELEGRAM_BOT_TOKEN, PIApi_API_KEY, PIApi_BASE_URL, PROXY_URL, PROXY_TYPE
@@ -149,7 +151,6 @@ async def call_piapi_api(image_path: str, prompt: str) -> str:
# Используем aiohttp-socks для запросов
from aiohttp_socks import ProxyConnector
import re
# Парсим прокси
match = re.search(r'socks5://([^:]+):([^@]+)@([^:]+):(\d+)', PROXY_URL)
@@ -329,30 +330,29 @@ async def error_handler(update: Update, context: ContextTypes.DEFAULT_TYPE):
async def main():
"""Запуск бота"""
"""Запуск бота с прокси как в примере"""
print("\n" + "=" * 50)
print("🤖 ЗАПУСК TELEGRAM БОТА")
print("=" * 50)
if not PROXY_URL:
print("❌ Прокси не настроен!")
return
print(f"🔌 Прокси: {PROXY_URL.split('@')[-1] if '@' in PROXY_URL else PROXY_URL}")
print("=" * 50)
# Инициализация БД
await init_db()
# Создаем приложение с поддержкой SOCKS5
# python-telegram-bot[socks] автоматически поддерживает SOCKS5
application = Application.builder().token(TELEGRAM_BOT_TOKEN).build()
# Создаем приложение с прокси (как в вашем примере)
TOKEN = TELEGRAM_BOT_TOKEN
PROXY = PROXY_URL
# Для исходящих запросов бота используем прокси
# Устанавливаем прокси через переменные окружения
os.environ['ALL_PROXY'] = PROXY_URL
os.environ['HTTP_PROXY'] = PROXY_URL
os.environ['HTTPS_PROXY'] = PROXY_URL
builder = ApplicationBuilder().token(TOKEN)
if PROXY:
builder = builder.proxy(PROXY).get_updates_proxy(PROXY)
print(f"🔌 Прокси: {PROXY.split('@')[-1] if '@' in PROXY else PROXY}")
else:
print("🔌 Прокси не используется")
application = builder.build()
print("=" * 50)
# Регистрируем обработчики
application.add_handler(CommandHandler("start", start))
@@ -363,14 +363,15 @@ async def main():
conv_handler = ConversationHandler(
entry_points=[MessageHandler(filters.PHOTO, handle_photo)],
states={AWAITING_PROMPT: [MessageHandler(filters.TEXT & ~filters.COMMAND, process_image)]},
fallbacks=[CommandHandler("cancel", cancel)],
fallbacks=[CommandHandler("cancel", cancel), CommandHandler("start", start)],
)
application.add_handler(conv_handler)
application.add_error_handler(error_handler)
print("\n✅ Бот запускается через SOCKS5 прокси...")
print("\n✅ Бот запускается...")
try:
# Запускаем бота
await application.initialize()
await application.start()
await application.updater.start_polling()
@@ -380,6 +381,7 @@ async def main():
print("=" * 50)
print("\n📱 Отправь команду /test в Telegram\n")
# Держим бота запущенным
await asyncio.Event().wait()
except KeyboardInterrupt: