Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

18 Commits

Folders and files

Repository files navigation

🎓 PVGUS Schedule Bot - ОБНОВЛЁННАЯ ВЕРСИЯ 2.0

🆕 Что нового в версии 2.0

✨ Главное обновление: ИЗОБРАЖЕНИЯ вместо текста!

Теперь бот отправляет расписание красивыми изображениями с вашим водяным знаком FLEIZY!


📦 Структура обновлённого проекта

pvgus_bot/
├── bot/
│   ├── handlers/
│   │   ├── schedule.py          ✏️ ОБНОВЛЁН - отправка изображений
│   │   ├── start.py
│   │   └── settings.py
│   ├── keyboards/
│   └── states/
├── services/
│   ├── image_generator.py       ⭐ НОВЫЙ - генератор изображений
│   ├── parser.py
│   ├── formatter.py
│   └── __init__.py              ✏️ ОБНОВЛЁН
├── database/
├── config/
├── utils/
├── main.py                      
├── main_UPDATED.py              ⭐ НОВЫЙ - пример с уведомлениями
├── ADVANCED_FEATURES_UPDATED.py ⭐ НОВЫЙ - уведомления с изображениями
├── requirements.txt             ⭐ НОВЫЙ - зависимости
├── INSTALLATION_GUIDE.md        📖 ИНСТРУКЦИЯ ПО УСТАНОВКЕ
├── COLOR_THEMES.md              🎨 10 ГОТОВЫХ ЦВЕТОВЫХ СХЕМ
└── README.md                    📖 ЭТОТ ФАЙЛ

🚀 Быстрый старт

1. Установите зависимости

pip install -r requirements.txt

2. Замените файлы

Скопируйте обновлённые файлы в ваш проект:

  • ✅ services/image_generator.py - новый файл
  • ✅ services/__init__.py - обновлённый
  • ✅ bot/handlers/schedule.py - обновлённый

3. Запустите бота

python main.py

4. Проверьте работу

Отправьте боту команду 📅 Сегодня - должно прийти изображение!


📸 Особенности изображений

Дизайн

  • 🎨 Профессиональный тёмный дизайн
  • 📱 Оптимизирован для мобильных устройств (1080px ширина)
  • 🔄 Адаптивная высота под количество пар
  • ✨ Скруглённые углы и градиенты

Водяной знак FLEIZY

  • 💧 Полупрозрачный на фоне всего изображения
  • 🎯 Яркий брендинг внизу каждого изображения
  • 🔒 Защита контента - ваше имя на каждом расписании

Эмодзи для типов занятий

  • 📖 Лекция
  • 💻 Практика
  • 🧪 Лабораторная работа
  • 📝 Семинар
  • 💬 Консультация

🎨 Настройка внешнего вида

Изменить цвета

Откройте services/image_generator.py и найдите словарь COLORS:

COLORS = {
    'background': '#1a1a2e',      # Фон
    'accent': '#e94560',          # Акцентный цвет
    # ... другие цвета
}

Готовые темы

В файле COLOR_THEMES.md есть 10 готовых цветовых схем:

  1. Тёмная синяя (FLEIZY) - текущая
  2. Cyber (фиолетовая)
  3. Modern (светлая)
  4. Matrix (зелёная)
  5. Minimal
  6. Gradient Dark
  7. Sunset (оранжевая)
  8. Neon
  9. University (классическая)
  10. Pastel (пастельная)

Просто скопируйте понравившуюся схему в image_generator.py!

Изменить водяной знак

Найдите в коде:

watermark = "FLEIZY"  # Ваше имя

И замените на своё!


🔔 Дополнительный функционал

Уведомления с изображениями

Файл ADVANCED_FEATURES_UPDATED.py содержит:

1. Утренние уведомления (7:00)

  • 🌅 Отправка расписания на день изображением
  • ⚙️ Настраиваемое время

2. Напоминания о парах (за 15 минут)

  • ⏰ Уведомления перед каждой парой
  • 📚 Информация о предмете и аудитории

3. Админ команды

  • 📊 /stats - статистика бота
  • 📢 /broadcast - рассылка всем пользователям
  • 🗑️ /clear_cache - очистка кэша

Как активировать

См. подробную инструкцию в файле INSTALLATION_GUIDE.md раздел "Уведомления"


📚 Документация

