Commit graph

112 commits

Author SHA1 Message Date
Admin
434cd71505 📦 Авто-экспорт чата: chat_history_2026-04-18_23-22.json 2026-04-18 23:22:01 +04:00
Admin
2ac9241447 📦 Авто-экспорт чата: chat_history_2026-04-18_23-13.json 2026-04-18 23:13:56 +04:00
Admin
01fe6da097 📦 Авто-экспорт чата: chat_history_2026-04-18_22-54.json 2026-04-18 22:54:44 +04:00
Admin
98fa1c2711 Fix duplicate processes, fix JSON export models, fix timezone to Ulyanovsk 2026-04-18 21:56:22 +04:00
Admin
4ca3798446 LKM37: Пре-релиз v3.1 перед масштабным редизайном 2026-04-17 11:06:50 +04:00
Admin
27729ab512 📄📷 fix: Отправка фото + документа отдельными сообщениями
- Telegram не поддерживает фото+документ в одном сообщении
- Теперь отправляются 2 сообщения: документ + фото
- Исправлен UI — фото не очищается при выборе документа
- Исправлена сериализация chat_id (int → str)

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-13 22:50:40 +04:00
Admin
54e8cea522 📄 feat: Отправка документов (PDF, DOCX, XLSX...) через веб-панель
Новый функционал:
- Загрузка документов через веб-панель (10 форматов)
- Отправка в любую тему форума по расписанию
- Поддержка: PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, TXT, ZIP, RAR
- Отправка в чат и/или всем верифицированным жильцам
- UI: превью документа, кнопка удаления

Изменения:
- database/models.py: document_file_id, document_name поля
- database/migrate_v3_4_documents.py: миграция БД
- web/app.py: API endpoint с загрузкой документов
- services/scheduler.py: отправка документов по расписанию
- web/templates/scheduled_posts.html: UI для загрузки документов

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-13 21:51:52 +04:00
Admin
e1d6c58d9c 📝 docs: Добавлен план VPN для жильцов
Запланирована система раздачи VPN конфигов:
- /vpn — запросить конфиг из пула
- Авто-напоминания об истечении (7, 3 дня)
- /vpn_add — админ добавляет конфиги пачкой
- /vpn_stats — статистика
- Веб-панель управления пулом
- Сгорание 1-го числа след. месяца

Причина: РКН блокирует интернет, жильцы теряют связь с домом
Приоритет: Высокий

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-12 19:40:01 +04:00
Admin
e8653595eb 🎨 fix: Исправлена страница Настроек дайджеста
БЫЛО: CSS стили выводились как текст на странице
СТАЛО: Стили правильно в <head> через base.html

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-12 19:18:41 +04:00
Admin
16ce10765b 🛡️ fix: Исправлен импорт ADMIN_CHAT_ID для safety модуля
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-12 19:00:16 +04:00
Admin
23ee551271 🛡️ feat: Система защиты от случайных рассылок
Техническая защита:
- services/safety_guard.py — модуль безопасности
- config.py — SAFETY_MODE переменная
- main.py — инициализация при запуске
- .env.example — документация настройки

Документация для AI-агентов:
- AI_AGENT_RULES.md — полные правила поведения
- КРИТИЧЕСКИЕ-ПРАВИЛА.md — обновлено с Правилом №4

Как работает:
- SAFETY_MODE=production — обычная работа
- SAFETY_MODE=safe — блокировка отправок в общий чат
- Логирование всех заблокированных попыток
- Декоратор @require_production_mode

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-12 18:57:42 +04:00
Admin
97c3e5864d 🎨 refactor: Единая навигация — ВСЕ 14 страниц используют base.html
БЫЛО: Каждая из 14 страниц имела своё собственное вшитое меню
      с разным набором кнопок (от 4 до 10 пунктов)

СТАЛО: Все 14 страниц наследуют base.html с единым меню из 14 пунктов
       в 4 разделах: Пользователи / Коммуникации / Контент / Система

