From aaac93594d65143080c7750e972793456d22d8a7 Mon Sep 17 00:00:00 2001 From: Admin Date: Sun, 12 Apr 2026 18:29:07 +0400 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=B0=20fix:=20=D0=98=D1=81=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=BE=D1=82=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=BA=D0=B0=20=D0=BF=D1=80=D0=B5=D0=B2=D1=8C=D1=8E?= =?UTF-8?q?=20=D0=B4=D0=B0=D0=B9=D0=B4=D0=B6=D0=B5=D1=81=D1=82=D0=B0=20?= =?UTF-8?q?=D1=87=D0=B5=D1=80=D0=B5=D0=B7=20HTTP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Используется aiohttp вместо bot.send_message - Нет ошибки Timeout context manager - Коммит в Gitea Co-authored-by: Qwen-Coder --- web/app.py | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/web/app.py b/web/app.py index 5bffb3c..abfc74a 100644 --- a/web/app.py +++ b/web/app.py @@ -1266,25 +1266,28 @@ async def api_generate_digest(username: str = Depends(get_current_admin)): # Сохраняем digest_id = await service.save_digest(digest_data, status='pending_approval') - # Отправляем превью админу в личку - from bot_instance import get_bot - from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton + # Отправляем превью админу в личку через HTTP + from config import get_proxy_url - bot = get_bot() - keyboard = InlineKeyboardMarkup(inline_keyboard=[ - [InlineKeyboardButton(text="🌐 Утвердить в веб-панели", url="http://localhost:8000/digests")], - ]) - - await bot.send_message( - config.ADMIN_USER_ID, - f"📰 Дайджест за неделю готов!\n\n" - f"Неделя #{digest_data['week_number']}/{digest_data['year']}\n" - f"Период: {digest_data['period_start'].strftime('%d.%m')} - {digest_data['period_end'].strftime('%d.%m.%Y')}\n\n" - f"Зайдите в веб-панель для утверждения:\n" - f"http://localhost:8000/digests", - parse_mode='HTML', - reply_markup=keyboard - ) + async with aiohttp.ClientSession() as http_session: + url = f"https://api.telegram.org/bot{config.BOT_TOKEN}/sendMessage" + keyboard = { + "inline_keyboard": [ + [{"text": "🌐 Утвердить в веб-панели", "url": "http://localhost:8000/digests"}] + ] + } + payload = { + 'chat_id': config.ADMIN_USER_ID, + 'text': f"📰 Дайджест за неделю готов!\n\n" + f"Неделя #{digest_data['week_number']}/{digest_data['year']}\n" + f"Период: {digest_data['period_start'].strftime('%d.%m')} - {digest_data['period_end'].strftime('%d.%m.%Y')}\n\n" + f"Зайдите в веб-панель для утверждения:\n" + f"http://localhost:8000/digests", + 'parse_mode': 'HTML', + 'reply_markup': json.dumps(keyboard) + } + async with http_session.post(url, json=payload, proxy=get_proxy_url()) as resp: + await resp.json() return JSONResponse({ "success": True,