МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ ОРДЕНА ТРУДОВОГО КРАСНОГО ЗНАМЕНИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ СВЯЗИ И ИНФОРМАТИКИ» Кафедра «Направляющие телекоммуникационные среды» Лабораторная работа №1 на тему “Создание простого Telegram – Бота на языке Python” Группа: БИН2106 Выполнил: Бычков Роман Вячеславович Москва 2022 1. Общее задание а) Создать обработку трёх любых сообщений; б) Создать обработку трёх любых команд; в) Подробно расписать команду /help 2. Формализация и уточнение задания В данной лабораторной работе бот должен отвечать на три команды и три сообщения. Для примера будем использовать следующие команды: а) /time, при которой бот будет отвечать отсылать текущее время; б) /help, при которой бот будет отсылать сообщение с информацией о своих возможностях; в) /random, при которой бот будет генерировать случайное число от 1 до 100. Также, бот будет реагировать на следующие сообщения: а) «хочу», при котором он будет присылать ссылку на сайт МТУСИ; б) «рандом», при котором будет генерировать число от 1 до 100; в) «выход», при котором бот вернёт пользователя в главное меню. 3. Разработка программного кода проекта и краткая теория Данный бот состоит из одного файла: main.py. В нём хранится код бота. import datetime import random import telebot from telebot import types from random import randint token = "5196019989:AAHnKg1yGbMMXBH1M6Ooj1U0dvNzJQKhfo8" def rev(): global random_g random_g = random.randint(1, 100) bot = telebot.TeleBot(token) keyboard = types.ReplyKeyboardMarkup() keyboard.row("Хочу") keyboard.add("/help", "/time") keyboard.add("/random") random_kb = types.ReplyKeyboardMarkup() random_kb.row("Рандом") random_kb.row("Выход") @bot.message_handler(commands = ['start']) def start(message): bot.send_message(message.chat.id, 'Привет! Хочешь узнать новую информацию о МТУСИ?', reply_markup = keyboard) @bot.message_handler(commands = ['help']) def help(message): bot.send_message(message.chat.id, '/help - помощь\n/time - текущее время\n/random - генератор случайного числа') @bot.message_handler(commands = ['random']) def random(message): bot.send_message(message.chat.id, 'Это генерация случайного числа от 1 до 100', reply_markup = random_kb) @bot.message_handler(commands = ['time']) def time(message): now = datetime.datetime.now() bot.send_message(message.chat.id, str(now.hour) + ":" + str(now.minute), reply_markup = keyboard) @bot.message_handler(content_types = ['text']) def dialog(message): if message.text.lower () == "хочу": bot.send_message(message.chat.id, 'Тогда держи ссылку! https://mtuci.ru/', reply_markup = keyboard) elif message.text.lower() == "рандом": rev() bot.send_message(message.chat.id, 'Число сгенерировано', reply_markup = random_kb) bot.send_message(message.chat.id, f'{randint(1, 100)}', reply_markup = random_kb) #rev() elif message.text.lower() == "выход": bot.send_message(message.chat.id, "Возвращаю Вас в главное меню", reply_markup=keyboard) bot.polling() Программный код файла main.py 4. Проверка работоспособности бота Рисунок 1 – команда /start, хочу Рисунок 2 – команды /time, /random, Рандом, Выход 5. Вывод а) Проведён анализ и выполнены все условия поставленной задачи; б) Был разработан программный код бота; в) Была проверена проверка на работоспособность бота.