Убрано 1949 строк дублирующегося кода, добавлено 1323 строки чистого контента.
Экономия: -626 строк (32% сокращение).

Переписанные страницы:
- dashboard.html, users.html, verification.html
- phones.html, polls.html, events.html
- schedules.html, ads.html, scheduled_posts.html, export.html

Результат: На ЛЮБОЙ странице пользователь видит ВСЕ 14 пунктов меню.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-12 18:52:58 +04:00
Admin
bd3a56ab3d 🎨 fix: Единое меню навигации на всех страницах
- Убраны дубли пунктов меню (Умная рассылка отдельная удалена)
- Структура: Пользователи / Коммуникации / Контент / Система
- Все страницы наследуют base.html с одинаковым меню
- Добавлены Настройки дайджеста в меню
- Правило №3 добавлено в КРИТИЧЕСКИЕ-ПРАВИЛА.md

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-12 18:33:01 +04:00
Admin
aaac93594d 📰 fix: Исправлена отправка превью дайджеста через HTTP
- Используется aiohttp вместо bot.send_message
- Нет ошибки Timeout context manager
- Коммит в Gitea

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-12 18:29:07 +04:00
Admin
9033310cfa 📰 fix: Исправлена генерация дайджеста
- Добавлен API endpoint /api/digest/generate
- Исправлена JS функция generateNow() — теперь реально вызывает API
- Превью отправляется админу в Telegram после генерации
- Время авто-генерации изменено на 19:00 Ульяновск (15:00 UTC)
- Проверка на дубликаты за ту же неделю

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-12 18:26:27 +04:00
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
Admin
8adcb3bdda 🚨 fix: Убрать спам в общий чат при умной рассылке
- Удалена отправка объявления в ADMIN_CHAT_ID (общий чат)
- Умная рассылка идёт ТОЛЬКО выбранным получателям
- Статистика отправляется только админу в личку
- broadcast_type='smart' вместо 'manual'
- chat_id и message_id теперь None в БД

Инцидент: бот спамил в общий чат со 100+ жителями

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-12 18:04:56 +04:00
Admin
07d7a51f10 🚨 fix: Критические исправления рассылок
- Глобальный синглтон бота (bot_instance.py) — работает из любого процесса
- Прямые HTTP запросы в send_smart_broadcast — нет ошибки Timeout context
- Исправлен joinedload в InitiativeGroupService
- Удалён дубликат route /broadcast
- Удалена страница /broadcasts — всё в одном месте с табами
- Удалён /api/broadcast/send — дублировал /api/broadcast/create
- Добавлен dry_run режим для тестирования без отправки
- Двойное подтверждение перед реальной рассылкой
- Добавлен файл КРИТИЧЕСКИЕ-ПРАВИЛА.md

