Как сделать бота переводчика в Телеграмме на python

Боты для телеграмма сейчас весьма популярны, давайте и мы научимся делать своих.

ЯП который мы будем использовать, как всегда Python. Напишем простого бота, который по заданной команде будет присылать нам котиков, а еще добавим кнопку, чтобы не вводить команды каждый раз. Вот рабочий пример (надеюсь к моменту твоего прочтения, я его еще буду хостить).
И итог того, что должно получиться:

Скриншот чата с ботом

Подготовка

Для начала мы будем исходить из того, что Python3 уже установлен и из командной строки прекрасно работает >_ python и >_ pip. Сидим мы из под Linux или Windows неважно.
Для работы с телеграмом будем использовать эту библиотеку, для установки необходима командная строка с правами администратора.
И ввод одной команды.

pip install python-telegram-bot —upgrade

pip install requests

Чат с BotFather

Telegram Bot переводчик на python.

Не забудем и про добавление команды

Чат с BotFather

Пишем код

В принципе, многое уже и так есть в примерах в репозитории и заново ничего придумывать не надо, мы лишь изменим и дополним то, что уже есть.
И так поехали, берем из примеров простого бота echobot2, который уже умеет отвечать на все сообщения и знает команды /help /start. Отвечалку на все сообщения мы изменим, команды тоже немного поменяем и добавим свою /cat, которая собственно и будет постить котиков :3.
Для начала подставляем ранее полученный токен, необходимый для работы.

Код инициализации бота

Смотрим дальше и видим, что все обработчики в боте (команды, текст и тд) находятся в функции main и добавляются как dp.add_handler
Как вы можете заметить, событие использования команды в чате состоит из двух частей: текст команд и функции, которая вызывается при ее использовании.

По тому же принципу добавим свою команду строкой
dp.add_handler(CommandHandler(«cat», sendcat)), где cat — это команда , sendcat — вызываемая функция при получение данной команды.

Код инициализации бота

Остальные хендлеры трогать не будем, а поменяем лишь вызываемые ими функции.
Так например по умолчанию функция echo отправляет пользователю тот же самый текст что он и прислал.

Код отправки сообщения в Telegram

Изменим отправляемый текст на сообщение об ошибке

Код отправки сообщения в Telegram

Также изменим отправляемый текст на /start и /help

Украшательства закончены. Приступим к котикам :).
Котики у нас будут состоять из двух функций. Первую вы уже видели в хендлере — sendcat, она будет отвечать за отправку, но встает вопрос, а что же нам собственно отправлять? Тут мы будем использовать вторую функцию getcat которая будет отвечает за предоставление ссылок на картинки с котиками, брать которые мы будет с сайта thecatapi. Его апи позволяет получать ссылки на случайные картинки с котами, чем мы и воспользуемся.
Подключаем библиотеку requests и пишим простенькую функцию выдающию ссылки на картинки с котиками. Потом просто вызываем ее в sendcat.

Получения ссылки python requests

Проверим что получилос. Запускаем наш скрипт, ищем в телеграмме бота по нику, который вы задали ему при создании и. Котики .

Скриншот чата с ботом

Уже неплохо, но что-то все равно не то. Мы отправляем котов не как картинки, а как ссылки, телеграм конечно их подгружает и показывает, но решение так себе. Исправим же это, открываем документацию по работе с апи телеграма для ботов и ищем метод отправки картинок.

Функция отправки изображения в Telegram

Возвращаемся обратно и в функции sendcat заменяем всю строку отправки сообщения на bot.sendPhoto(chat_id=update.message.chat_id, photo=getcat())

Функция отправки сообщения с картинкой

Скриншот чата с ботом

Почти все готово, осталось сделать кнопку в чате, чтобы не вписывать постоянно команду вручную.
Использовать мы будем Inline клавиатуру (прямо в чате которая), она состоит из двух функций: первая отвечает за отрисовку (markup), вторая за обработку нажатий (callback).
Снова идем в примеры, которые даются авторами библиотеки, вытаскиваем вот это и переделываем под себя.
Кое-что доподключаем:

Еще по теме:  Виртуальная сим карта для регистрации в Телеграм

Подключение библиотек inline keyboard

В итоге получается

Код клавиатуры inline в Telegram

Скриншот чата с ботом

Исходный код