Файл Описание
INSTALLATION_GUIDE.md 📖 Подробная инструкция по установке и настройке
COLOR_THEMES.md 🎨 10 готовых цветовых схем + генераторы палитр
ADVANCED_FEATURES_UPDATED.py ⚡ Код дополнительного функционала
main_UPDATED.py 📝 Пример main.py с уведомлениями

🔧 Технические детали

Зависимости

aiogram==3.4.1        # Фреймворк для Telegram ботов
Pillow==10.2.0        # Генерация изображений
aiohttp==3.9.3        # Асинхронные HTTP запросы
aiosqlite==0.19.0     # Асинхронная работа с БД
httpx==0.26.0         # Парсинг расписания
beautifulsoup4==4.12.3 # Парсинг HTML

Формат изображений

  • Формат: PNG
  • Ширина: 1080px
  • Высота: Динамическая (200px шапка + 180px на пару + 100px футер)
  • Качество: 95%
  • DPI: 72

Производительность

  • ⚡ Генерация изображения: ~0.1-0.3 секунды
  • 💾 Размер файла: 50-200 KB (зависит от количества пар)
  • 🚀 Отправка через BufferedInputFile (без сохранения на диск)

❓ Часто задаваемые вопросы

Можно ли вернуть текстовые сообщения?

Да! В bot/handlers/schedule.py замените блок с генерацией изображения на старый код:

# Вместо:
image_generator = ScheduleImageGenerator()
image_bytes = image_generator.generate_schedule_image(schedule_data)
# ...

# Используйте:
text = ScheduleFormatter.format_day_schedule(schedule_data)
await message.answer(text, ...)

Как изменить размер изображения?

В services/image_generator.py:

WIDTH = 1200  # Было 1080

Можно ли использовать свой шрифт?

Да! Добавьте файл шрифта .ttf в проект и укажите путь:

fonts['header'] = ImageFont.truetype('path/to/font.ttf', 48)

Изображения слишком большие?

Уменьшите качество:

img.save(output, format='PNG', quality=70)  # Было 95

Или используйте JPEG:

img.save(output, format='JPEG', quality=85)

🐛 Известные проблемы

Проблема: ModuleNotFoundError: No module named 'PIL'

Решение:

pip install Pillow

Проблема: Шрифты не найдены

Решение (Linux):

sudo apt-get install fonts-dejavu

Решение (Windows): Шрифты подхватятся автоматически из системы

Проблема: Изображения не отправляются

Решение:

  1. Проверьте логи на ошибки
  2. Убедитесь что Pillow установлен
  3. Проверьте что файлы обновлены

📈 Будущие обновления

  • Возможность выбора темы через настройки бота
  • Добавление логотипа вместо текста
  • Анимированные стикеры с расписанием
  • Экспорт расписания в PDF
  • QR-код для быстрого доступа

🤝 Поддержка

Если возникли проблемы:

  1. 📖 Прочитайте INSTALLATION_GUIDE.md
  2. 🔍 Проверьте логи бота
  3. ✅ Убедитесь что все зависимости установлены
  4. 📝 Проверьте что файлы заменены правильно

⭐ Что дальше?

  1. Протестируйте все функции
  2. Настройте цвета под свой бренд
  3. Активируйте уведомления (опционально)
  4. Поделитесь ботом с друзьями!

📝 Changelog

Version 2.0 (09.02.2026)

Added

  • ⭐ Генерация изображений расписания
  • 🎨 Водяной знак FLEIZY
  • 📸 Отправка расписания фотографиями
  • 🔔 Уведомления с изображениями
  • 📊 Админ команды
  • 🎨 10 готовых цветовых схем
  • 📖 Подробная документация

Changed

  • ✏️ Обновлены обработчики расписания
  • ✏️ Обновлён services/init.py
  • 📝 Улучшены комментарии в коде

Fixed

  • 🐛 Оптимизирована производительность
  • 🐛 Улучшена обработка ошибок

📄 Лицензия

Этот проект создан для образовательных целей.


🎉 Спасибо!

Спасибо за использование PVGUS Schedule Bot!

Если проект оказался полезен, поставьте ⭐

Создано с ❤️ для ПВГУС

Водяной знак: FLEIZY 🎨


Версия: 2.0
Дата: 09.02.2026
Автор обновления: FLEIZY

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages