Где редактировать код Телеграм бота

Во второй части серии статей по написанию телеграм бота на python, мы добавим функциональность. Бот будет приветствовать новых юзеров, предлагать выбрать и сохранять лиги. Добавим возможность получить результаты по выбранным лигам.

«Рыба» кода бота

Сразу запишем функции в «bot.py», которые понадобятся. Предварительно удалите test_message :

Это не окончательная версия, я мог что-то упустить. В процессе добавим недостающие.

Каждая функция обернута декоратором, так мы общаемся с Телегармом:

Итак. Пользователь нажимает команду старт, получает приветственное сообщение. В нем мы предлагаем выбрать 3 лиги и мониторить результаты по ним. Получить результаты можно командой или кнопкой меню. Так же мы даем возможность изменить выбранные соревнования или удалить свои данные из бота.

Добавление команд в бота

Изначально команды не настроены. Пользователи могут вводить их, но специально меню нет. Для добавления нужно снова написать https://t.me/botfather команду /setcommands . Выберите своего бота и добавьте этот текст:

Telegram Bot на Python / Создания ботов для начинающих за 30 минут


start — Запуск и перезапуск бота
help — Возможности бота
online — Результаты матчей

В ответ получите «Success! Command list updated. /help». Теперь можно перейти в своего бота и проверить:

 Добавление команд в бота

Ответы на команды

Взаимодействие с ботом начинается с команды /start . Нужно поприветствовать и предложить следующий шаг. Эта команда будет возвращать текст с клавиатурой. Точно так же работает и /help .

Добавим обработку этих команд в «bot.py», обновите start_handler help_handler :

Я добавил импорт import app.service as s . В этом модуле клавиатура и функция проверки пользователя. start_handler проверяет есть ли пользователь в кеше или базе данных, и отправляет ему соответствующий текст.

Перед отправкой текста для выбора лиг, я сохранил его будущий id. Получил номер последнего сообщения (это сама команда «start») и добавил 2 пункта: +1 за наш ответ на команду и +1 за само сообщения выбора лиг. Зная id сообщения, его можно редактирвать.

Теперь напишем клавиатуру и get_league_ids в модуль «service».

# fonlinebot/app/service.py from aiogram.types import ReplyKeyboardMarkup, KeyboardButton, InlineKeyboardMarkup, InlineKeyboardButton from emoji import emojize from config import BOT_LEAGUES, BOT_LEAGUE_FLAGS from database import cache, database as db from app.dialogs import msg MAIN_KB = ReplyKeyboardMarkup( resize_keyboard=True, one_time_keyboard=True ).row( KeyboardButton(msg.btn_online), KeyboardButton(msg.btn_config) ) async def get_league_ids(user_id: str) -> list: «»»Функция получает id лиг пользователя в базе данных»»» leagues = cache.lrange(f»u», 0, -1) if leagues is None: leagues = await db.select_users(user_id) if leagues is not None: leagues = leagues.split(‘,’) [cache.lpush(f»u», lg_id) for lg_id in leagues] else: return [] return leagues

Еще по теме:  Увидят ли мою геопозицию если я посмотрю чужую в Телеграмм

Ответы на команды

MAIN_KB — основная клавиатура, как на скриншоте выше. Разберем подробнее:

  • ReplyKeyboardMarkup — объект, который создает клавиатуру.
  • Параметр resize_keyboard=True уменьшает ее размер.
  • А с one_time_keyboard=True клавиатура будет скрываться, после использования.
  • .row — метод для группировки кнопок в строку.
  • KeyboardButton(msg.btn_online) и KeyboardButton(msg.btn_config) — кнопки с заданным текстом.

Осталось только добавить текста сообщений в dialogs. Вставьте этот код в класс Messages .

# fonlinebot/app/dialogs.py # . start_new_user: str = «Привет. Я могу сообщать тебе результаты матчей online.» start_current_user: str = «Привет. С возвращением! » «Используй команды или меню внизу для продолжения.» help: str = «»» Этот бот получает результаты матчей за последние 48 часов. Включая режим LIVE. — Что бы выбрать/изменить лиги нажмите «Настройки». — Для проверки результатов нажмите «Онлайн». Бот создан в учебных целях, для сайта pythonru.com «»»

Выбор, изменение и удаление лиг

Сначала внесем правки в наши вспомогательные модули.

В «dababase» в класс Database добавим новый метод insert_or_update_users .

# fonlinebot/database.py #. async def insert_or_update_users(self, user_id: int, leagues: str): user_leagues = await self.select_users(user_id) if user_leagues is not None: await self.update_users(user_id, leagues) else: await self.insert_users(user_id, leagues) #.

В настройки добавим переменные метрик времени:

Источник: pythonru.com

Как создать Бот в телеграм telegram bot

Для того чтобы общаться с Телеграм с помощью ESP вам будет нужен бот.
Бот – это приложение внутри Телеграм, с которым могут работать пользователи, отправляя им команды или запросы и получая в ответ информацию, например от многочисленных датчиков.

Теперь давайте создадим своего бота.
Я буду показывать как создать бота на компьютере, так как это проще снять на видео, но вы можете создать бота используя свой телефон. Разницы никакой нет.

Для того что бы создать своего бота, нужно сначала открыть бота под названием botfather. Если вы ещё ни разу не создавали бот, то вам надо найти botfather. Набираем его имя в поисковой строке и заходим в этот бот.