import requests from telegram import InlineKeyboardButton, InlineKeyboardMarkup, ReplyKeyboardRemove, ReplyKeyboardMarkup, KeyboardButton from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackQueryHandler import logging # Enable logging logging.basicConfig(format=’%(asctime)s — %(name)s — %(levelname)s — %(message)s’, level=logging.INFO) logger = logging.getLogger(__name__) # Define a few command handlers. These usually take the two arguments bot and # update. Error handlers also receive the raised TelegramError object in error. def start(bot, update): «»»Приветствие»»» update.message.reply_text(‘Привет, я бот, который очень любит котиков :3nНапиши мне /cat и я поделюсь ими с тобой’) def help(bot, update): «»»Сообщение для помощи с командами»»» update.message.reply_text(‘Чтобы получить котика напиши /cat’) def echo(bot, update): «»»На любой текст отвечаем ошибкой»»» update.message.reply_text(«Неизвестная команда :(«) def error(bot, update, error): «»»Log Errors caused by Updates.»»» logger.warning(‘Update «%s» caused error «%s»‘, update, error) def getcat(): »’Получение ссылки на картинку с котиком»’ try: r = requests.get(‘http://thecatapi.com/api/images/get?format=src’) url = r.url except: url = get_cat() print(‘Error with cat parsing’) pass return url def sendcat(bot, update): «»»Отправка котиков»»» bot.sendPhoto(chat_id=update.message.chat_id, photo=getcat(), reply_markup=draw_button()) def draw_button(): keys =[[InlineKeyboardButton(‘?Еще котика. ‘, callback_data=’1’)]] return InlineKeyboardMarkup(inline_keyboard=keys) def get_callback_from_button(bot, update): query = update.callback_query username = update.effective_user.username chat_id = query.message.chat.id message_id = query.message.message_id if int(query.data) == 1: bot.sendPhoto(photo=getcat(), chat_id=chat_id, message_id=message_id, reply_markup=draw_button()) def main(): «»»Start the bot.»»» # Create the EventHandler and pass it your bot’s token. updater = Updater(«СЮДА ВАШ ТОКЕН») # Get the dispatcher to register handlers dp = updater.dispatcher dp.add_handler(CallbackQueryHandler(get_callback_from_button)) dp.add_handler(CommandHandler(«start», start)) dp.add_handler(CommandHandler(«help», help)) dp.add_handler(CommandHandler(«cat», sendcat)) # on noncommand i.e message — echo the message on Telegram dp.add_handler(MessageHandler(Filters.text, echo)) # log all errors dp.add_error_handler(error) # Start the Bot updater.start_polling() # Run the bot until you press Ctrl-C or the process receives SIGINT, # SIGTERM or SIGABRT. This should be used most of the time, since # start_polling() is non-blocking and will stop the bot gracefully. updater.idle() if __name__ == ‘__main__’: main()

F.A.Q

  • Q: Т.к бот каждый раз запрашивает картинку, а потом еще и загружает ее в мессенджер, уходит масса времени. Как ускорить выдачу ответов?
  • A: Решение — использовать сервера Telegram, как кеш. Сохраняйте при отправке фото их media_id (куда нибудь в бд), чтобы потом можно было быстренько его оттуда вытянуть и отправить.
  • Q: А как сделать ребут, админку, оформить тексты т.д ?
  • A: Здесь есть отличные сниппеты
  • Q: Как осуществить . ?
  • A: Документация Telegram bot api, Вики библиотеки

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

Как сделать бота переводчика в телеграмме на python

Бот на Python с ChatGPT 3.5 Turbo для Telegram: запоминаем контекст общения [Гайд]

Бот на Python с ChatGPT 3.5 Turbo для Telegram: запоминаем контекст общения [Гайд]

02 апреля 2023
Оценки статьи
Еще никто не оценил статью

В данной статье мы рассмотрим улучшенный способ взаимодействия с пользователями, который позволяет сохранять контекст общения. Это означает, что ChatGPT теперь может запоминать имя пользователя и их предыдущие сообщения.

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

Я с большим энтузиазмом и преданностью занимаюсь написанием статей и созданием контента, который доступен абсолютно бесплатно. Моей целью является поделиться знаниями и помочь другим, но поломка видеокарты создала трудности и затраты, которые я самостоятельно не могу покрыть.

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

Все откликнувшиеся на зов помощи будут упомянуты после выполнения целей