Инцидент: тестовая рассылка ушла реальным пользователям

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-12 17:57:18 +04:00
Admin
fa8c1d53d9 🔄 feat: Unify Regular and Smart broadcast UI into single page with type selector
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-06 23:29:32 +04:00
Admin
f7aaf96cfa 🎨 feat: Add sidebar navigation for Smart Broadcasts and Digests sections
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-06 23:21:31 +04:00
Admin
222c2ba521 🚀 feat: V3.1 - Smart broadcasts with read tracking + Weekly digests with approval workflow
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-06 23:01:10 +04:00
Admin
f958446767 📋 feat: add V3 feature plan - smart broadcasts, digests, feedback system
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-06 21:51:28 +04:00
Admin
ccc816ce4f 🕐 fix: локальное время UTC+4 + защита от дублирования постов
- Timezone: веб-панель показывает локальное время (UTC+4, Ульяновск)
- Timezone: конвертация UTC → локальное при отображении
- Duplicate fix: промежуточный статус 'sending' в БД
- Duplicate fix: только один процесс берет пост
- UI: подсказки 'По твоему времени (UTC+4)'
- Тест: пост 5 опубликован ровно 1 раз 

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-05 22:37:35 +04:00
Admin
63d059ddb0 fix: timezone конвертация + general topic fix
- Timezone: конвертация в UTC вместо простого удаления tzinfo
- General topic: не добавлять message_thread_id для topic_id=1
- Telegram API требует БЕЗ message_thread_id для общего чата
- Тест: пост 3 успешно опубликован
- Исправлены 2 критические ошибки планировщика

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-05 22:09:05 +04:00
Admin
3bd7fe0371 fix: окончательное исправление Path + тест API
- Очищен __pycache__ (Python кэш)
- Бот перезапущен с новым кодом
- Тест API: пост создан успешно (ID=2)
- Веб-сервер работает без ошибок
- Пользователь уведомлён

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-05 18:56:45 +04:00
Admin
e991be036d 🐛 fix: добавить импорт Path в web/app.py
- Исправлена ошибка 'name Path is not defined'
- Добавлена строка: from pathlib import Path
- Теперь запланированные посты работают корректно

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-05 18:44:47 +04:00
Admin
d8c9599ac1 🔧 UI fixes: единое меню во всех страницах + кнопка запланированных постов
- Исправлено 'плавающее' меню (дублирование кнопок при навигации)
- Создан base.html - единый базовый шаблон для всех страниц
- Добавлена кнопка '📅 Запланированные посты' во все 11 страниц
- Sticky sidebar с улучшенным дизайном
- Все страницы теперь имеют одинаковое меню (11 кнопок)
- Улучшенная подсветка активного пункта (border-left)

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-05 15:59:55 +04:00
Admin
fc06ec4a12 v1.3 - Scheduled Posts: отложенная публикация постов по расписанию
- Новая страница /scheduled_posts в веб-панели
- Создание постов с фото/текстом в любую тему форума
- Планирование даты и времени публикации
- Автоматическая отправка по расписанию (каждую минуту)
- Поддержка всех 10 тем форума
- Уведомления админа о публикации/ошибках
- Миграция БД: таблица scheduled_posts
- Тесты: test_scheduled_posts.py

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-05 15:52:47 +04:00
Admin
1825d26230 📌 snapshot before scheduled posts feature - v1.2 prep
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-05 15:13:37 +04:00
Admin
1e61eca60c v1.35 КРИТИЧЕСКОЕ ИСПРАВЛЕНИЕ ВЕРИФИКАЦИИ
🐛 ПРОБЛЕМА:
• Жильцы писали номер квартиры — он НЕ СОХРАНЯЛСЯ
• 11 человек верифицированы БЕЗ квартиры!
• Авто-верификация верифицировала без проверки квартиры

🔧 ИСПРАВЛЕНИЯ:

1️⃣ web/app.py — auto_verify:
• Теперь верифицирует ТОЛЬКО с квартирой
• Проверка: apartment != None AND apartment != ''

2️⃣ handlers/verification.py — process_verification:
• Если верифицирован БЕЗ квартиры → СОХРАНЯЕТ!
• Если верифицирован С квартирой → сообщение
• Для неверифицированных → как раньше

 РЕЗУЛЬТАТ:
• Жильцы смогут добавить квартиру постфактум
• Авто-верификация не сломает данные
• 11 человек смогут восстановить квартиры

📝 ФАЙЛЫ:
• web/app.py: auto_verify fix
• handlers/verification.py: apartment save fix

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-17 18:24:59 +04:00
Admin
75a17a3de5 v1.34 Комплексное тестирование и исправления
🧪 ТЕСТИРОВАНИЕ:
• Проверены все кнопки меню
• Протестировано для всех уровней доступа
• Найдены и исправлены проблемы

