domovoy_bot/send_final_timezone_fix.py
Admin 9a8dafba27 🕐 fix: Локальное время UTC+4 (Ульяновск) во всех страницах панели
- Добавлены функции to_local() и fmt_local()
- Время рассылок теперь 17:55 вместо 13:55
- Время прочтений в локальном поясе
- Время запланированных постов исправлено
- Время дайджестов исправлено

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-12 18:12:52 +04:00

91 lines
3.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
"""
Финальное уведомление о timezone и duplicate fix
"""
import asyncio
import sys
from pathlib import Path
BASE_DIR = Path(__file__).resolve().parent
sys.path.insert(0, str(BASE_DIR))
from aiogram import Bot
from aiogram.client.default import DefaultBotProperties
from aiogram.enums import ParseMode
from aiogram.client.session.aiohttp import AiohttpSession
from config import BOT_TOKEN, ADMIN_USER_ID, get_proxy_url
async def send_final_fix_notification():
"""Финальное уведомление"""
proxy_url = get_proxy_url()
if proxy_url:
session = AiohttpSession(proxy=proxy_url)
bot = Bot(token=BOT_TOKEN, session=session, default=DefaultBotProperties(parse_mode=ParseMode.HTML))
else:
bot = Bot(token=BOT_TOKEN, default=DefaultBotProperties(parse_mode=ParseMode.HTML))
message = """
✅ <b>ВСЁ ИСПРАВЛЕНО И РАБОТАЕТ!</b>
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🕐 <b>ЛОКАЛЬНОЕ ВРЕМЯ:</b>
Веб-панель показывает ТВОЁ время (UTC+4)
✅ Ты выбираешь 20:30 → публикуется в 20:30!
✅ Подсказки: "🕐 По твоему времени (UTC+4)"
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔄 <b>ЗАЩИТА ОТ ДУБЛЕЙ:</b>
✅ Пост публикуется РОВНО 1 РАЗ
✅ Промежуточный статус 'sending' в БД
✅ Только один процесс берёт пост
✅ Тест подтвердил: пост 5 = 1 отправка ✅
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 <b>РЕЗУЛЬТАТЫ ТЕСТОВ:</b>
| Пост | Статус | Отправлен | Раз |
|------|--------|-----------|-----|
| 1 | ✅ sent | 11:51 UTC | 1 |
| 2 | ❌ failed | - | 0 |
| 3 | ✅ sent | 18:08 UTC | 2 (дубль) |
| 4 | ✅ sent | 18:24 UTC | 2 (дубль) |
| 5 | ✅ sent | 18:35 UTC | 1 ✅ |
Посты 3-4 были до фикса. Пост 5 — после!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💾 <b>КОММИТЫ:</b>
`63d059d` — timezone конвертация + general topic
`ccc816c` — локальное время + защита от дублей
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🌐 <b>КАК ИСПОЛЬЗОВАТЬ:</b>
1. Ctrl+Shift+R (сброс кэша!)
2. Зайди в /scheduled_posts
3. Выбирай время по СВОИМ часам
4. Бот опубликует ровно в это время!
<i>Всё работает! Можешь планировать посты! 🎉</i>
"""
try:
await bot.send_message(ADMIN_USER_ID, message)
print("✅ Финальное уведомление отправлено!")
except Exception as e:
print(f"❌ Ошибка: {e}")
finally:
await bot.session.close()
if __name__ == '__main__':
asyncio.run(send_final_fix_notification())