- •Проектная работа
- •Глава 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.6 Инструкция пользователя
Бот предназначен для сотрудников технической поддержки Ростелекома. С его помощью можно пройти тесты по различным темам, а результаты тестирования доступны для анализа вашим руководителем.
Шаг 1. Запуск бота
Откройте Telegram.
В строке поиска введите: @myprojectpassbot и выберите бота.
Нажмите кнопку «Start» или отправьте команду /start. (рис. 3)
Рис. 18 – Начало работы
Шаг 2. Выбор желаемого действия
После запуска бот предложит выбрать нужную пользователю опцию.
Пример №1. Сжатие изображения
Пользователь выбрал опцию со сжатием изображения и указал качество по умолчанию: 20 (рис. 4)
Рис. 19 – Сжатие изображения
После отправки исходного изображения пользователь в ответ получил уже сжатое изображение.
Пример №2. Удаление метаданных
Пользователь выбрал опцию удаления метаданных при работе с ботом. Теперь у изображений они будут удалены при отправке на сервер (рис. 5).
Рис. 20 – Удаление метаданных
Пример №3. PDF
Пользователь может выбрать режим работы с PDF. Отправленные пользователем изображения будут собраны в единый документ.
Рис. 21 – Объединение изображений
Шаг 3. Получение результата
Пользователь может скачать присланный ботом файл.
Доступные команды:
Основные команды:
1. /start — начало работы с ботом, вывод приветственного сообщения и списка доступных команд;
2. /help — получение подробной справки по использованию бота.
Команды настройки параметров сжатия:
1. /quality <значение> — установка уровня качества JPEG (диапазон от 1 до 95)
2. /target <КБ> — установка целевого размера файла в килобайтах
3. /maxsize <ширина>x<высота> — ограничение максимального разрешения изображения
4. /auto on/off — включение/выключение автоматического определения типа изображения
5. /palette <цвета> — установка количества цветов в палитровом PNG (64, 128 или 256)
6. /strip_exif on/off — включение/выключение удаления EXIF-метаданных из изображений
Команды работы с PDF-документами:
1. /pdf_start — начало сессии для создания PDF из нескольких изображений
2. /pdf_done — завершение сессии и формирование PDF-файла
Выводы
В ходе реализации проектной работы была достигнута основная цель — создание функционального Telegram-бота для сжатия и обработки изображений. Реализованная система продемонстрировала, что современные мессенджеры, такие как Telegram, могут эффективно использоваться не только для коммуникации, но и как удобная платформа для выполнения утилитарных задач, связанных с обработкой медиаконтента.
На всех этапах проектирования и реализации особое внимание уделялось производительности, удобству использования и масштабируемости решения. В качестве языка программирования был выбран Python благодаря его простоте, читаемости, богатой экосистеме библиотек и поддержке асинхронного программирования. Использование фреймворка aiogram позволило реализовать эффективную событийно-ориентированную архитектуру, обеспечивающую параллельную обработку запросов от множества пользователей без снижения отзывчивости системы.
В рамках проекта были выполнены следующие ключевые задачи:
· Разработана модульная архитектура бота с четким разделением ответственности между компонентами: обработка изображений, управление настройками, работа с PDF и взаимодействие с Telegram API.
· Реализована система адаптивного сжатия изображений с автоматическим определением типа контента (фотография/графика) и интеллектуальным выбором оптимального формата (JPEG с регулируемым качеством или палитровый PNG).
· Создана гибкая система пользовательских настроек, сохраняемых в JSON-формате, что позволило обеспечить персонализированный подход к обработке изображений без необходимости использования полноценной базы данных.
· Внедрен режим сборки PDF-документов из нескольких изображений с поддержкой сессионного хранения данных в оперативной памяти.
· Обеспечена конфиденциальность данных за счет реализации функции удаления EXIF-метаданных, содержащих личную информацию о пользователе и устройствах съемки.
· Реализована комплексная обработка ошибок с детализированными сообщениями для пользователя, что повысило устойчивость системы к некорректным входным данным.
Бот обладает понятным и интуитивным интерфейсом, основанным на системе текстовых команд, что делает его использование простым даже для неподготовленных пользователей. Благодаря использованию асинхронной архитектуры и оптимизированных алгоритмов обработки изображений, система демонстрирует высокую производительность и отзывчивость даже при одновременной работе с несколькими десятками пользователей.
Проект обладает высокой степенью масштабируемости: модульная структура кода и использование стандартизированных форматов хранения данных позволяют легко добавлять новые функции и форматы обработки. Кроме того, в перспективе возможно расширение функционала за счёт:
· внедрения поддержки современных форматов изображений, таких как WebP и AVIF;
· добавления нейросетевых алгоритмов для улучшения качества изображений после сжатия;
· реализации пакетной обработки файлов через ZIP-архивы;
· интеграции с облачными хранилищами для автоматической загрузки и обработки изображений;
· разработки веб-интерфейса для расширенного управления настройками и статистикой.
Таким образом, разработанный Telegram-бот представляет собой универсальное решение для оптимизации графических файлов. Он может быть успешно использован как в личных целях для экономии места на устройствах, так и в профессиональной деятельности дизайнеров, фотографов, сотрудников технической поддержки и образовательных учреждений. Проект подтвердил свою актуальность и продемонстрировал эффективность использования мессенджер-платформ для решения практических задач обработки медиаконтента в условиях повсеместной цифровизации и роста объема передаваемых визуальных данных.
