Commit graph

71 commits

Author SHA1 Message Date
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
Admin
3514a8bb6b 🔧 Исправление кнопки 'Список не верифицированных'
 Теперь кнопка показывает реальный список:
- Пользователи с verified=False
- Сортировка по дате вступления
- Показывает ID, квартиру, дату
- Подсказка что делать

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

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

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-03 13:53:07 +00:00
Admin
819bed706b 📸 Загрузка картинок через веб-админку
 Реализовано:
- Форма загрузки в веб-админке (/phones)
- API endpoint /api/service/upload_image
- Авто-привязка картинки ко всем службам категории
- Раздача статики через /static/service_images

🎨 Как использовать:
1. Веб-админка → Телефоны
2. Прокрути до 'Загрузить картинку'
3. Выбери категорию и файл
4. Загрузи
5. Готово!

💡 Преимущества:
- Не нужен SSH
- Загрузка из браузера
- Уникальные имена файлов
- Авто-обновление БД

📁 Файлы:
- web/app.py — API загрузки
- web/templates/phones.html — форма загрузки
- data/service_images/ — папка для картинок

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-02 10:21:21 +00:00
Admin
f0a081a988 📸 Картинки для служб (полиция, МЧС, ЖКХ)
 Реализовано:
- Добавлено поле image_path в Service модель
- Миграция БД выполнена
- Бот отправляет картинки с телефонами
- Если картинки нет → отправляет текстом
- Папка: data/service_images/

📝 Скрипты:
- database/update_service_image.py — загрузка картинок
- database/migrate_add_service_images.py — миграция

🎨 Как использовать:
1. Положи картинку в data/service_images/
2. venv/bin/python3 database/update_service_image.py police img.jpg
3. Проверь в боте: /start → 👮 Участковый

💡 Работает для всех категорий:
- police (полиция)
- emergency (МЧС)
- utility (ЖКХ)
- masters (мастера)

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-02 08:12:31 +00:00
Admin
e06a3825ba 🧪 Комплексное тестирование + отчёты
 Проведено полное тестирование функционала:
- Меню жильца (11 кнопок)
- Меню админа (17 кнопок)
- База данных (проверка записей)
- Уникальность callback_data
- Сообщения в личку (без спама)

📝 Созданные файлы:
- tests/run_tests.py — автотесты
- tests/TEST_REPORT.md — отчёт о тестировании
- tests/COMPREHENSIVE_TEST_PLAN.md — план тестов
- send_test_report.py — отправка отчёта

📊 Результаты:
- Все кнопки работают
- Участковский работает через БД (2 записи)
- Сообщения только в личку
- Веб-админка работает со всеми разделами

🎯 ВСЁ РАБОТАЕТ!

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-01 20:00:56 +00:00
Admin
b9ac442a89 🎯 Упрощение меню жильца и исправление Участкового
 Убраны лишние кнопки из меню жильца:
- 📢 Объявления (админский функционал)
- 📣 Подать объявление
- 📊 Токсичность (админский функционал)
- 🏠 Темы чата (админский функционал)

 Остались только нужные жильцам кнопки:
- 📞 Экстренные телефоны
- 👷 Мастера
- 👮 Участковый (работает через Service БД!)
- 📅 График отключений
- 🏆 Достижения
- 📅 События
- 💰 Платежи
- 📋 Опросы
- 🔍 Моя квартира
- 🙏 Поблагодарить
-  Помощь

 Участковый берёт данные из Service таблицы
 Все сообщения бота только в личку пользователю

📝 Веб-админка: Телефоны → Добавить службу → Полиция

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-01 15:17:20 +00:00
Admin
fc7484889c feat: Веб-интерфейс - логин/пароль в .env + API команд
 WEB_ADMIN_LOGIN/PASSWORD в .env.example
 Конфиг web_admin в config.py
 API /api/command - выполнение команд
 API /api/commands - список команд
 Обновлён web_server.py с конфигом

📦 Бекап: backups/versions/v2.1.2_web_auth_2026-02-28/

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-28 20:28:31 +00:00
Admin
af4e7d2c5d fix: Добавлены кнопки для unverify и unverified_list
 Кнопки в inline меню админа
 Кнопки в reply меню админа
 Обработчики callback для кнопок
 Исправлено отображение команд

📦 Бекап: backups/versions/v2.1.1_buttons_fix_2026-02-28/

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-28 20:07:16 +00:00
Admin
19c5fdd0ac feat: v2.1 - Инициативная группа
 Модель InitiativeGroup в БД
 Сервис initiative_group.py
 Хендлеры: /ig_add, /ig_remove, /ig_list, /ig_stats, /ig_check, /ig_broadcast
 Декораторы для ИГ
 Миграция v2.1 выполнена

📦 Бекап: backups/versions/v2.1_initiative_group_2026-02-27/

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-28 10:11:36 +00:00
Admin
32f6ca8d5d docs: План v2.x - Инициативная группа и управление вопросами
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-28 10:03:59 +00:00
Admin
8152050306 docs: Обновлены доступы с учётными данными Gitea
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-27 12:00:33 +00:00
Admin
8363c82575 docs: Добавлены доступы к инфраструктуре
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-27 10:58:17 +00:00
Admin
ba4676b0af v1.0 MVP - Инициализация проекта 🏠
 Регистрация и верификация жильцов
 Рейтинг активности (уровни)
 Детект шпионов (Score 0-100)
 Анти-мат система (3 предупреждения → бан)
 Админ-панель с рассылкой
 Учёт квартир (несколько жильцов)
 Телефоны экстренных служб и мастеров
 Еженедельный экспорт JSON
 Прокси (socks5) для обхода РКН

Бекап: backups/versions/v1.0_mvp_2026-02-26/

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-27 10:54:16 +00:00