- Новая страница /scheduled_posts в веб-панели - Создание постов с фото/текстом в любую тему форума - Планирование даты и времени публикации - Автоматическая отправка по расписанию (каждую минуту) - Поддержка всех 10 тем форума - Уведомления админа о публикации/ошибках - Миграция БД: таблица scheduled_posts - Тесты: test_scheduled_posts.py Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
51 lines
1.7 KiB
Python
51 lines
1.7 KiB
Python
#!/usr/bin/env python3
|
||
"""
|
||
Прямой тест отправки в тему
|
||
"""
|
||
import asyncio
|
||
import aiohttp
|
||
import sys
|
||
from pathlib import Path
|
||
|
||
BASE_DIR = Path(__file__).resolve().parent
|
||
sys.path.insert(0, str(BASE_DIR))
|
||
|
||
from config import BOT_TOKEN, ADMIN_CHAT_ID
|
||
|
||
async def test_send_to_topic():
|
||
"""Тест отправки в тему форума"""
|
||
|
||
bot_token = BOT_TOKEN
|
||
base_url = f"https://api.telegram.org/bot{bot_token}"
|
||
|
||
# Текст для отправки
|
||
text = "<b>🗑️ ТЕСТ Юмор про мусор</b>\n\n<i>Почему мусорный бак всегда полон? Потому что у него нет проблемы с переполнением! 😂</i>"
|
||
|
||
# Тема мемов
|
||
message_thread_id = 6262
|
||
|
||
print(f"📤 Отправка в чат {ADMIN_CHAT_ID}, тема {message_thread_id}...")
|
||
|
||
async with aiohttp.ClientSession() as session:
|
||
url = f"{base_url}/sendMessage"
|
||
params = {
|
||
'chat_id': ADMIN_CHAT_ID,
|
||
'text': text,
|
||
'parse_mode': 'HTML',
|
||
'message_thread_id': message_thread_id
|
||
}
|
||
|
||
async with session.post(url, json=params, timeout=30) as resp:
|
||
print(f"Status: {resp.status}")
|
||
result = await resp.json()
|
||
|
||
if resp.status == 200:
|
||
print("✅ Успешно отправлено!")
|
||
print(f"Message ID: {result['result']['message_id']}")
|
||
else:
|
||
print(f"❌ Ошибка: {result}")
|
||
error_text = await resp.text()
|
||
print(f"Текст ошибки: {error_text}")
|
||
|
||
if __name__ == '__main__':
|
||
asyncio.run(test_send_to_topic())
|