📰 fix: Исправлена отправка превью дайджеста через HTTP

- Используется aiohttp вместо bot.send_message
- Нет ошибки Timeout context manager
- Коммит в Gitea

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
Admin 2026-04-12 18:29:07 +04:00
parent 9033310cfa
commit aaac93594d

View file

@ -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"📰 <b>Дайджест за неделю готов!</b>\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"📰 <b>Дайджест за неделю готов!</b>\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,