Как сделать бота переводчика в телеграмме на python

Как создать бота в Telegram на Python? Бот для общения, заработка и продаж.

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

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

Но согласитесь, все эти мракобесные виды заработка весьма далеки от созидательной деятельности, к которой привык любой мало-мальски интеллектуальный ITшник с IQ выше сотки.

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

Именно поэтому, сегодня, я расскажу вам о том, как быстро и без лишних головняков в виде знания программирования можно создать рабочего Telegram-бота на Python.

Такого бота запросто можно продать на фрилансе и получить за это 50, а в случае особо жирного заказа от какого-нибудь интернет-магазина и все 150 долларов, как с куста.

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

Регистрация на Sprintbox

Для того, чтобы создать бота я буду использовать высокоскоростную виртуальную машину на внешнем сервере от Sprintbox. Если в вкратце, то спринтбокс – это мощные VDS-сервера. Так называемые боксы.

Их можно настроить, как вам угодно. Установить готовый популярный дистрибутив выбрав его инсталляшку из вариантов в панели управления сервиса.

Либо же накатить собственную операционную систему вручную. Можно установить сервер в игре майнкрафт, задеплоить любые типы ботов. Дискорд, VK и, разумеется, Telegram. Куда ж без него.

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

kak sozdat bota v telegram na python 01

Перед нами та самая панель управления, в которой нам сходу предлагают поставить дистрибутив.

kak sozdat bota v telegram na python 02

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

kak sozdat bota v telegram na python 03

Мне пока что бэкапить нечего, поэтому давайте создадим бокс и установим в него образ Ubuntu.

kak sozdat bota v telegram na python 04

Выбираем из списка тариф. Обращаю ваше внимание, что несмотря на то, что оплата указывается за месяц, запустить бокс вы сможете даже если на вашем счету будет всего 100 рублей.

kak sozdat bota v telegram na python 05

После того, как закините сотку на счёт, можно запустить созданный бокс посредством VNC веб-клиента не выходя из панели.

kak sozdat bota v telegram na python 06

Настройка виртуального стенда

Первым делом, зайдём под рутом используя те данные, которые пришли нам на почту и поменяем пароль от данного пользователя на своей собственный. Акцентирую внимание новичков на том, что в Linux-системах пароль не отображается на экране, но при этом вводится. Так что не пугайтесь, что вместо набираемого пароля в командной строке вы видите пустоту.

kak sozdat bota v telegram na python 07

После того, как пассворд рута успешно поменян, самое время проверить, не появились ли актуальные обновы для нашей убунты. Вводим apt-get update с ключом yes и дожидаемся завершения операции.

kak sozdat bota v telegram na python 08

Затем делаем apt-upgrade с тем же параметром.

kak sozdat bota v telegram na python 09

Как вы знаете, работать под суперпользователем root очень небезопасно. А у нас тут вроде как канал, топящий за безопасность везде и во всём. Поэтому давайте создадим отдельного пользователя в нашей системе. Вводим adduser bot. И задаём для него безопасный пароль.

kak sozdat bota v telegram na python 10

После ввода пароля система предлагает заполнить информацию о новом пользователе. Все поля, кроме пароля, не обязательны. Жмякаем Enter для подстановки значений по умолчанию.

kak sozdat bota v telegram na python 11

Подготовка окружения

Далее, давайте установим менеджер пакетов pip. В дальнейшем он пригодится для загрузки библиотек для питона. Вводим apt install python3-pip.

kak sozdat bota v telegram na python 12

И дождавшись завершения операции завершаем сеанс пользователя root командой logout

kak sozdat bota v telegram na python 13

Логинимся под созданным ранее пользователем Bot. И приступаем к созданию виртуального окружения. Это нужно для того, чтобы устанавливать дополнительные модули для разных проектов и избегать появляющихся конфликтов.

Еще по теме:  Как можно назвать канал в ТГ смешно

kak sozdat bota v telegram na python 14

Вводим команду pip3 install virtualenv —user. Ключ —user установит модуль локально для нашего пользователя bot.

kak sozdat bota v telegram na python 15

Далее нужно добавить виртуальное окружение в системные пути пользователя.

kak sozdat bota v telegram na python 16

Создаём новое окружение введя соответствующую команду. Ключ —system-site-packages задействует внутри окружения модули, ранее установленные в системе, а python – представляет собой произвольное имя нового виртуального окружения.