🐛 ИСПРАВЛЕНИЯ:
• IG меню — теперь доступно админам даже если не в ИГ
• Мастера — добавлена заглушка если список пуст
• Суперадмин добавлен в ИГ автоматически

 РЕЗУЛЬТАТЫ ТЕСТОВ:
• Всего пользователей: 19
• Верифицированы: 12
• Не верифицированы: 7
• ИГ: 9
• Админы: 1
• Мастера в базе: 1
• Экстренные: 5

📝 ФАЙЛЫ:
• handlers/initiative_group.py: доступ админам
• handlers/users.py: заглушка для мастеров
• test_bot_comprehensive.py: новый тест

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-17 15:57:34 +04:00
Admin
f2fc6bb06e v1.32 Исправление ChatMemberUpdatedFilter
🐛 ИСПРАВЛЕНИЯ:
• ChatMemberUpdatedFilter не работает в aiogram 3.x как ожидалось
• Временное решение: закомментировано приветствие новых участников
• Импорт ChatMemberUpdatedFilter удалён

 БОТ РАБОТАЕТ:
• Active: active (running)
• Обработка сообщений: OK
• Update id обрабатываются

📝 ФАЙЛЫ:
• handlers/users.py: закомментировано welcome_new_member

🎯 В ПЛАНЕ:
• Разобраться с ChatMemberUpdatedFilter правильно
• Вернуть приветствие новых участников

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-17 15:46:12 +04:00
Admin
73fb4885b9 v1.31 Инструкция для ИГ
📋 ИНСТРУКЦИИ:
• ИНСТРУКЦИЯ_ИГ_ВЕРИФИКАЦИЯ.md — полная версия
• ИГ_БЫСТРАЯ_ИНСТРУКЦИЯ.md — короткая версия

 СОДЕРЖАНИЕ:
• Как найти бота (@lkmthreeseven_bot)
• Как пройти верификацию
• Возможности после верификации
• Особенности для ИГ
• Ответы на вопросы

🎯 ДЛЯ ОТПРАВКИ:
Скопируй текст из файла и отправь в чат ИГ!
Время на верификацию: 2-3 минуты!

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-16 22:49:16 +04:00
Admin
e8e71db0f2 v1.30 Исправление импорта aiogram 3.x
🐛 ИСПРАВЛЕНИЯ:
• ChatMemberFilter → ChatMemberUpdatedFilter
• Исправлен импорт в handlers/users.py
• Бот падал с ImportError

 ПРОВЕРЕНО:
• python3 -m py_compile — OK
• systemctl restart domovoy-bot — OK
• Active: active (running)
• Memory: 132MB — норма

📁 ФАЙЛЫ:
• handlers/users.py: исправлен импорт

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-16 22:18:56 +04:00
Admin
b24a8834d5 v1.29 Мониторинг веб-сервера
👁️ МОНИТОРИНГ ВЕБА:
• Проверка uvicorn на порту 8000
• Автоперезапуск если упал
• Проверка PID процесса
• Проверка доступности панели

 РАБОТАЕТ:
• Бот (systemd)
• Веб-сервер (uvicorn)
• Интервал: 30 секунд

📝 ФАЙЛЫ:
• bot-monitor.sh: обновлён

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-14 13:00:22 +04:00
Admin
8bd4629a57 v1.28 АВТО-МОНИТОРИНГ БОТА
👁️ МОНИТОРИНГ:
• bot-monitor.sh — скрипт проверки (30 сек)
• domovoy-monitor.service — systemd юнит
• Автоперезапуск при падении
• Проверка: systemd + веб-панель

 РАБОТАЕТ:
• Проверка каждые 30 секунд
• Автоперезапуск если упал
• Проверка веб-панели (порт 8000)
• Логирование в monitor.log

📝 ФАЙЛЫ:
• bot-monitor.sh (executable)
• domovoy-monitor.service

