- •Проектная работа
- •Глава 1. Технологии разработки Telegram бота. 4
- •Глава 2. Разработка Telegram-бота 21
- •Перечень терминов и сокращений
- •Введение
- •Глава 1. Технологии разработки Telegram бота.
- •Обзор литературы
- •1.2 История мессенджера Telegram
- •1.3 Сравнительный анализ языков программирования для Telegram-ботов
- •1.4 Характеристика языка программирования Python
- •1.5 Обзор фреймворков и библиотек для создания ботов
- •1.6 Обзор библиотек и методов обработки изображений
- •1.7 Описание алгоритмов и форматов данных
- •1.7.1. Цветовые модели и форматы данных
- •1.7.2 Алгоритм палитризации
- •1.7.3 Алгоритм классификации изображений
- •1.7.4 Алгоритм сжатия jpeg
- •1.7.5 Алгоритм сжатия png
- •Глава 2. Разработка Telegram-бота
- •2.1 Планируемые возможности бота и подходы к их реализации
- •2.2 Разработка модуля обработки изображений
- •2.3 Разработка пользовательского интерфейса
- •2.4 Разработка функций для работы с изображениями и передачи данных
- •2.4.1 Импорты, настройки и словари
- •2.4.2 Пользовательские настройки
- •2.4.3 Функции обработки изображений
- •2.4.4 Функции работы с пользовательскими данными
- •2.4.6 Обработчики команд и сообщений
- •2.4.7 Основной цикл
- •2.5 Описание разработки Telegram-бота
- •2.6 Инструкция пользователя
- •Список литературы
- •Приложение
2.3 Разработка пользовательского интерфейса
Пользовательский интерфейс Telegram-бота для сжатия изображений спроектирован с ориентацией на минимализм и интуитивность, учитывая специфику среды мессенджера. Основной принцип взаимодействия — текстовая командная модель, которая не требует от пользователя освоения сложных интерфейсов и позволяет быстро начать работу. При первом обращении к боту через команду /start автоматически создается профиль пользователя с базовыми настройками, что исключает необходимость предварительной регистрации или конфигурации.
Рис. 13 – Начало работы
Система команд организована по трем уровням. Базовые команды /start и /help обеспечивают первичное взаимодействие и справочную информацию. Группа команд управления настройками позволяет тонко контролировать параметры обработки: /quality задает уровень сжатия JPEG (1–95), /target устанавливает целевой размер файла в килобайтах, /maxsize ограничивает разрешение, /auto включает или отключает автоматическое определение типа изображения, /palette настраивает глубину цвета для PNG, а /strip_exif управляет удалением метаданных. Каждая команда включает валидацию входных данных, а при ошибке ввода бот возвращает подсказку.
Рис. 14 – Сжатие изображения
Третий уровень — команды работы с PDF-документами: /pdf_start инициирует сессию сборки многостраничного документа, а /pdf_done завершает её и формирует итоговый файл.
Рис. 15 – Объединение изображений
Центральный сценарий использования — отправка изображения — обрабатывается интеллектуальным обработчиком, который автоматически распознает тип загрузки (документ или фото), применяет сохраненные настройки пользователя и выбирает оптимальный алгоритм сжатия на основе анализа содержимого. В процессе обработки пользователь получает визуальную обратную связь через статусные сообщения с эмодзи, что улучшает восприятие ожидания. Результат всегда возвращается как файл-документ, чтобы избежать дополнительного сжатия со стороны Telegram.
Обратная связь с пользователем выстроена в едином стиле с семантическим использованием эмодзи: информационные сообщения сопровождаются, подтверждения, индикаторы процесса, предупреждения, а ошибки. Сообщения структурированы и содержат только необходимую информацию. Например, при изменении настроек выводится сводка изменений с пояснением, когда новые параметры вступят в силу.
Система обработки ошибок проектировалась с акцентом на понятность и полезность. При возникновении проблем пользователь получает не только описание ошибки на русском языке, но и конкретные рекомендации по её устранению. Бот валидирует форматы файлов, контролирует размеры загружаемых изображений, отслеживает время жизни PDF-сессий и корректно восстанавливается после сбоев.
В основе UX-дизайна лежат принципы минимального взаимодействия, прогрессивного раскрытия функциональности, консистентности и мгновенной обратной связи. Пользователь может начать работу сразу, сложные функции доступны по мере необходимости, все команды следуют единому шаблону, а отклик системы происходит в течение 1–3 секунд благодаря асинхронной архитектуре. Интерфейс адаптирован под различные сценарии: оптимизирован для мобильных устройств, поддерживает пакетную обработку и режим «установил и забыл», когда настройки применяются автоматически ко всем последующим операциям.