kak sozdat bota v telegram na python 17

Давайте его активируем.

kak sozdat bota v telegram na python 18

А затем установим модули, которые нам потребуются для запуска бота. В первую очередь это конечно же pyTelegramBotAPI.

kak sozdat bota v telegram na python 19

Регистрация бота

kak sozdat bota v telegram na python 20

После того, как «папа» вежливо спросит, как будет называться ваш бот и какое имя необходимо указать пользователю, вам будет выдан уникальный токен для API.

kak sozdat bota v telegram na python 21

Создание бота в Telegram на Python

Окружение подготовлено, бот зарегистрирован, а значит можно начинать кодить, попутно теребонькая маленького питончика. Лёгким движением создаём директорию для хранения файлов проекта.

kak sozdat bota v telegram na python 22

Внутри неё создаём конфигурационный файл, в котором будут храниться данные нашего поистине масштабнейшего проекта.

kak sozdat bota v telegram na python 23

Добавляем в файл токен и сохраняем внесённые изменения.

kak sozdat bota v telegram na python 24

Гуд. Далее в том же каталоге создаём файл самого бота.

kak sozdat bota v telegram na python 25

И применяя навыки мамкиного программера тихим сапом начинаем набивать гавно-код. Сначала активируем виртуальное окружение, которым будет пользоваться бот.

kak sozdat bota v telegram na python 26

Затем даём команду на импорт нужных библиотек и настроек из config.py.

kak sozdat bota v telegram na python 27

kak sozdat bota v telegram na python 28

Даём ему возможность отвечать на стандартную команду /start.

kak sozdat bota v telegram na python 29

А эта часть кода позволит боту повторять тексты всех отправленных ему сообщений. Так называемый попугай.

kak sozdat bota v telegram na python 30

Добавим строчку отвечающую за постоянную обработку информации, приходящей с серверов Telegram.

kak sozdat bota v telegram na python 31

И можно в принципе сохранять изменения. Окей. Запускаем файл с ботом.

kak sozdat bota v telegram na python 32

И пробуем обратиться к нему в телеге командой /start. Бот отвечает нам бодрейшим приветствием.

kak sozdat bota v telegram na python 33

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

kak sozdat bota v telegram na python 34

В данном примере, мы запустили бота прямым вызовом интерпретатора Python в консоли. Поэтому очевидно, что работать он будет, только пока активна сессия SSH.

Однако, можно запустить его в tmux или screen и автоматизировать мониторинг работы с помощью системных демонов Linux. Более подробно про эту движуху вы можете почитать в базе знаний спринтбокса.

Ведь именно на основе здешней инструкции «Создание telegram-ботов на Python» и был подготовлен весь сегодняшний материал. Однако, я сознательно утаил пару последних строчек, чтобы вы имели возможность самостоятельно поработать с интересными мануалами.

Если же вдруг вы не справитесь, то всегда можно обратиться в техническую поддержку сервиса. Сотрудники незамедлительно вам ответят и постараются решить все проблемы в максимально короткие сроки.

Само-собой это не самый совершенный бот из всех существующих. Да и я не профессиональный программер, занимающийся исключительно ботами в телеграмме.

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

Ну вот скажите, могли бы вы подумать, ещё каких-то 2-3 года назад, что за пару сотен рублей можно поднять действительно мощный внешний сервак с возможностью безопасного подключения и управлением через телегу?

Да-да, вы сейчас не ослышались. Боксами также можно легко управлять посредством удобно-настроенного одноимённого бота Спринтхост. Мега удобная тема. Особенно для тех, кто админя кучу проектов вынужден вечно мотаться в командировки.

Посмотреть статус, ребутнуть и даже отрубить тачку в случае критичного инцидента, можно буквально в несколько кликов с мобилы. А если вы ещё заюзаете мой промокод, то непременно получите 50% кэшбек при первом пополнении счёта.

Так что, ребятки, не тупим. Сворачиваем этот унылый видос и идём создавать рабочий бот для общения, заработка или продаж на базе VDS от Спринтбокса прямо сейчас.

Главное про бэкапы и снапшоты не забывайте. А то будете потом, как я, по 300 раз одну и ту же портянку из кода вбивать. Ладненько. До новых встреч, мои кайфные друже. Всем пока.

Источник: kurets.ru

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