🎯 ТЕПЕРЬ:
• Бот САМ следит за собой
• Перезапускается при падении
• Ты НИЧЕГО не делаешь!

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-14 12:40:39 +04:00
Admin
bd6a897e59 v1.27 SYSTEMD автозапуск — ГОТОВО!
🤖 SYSTEMD УСТАНОВЛЕН:
• domovoy-bot.service — systemd юнит
• install-systemd.sh — скрипт установки
• Бот работает через systemd
• Автозапуск после ребута: ВКЛЮЧЁН
• Перезапуск при падении: РАБОТАЕТ

 ПРОВЕРЕНО:
• systemctl start domovoy-bot — ЗАПУЩЕН
• systemctl enable domovoy-bot — АВТОЗАПУСК ВКЛ
• Restart=always — ПЕРЕЗАПУСК ПРИ ПАДЕНИИ
• Memory: 75MB — НОРМАЛЬНО
• CPU: 2.7s — НОРМАЛЬНО

📝 КОМАНДЫ:
sudo systemctl status domovoy-bot
sudo systemctl restart domovoy-bot
journalctl -u domovoy-bot -f

🎯 ВЕЧЕРОМ:
reboot локального хоста → бот сам запустится!

📁 ФАЙЛЫ:
• domovoy-bot.service
• install-systemd.sh

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-13 18:20:35 +04:00
Admin
d2ad0c4da0 v1.26 Исправление + systemd автозапуск
🐛 ИСПРАВЛЕНИЯ:
• chat_monitor.py: защита от None
• message_count: (None or 0) + 1
• rating: (None or 0) + RATING_PER_MESSAGE

🤖 SYSTEMD АВТОЗАПУСК:
• domovoy-bot.service — systemd юнит
• install-systemd.sh — скрипт установки
• Автозапуск после ребута
• Перезапуск при падении
• Логи через journalctl

📁 ФАЙЛЫ:
• handlers/chat_monitor.py: исправление
• domovoy-bot.service: systemd
• install-systemd.sh: установка

🎯 УСТАНОВКА:
./install-systemd.sh

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-13 18:16:04 +04:00
Admin
b7d9508e56 v1.25 Приветствие новых участников
🎉 ПРИВЕТСТВИЕ:
• Бот встречает новых участников
• Отправляет привет в личку
• Рассказывает про ЖК Ленком 37
• Инструкция по верификации
• Полезные команды

📁 ФАЙЛЫ:
• handlers/users.py: welcome_new_member
• router.chat_member: LEFT → MEMBER

🚀 АКТИВАЦИЯ:
• QR код на объявлениях
• Новые жильцы в чате
• Автоматическое приветствие

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-13 15:34:46 +04:00
Admin
377b061ac9 v1.24 Уведомления о верификации
🔔 УВЕДОМЛЕНИЯ:
• Бейдж в меню: Верификация (N)
• Блок в Пользователях: Ожидают (N)
• Быстрая верификация: [] []
• Telegram уведомление админу

 БЫСТРАЯ ВЕРИФИКАЦИЯ:
• Прямо в разделе Пользователи
• Кнопки: Верифицировать / Отклонить
• Перезагрузка страницы

📁 ФАЙЛЫ:
• web/app.py: pending_count
• web/templates/users.html: блок уведомлений
• web/templates/dashboard.html: бейдж
• handlers/verification.py: уведомление в Telegram

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-11 18:51:57 +00:00
Admin
dc8ae8b152 v1.23 Верификация новых + благодарности
 НОВЫЕ ПОЛЬЗОВАТЕЛИ:
• /start - добавляет в базу и приветствует
• Может сразу отправить номер квартиры
• Стимул к верификации

 БЛАГОДАРНОСТИ:
• Показывает ВСЕХ верифицированных (не топ-100)
• Пагинация: 20 на странице
• Совет: /thank @username для поиска
• Работает с 500+ пользователями

