📰 fix: Исправлена отправка превью дайджеста через HTTP
- Используется aiohttp вместо bot.send_message - Нет ошибки Timeout context manager - Коммит в Gitea Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
parent
9033310cfa
commit
aaac93594d
1 changed files with 21 additions and 18 deletions
31
web/app.py
31
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"📰 <b>Дайджест за неделю готов!</b>\n\n"
|
||||
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=keyboard
|
||||
)
|
||||
'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,
|
||||
|
|
|
|||
Loading…
Reference in a new issue