Получаем приветственное сообщение от родителя всех ботов. Нажимаем на ссылку бота и видим страницу с информацией. Здесь написано, что botfather является ботом для создания новых ботов. Нажимаем открыть канал, и снова заходим в botfather. Видим что перед нами открылась страница с информацией и ссылками на создание нового бота, редактирование его и добавлением текстов в описание, смены фотографии в профиле и ещё много другой полезной информации.
Это основная страница botfather и мы к ней ещё не раз будем обращаться. Дальше я покажу как ещё можно попасть на эту страницу, а не прокручивать огромные тексты.

Это свободный перевод всех команд которые на предоставляет botfather. Я знаю, что и без перевода понятно что эти команды делают, но вдруг кому-то понадобится.

Еще по теме:  Как написать анонимку в ТГ

Теперь давайте создадим новый бот. Нажимаем на ссылку newbot и нам выводится текст с указаниями, что надо выбрать для нового бота имени. Имя может быть на русском языке.
Так как я создаю этого бота для пример работы с платой ESP то так и назову бота ESP. Теперь надо создать уникальное имя бота. Так как это имя будет являться и ссылкой на бота, то оно должно быть на занятым другими пользователями словом bot.
Этот бот будет использоваться в примере с отправкой фотографии с камеры установленной на плате ESP32 Cam, но такое имя уже занято. После долгого подбора я всё же нашёл не занятое имя.
Бот будет называться ESP32 Cam_HC501_bot.

Вот приблизительный перевод этого текста. Если коротко, то ваш бот находится вот по этому адресу и на него попасть можно не только из телеграм, но и из обычного браузера.
А ещё здесь указан токен, который пригодится нам для дальнейшего использования в скетчах. Можете скопировать его, или потом набрав в мессенджере телеграм команду бот можете взять его отсюда.

Следующая команда – это mybots, Этой командой можно вывести все боты, что у вас есть, и отредактировать их. У меня два бота, выберем сегодняшний. Перед вами откроются кнопки для редактирования. Нажав API TOKEN вам покажут информацию о названии бота со ссылкой на него. Ссылка- это адрес на этот бот и токен этого бота. Нажимаем вернуться назад.
Теперь выберем Редактировать бот. Ва показывают всю информацию по этому боту. И какие поля уже заполнены. У меня заполнены все поля. Это Имя, Описание, О компании. Установлена картинка аватар, и создана 1 команда. А вот так выглядит мой второй бот. Там кроме имени ничего не заполнено.
Как можно заметить у нас теперь появился новый набор кнопок. Нажав на любую из них вы можете отредактировать это поле. Например нажав на Edit About вы можете добавить или изменить информацию О компании, просто написав новый текст и нажав отправить.

Тоже самое можно сделать с фото-аватаром. Нажав на EDIT BOTPIC вы можете перетащить картинку и ваш логотип изменится. Как это работает я покажу дальше. Теперь выходим отсюда и продолжаем дальше.
Чтобы не мешало, я очистил история бота, и теперь нас ничего не отвлекает.
Помните, я вначале говорил, что можно управлять ботом проще, не прокручивая постоянно кучу текста, так вот, по другому это можно сделать нажав на эту кнопку.
Здесь те же команды, но они у вас всегда под рукой. И для их выполнения вам надо просто выбрать нужную. Например выберем команду my bots. И у нас подгрузились все мои боты. Их 2. Один из сегодняшнего урока, — а один из предыдущих примеров. Нажав на любой из них, вы перейдёте к управлению этим ботом.

Еще по теме:  Как защитить видео от копирования в Телеграм

Выбрав команду токен, вам покажут ваш токен. Так как у меня 2 бота, то сначала я должен выбрать с каким ботом я буду работать. Вы можете скопировать текущий токен и вставить в нужное место.
Давайте теперь изменим имя бота, а то в начале я назвал его не очень хорошо, исправим это.
Нажав setname и выбрав нужный бот введём новое имя. Так как этот бот будет получать фотографии при обнаружении движения, то так и назовём Фотография при движении. Нажимаем отправить и переходим в бот. При этом он обновляется и мы видим, что имя сменилось.

Теперь заменим логотип бота на свою картинку. Для лучшего восприятия картинка должна быть квадратная или круглая, тогда она займёт всё возможное пространство. Я подготовил картинку и сейчас её загружу. Нажимаем setuserpic, открываем в проводнике папку с картинкой и просто перетаскиваем изображение и нажимаем отправить.
Переходим в бот, тем самым обновляя его и видим, что у нас сменилась иконка бота на только что загруженную.

Теперь поработаем с описанием бота. Описание – это текст который будет загружаться при переходе пользователя в бот. Здесь вы можете указать информацию про бот. Для чего он был создан и что делает. Это поможет подписчикам понять что они могут здесь найти. При очистке истории, все команды удалятся, а описание останется.
Ещё один очень полезный блок текста это текст о Компании — setabouttext В этом тексте вы можете рассказать про себя и для чего этот бот, сделать ссылку на бот и на канал. Текст имеет ограничение 120 символов.
Давайте для примера введём текст больше 120 символов, и получим ошибку. Теперь уменьшим текст и снова попробуем загрузить блок о компании, как видите теперь всё прошло без ошибок и текст о компании загрузился в бот. Это можно увидеть в профиле бота.

Я показал лишь часть возможностей бота. Хотелось конечно показать больше, но видео про создание канала в Телеграм набрало совсем мало просмотров, даже меньше прожиточного минимума, поэтому я думаю, что эта тема не интересна на моём канале, поэтому окончание видео получилось какое-то скомканное.

Источник: arduino-kid.ru

Controllerbot: полная инструкция по работе с ботом

Controllerbot — один из самых полезных инструментов для администраторов каналов в Telegram. С его помощью можно смотреть отчеты, планировать записи, форматировать текст, добавлять inline-кнопки и реакции в сообщения.

Рейтинг
( Пока оценок нет )
Загрузка ...