📁 ФАЙЛЫ:
• handlers/users.py: /start добавляет, thanks pagination

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-11 18:47:23 +00:00
Admin
9cee4e8d1f v1.22 Безопасность - белый список
🔒 БЕЗОПАСНОСТЬ:
• Бот работает ТОЛЬКО с пользователями из базы
• /start - игнор если нет в базе
• /help - игнор если нет в базе
• Верифицированные - полный доступ
• Неверифицированные - стимул пройти верификацию

📁 ФАЙЛЫ:
• handlers/users.py: проверка базы
• collect_all_members.py: скрипт сбора

🎯 СТИМУЛ:
• Хочешь бота? → Пройди верификацию!
• Админы, ИГ, верифицированные - работают
• Остальные - игнор

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-11 12:22:50 +00:00
Admin
049a152dc8 v1.21 Исправление критических ошибок
🐛 ИСПРАВЛЕНИЯ:
• chat_monitor.py: message.system → hasattr проверка
• База данных: добавлена колонка achievement_data
• Удалена кнопка /settings из всех шаблонов
• Настройки перенесены в /broadcast

📁 ФАЙЛЫ:
• handlers/chat_monitor.py
• web/templates/*.html (удалена /settings)
• database: ALTER TABLE achievements

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-11 07:42:16 +00:00
Admin
ff03e38ee7 v1.20 ИГ кнопка + логирование + настройка в broadcast
🎯 ИНИЦИАТИВНАЯ ГРУППА:
• Кнопка 'ИГ' в дашборде и пользователях
• Фильтр по ИГ в /users?filter=ig
• Синяя карточка для ИГ

⚙️ НАСТРОЙКИ:
• Перенесено из /settings в /broadcast
• Лимит рассылки ИГ (секунды)
• GET/POST /api/settings/ig_broadcast_limit

📊 ЛОГИРОВАНИЕ:
• Таблица activity_log
• Логирование рассылок
• API /api/activity_log

🐛 ИСПРАВЛЕНИЯ:
• Удалена /settings (Internal Server Error)
• Исправлен web/app.py (повреждённый код)

📁 ФАЙЛЫ:
• web/app.py: фильтр ИГ, логи, настройка
• web/templates/dashboard.html: кнопка ИГ
• web/templates/users.html: кнопка ИГ
• web/templates/broadcast.html: настройка лимита
• database: activity_log table

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-10 17:10:26 +00:00
Admin
cef2ac3714 v1.19 ИГ рассылка + объявления 14 дней + настройки
🔥 ОБЪЯВЛЕНИЯ:
• Срок действия: 7 → 14 дней

🎯 ИНИЦИАТИВНАЯ ГРУППА:
• Добавлена кнопка 'Рассылка ИГ' в меню
• Команда /ig_broadcast для членов ИГ
• Поддержка текста + фото + файлов
• Настройка лимита в веб-панели

⚙️ ВЕБ-ПАНЕЛЬ:
• Новая страница /settings
• Настройка лимита рассылки ИГ (секунды)
• Кнопки статистики фильтруют пользователей
• Индикатор активного фильтра

🎨 UI:
• Исправлен <font> → emoji (Telegram не поддерживает)
• Цветные заголовки через emoji

📁 ФАЙЛЫ:
• handlers/ads.py: 14 дней
• handlers/initiative_group.py: рассылка ИГ
• web/app.py: API настроек
• web/templates/settings.html: страница настроек
• utils/ui_styles.py: без <font> тегов
• database: settings table

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-10 17:01:30 +00:00
Admin
da010eccbf 🌐 ВЕБ-АДМИНКА: РАССЫЛКИ С КАРТИНКАМИ
 Реализовано:
- Веб-страница /broadcast
- Загрузка картинок через браузер
- Предпросмотр перед отправкой
- Отправка в один клик
- Рассылка верифицированным + в чат

🎯 Как использовать:
1. Веб-админка → Рассылки
2. Ввести текст
3. Прикрепить картинку (необязательно)
4. Предпросмотр
5. Отправить

💡 Преимущества:
- Удобно с телефона/планшета
- Не нужен Telegram для отправки
- Визуальный предпросмотр
- Вся история в веб-интерфейсе

📁 Файлы:
- web/app.py — API рассылок
- web/templates/broadcast.html — форма
- web/templates/dashboard.html — меню

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-04 18:41:59 +00:00
Admin
b4c06d09a3 📸 РАССЫЛКА С КАРТИНКАМИ
 Реализовано:
- Рассылка текста (работает)
- Рассылка картинки с подписью (НОВОЕ!)
- Отправка в общий чат + в личку каждому
- Отчёт админу об успешной рассылке

🎯 Как использовать:
1. /admin → 📤 Рассылка
2. Отправить текст ИЛИ картинку с подписью
3. Бот разошлёт всем верифицированным:
   - В общий чат
   - В личку каждому

📝 Для срочного объявления:
1. Напиши боту в личку
2. /admin
3. 📤 Рассылка
4. Отправь картинку + текст
5. Готово!

💡 Важно:
- Рассылка только верифицированным
- Картинка сжимается Telegram
- Подпись до 1024 символов

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-04 18:32:09 +00:00
Admin
d81ee6d238 АВТОВЕРИФИКАЦИЯ АКТИВНЫХ ПОЛЬЗОВАТЕЛЕЙ
 Реализовано:
- Автоверификация по 50+ сообщениям
- Кнопка админу ' Автоверификация'
- Веб-админка → Пользователи → Статистика + Кнопка
- Плавный ввод верификации

🎯 Как работает:
1. Бот считает сообщения пользователей
2. Кто набрал 50+ сообщений — считается 'своим'
3. Админ жмёт кнопку → все активные верифицируются
4. Веб-админка показывает статистику:
   - Всего пользователей
   - Верифицировано
   - Не верифицировано
   - Активных для верификации

📝 Преимущества:
- Не нужно проверять 200 человек вручную
- Активные жильцы сразу получают доступ
- Админы проверяют только подозрительных
- Мотивация: телефоны только после верификации

🧪 Тест:
/admin →  Автоверификация
или
Веб-админка → Пользователи → Верифицировать всех

💡 Плавный ввод:
- Бот предлагает верификацию, но не требует
- Телефоны и функции только после верификации
- Жильцы сами мотивированы пройти верификацию

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-03 18:41:29 +00:00
Admin
5adb3d7818 🔒 ЗАЩИТА ОТ СПАМА В ОБЩИЙ ЧАТ
 Все команды теперь работают ТОЛЬКО В ЛИЧКЕ:
- /start, /help - только в личке
- Все кнопки меню - только в личке
- Админ-команды - только в личке (уже было)

📝 Что будет если написать в общем чате:
'💡 Бот работает только в личных сообщениях!
Нажмите на имя бота сверху и напишите /start в личке'

🎯 Преимущества:
- Нет спама в общем чате
- Все диалоги конфиденциальны
- Жильцы общаются с ботом в личке
- Админы управляют через личку

💡 Исключения:
- Мониторинг сообщений (анти-мат, анти-спам)
- Детект шпионов
- Рейтинги активности
- Эти функции работают в чате но не спам!

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-03 18:25:21 +00:00
Admin
8a41de9ddb 🔧 Исправление кнопки '🚫 Отозвать вериф.'
 Теперь кнопка показывает реальный список:
- Пользователи с отозванной верификацией
- Показывает ID, квартиру, когда отозвано
- Сколько дней назад

📝 Было:
- Показывала подсказку по команде /unverify

📝 Стало:
- Показывает реальный список пользователей
- Сразу видно у кого отозвана верификация
- Удобно для админа!

💡 Все кнопки теперь работают без подсказок!
- Для подсказок есть кнопка ' Помощь'
- Остальные кнопки показывают результат сразу!

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-03 18:16:35 +00:00