У меня есть бот-переводчик в группе телеграмм. Он переводит все сообщения, которые вводит каждый член группы.
Но иногда это раздражает, когда загружается множество текстов, поэтому я хочу сделать паузу на некоторое время и перезапустить, набрав какой-то порядок, например
Как вы думаете, это будет возможно сделать? мне нужны подсказки
text=update.message.text.lower() def handler(update, context): if «/start» in text: try: if text_src==lang_type[0]: a = ‘ko : ‘ + translator.translate(user_text, dest=lang_type[0]).text + ‘n’ + ‘en : ‘ + translator.translate(user_text, dest=lang_type[1]).text + ‘n’ + ‘es : ‘ +translator.translate(user_text, dest=lang_type[2]).text telegram.Bot(TelegramToken).send_message(user_id, reply_to_message_id=update.message.message_id, text=a) # telegram.Bot(TelegramToken).send_message(user_id,translator.translate(user_text, dest=lang_type[2]).text) # telegram.Bot(TelegramToken).send_message(user_id,translator.translate(user_text, dest=lang_type[3]).text) elif text_src==lang_type[1]: b = ‘en : ‘ + translator.translate(user_text, dest=lang_type[1]).text + ‘n’ + ‘ko : ‘ + translator.translate(user_text, dest=lang_type[0]).text + ‘n’ + ‘es : ‘ + translator.translate(user_text, dest=lang_type[2]).text telegram.Bot(TelegramToken).send_message(user_id, reply_to_message_id=update.message.message_id, text=b) # telegram.Bot(TelegramToken).send_message(user_id,translator.translate(user_text, dest=lang_type[2]).text) # telegram.Bot(TelegramToken).send_message(user_id,translator.translate(user_text, dest=lang_type[3]).text) elif text_src==lang_type[2]: c = ‘es : ‘ + translator.translate(user_text, dest=lang_type[2]).text + ‘n’ + ‘ko : ‘ + translator.translate(user_text, dest=lang_type[0]).text + ‘n’ + ‘en : ‘ + translator.translate(user_text, dest=lang_type[1]).text telegram.Bot(TelegramToken).send_message(user_id, reply_to_message_id=update.message.message_id, text=c) # telegram.Bot(TelegramToken).send_message(user_id,translator.translate(user_text, dest=lang_type[1]).text) # telegram.Bot(TelegramToken).send_message(user_id,translator.translate(user_text, dest=lang_type[3]).text) except: pass if «/end» in text: pass
Я не думаю, что это сработает, и на самом деле не работает. Буду признателен, если вы исправите некоторые
/strat — запускает Telegram бота каждый раз! Обновление в BotHelp
hyunseo 2 Мар 2022 в 02:58
Что такое text ? Почему вы проверяете «/start» в text ? Вам лучше установить некоторую переменную global , т.е. paused = False — и используйте команду /start для установки paused = True и /end для установки paused = False . И другие команды должны выполняться в if not paused: .
2 Мар 2022 в 03:31
Извините, но можете ли вы уточнить свое объяснение по коду, ответив на вопрос? Я не легко понимаю, что вы имеете в виду под этим извините
2 Мар 2022 в 04:35
1 ответ
Лучший ответ
Вы можете использовать глобальную переменную, чтобы контролировать, когда она может переводить, а когда нет, т. е. paused . И используйте сообщение /start , чтобы установить его False , и /end , чтобы установить его True .
+++Как перезапустить бота в Telegram.
Непроверенный код. Я не уверен, что модуль выполняется в одном потоке
(многопроцессорная обработка должна хранить его в файле или базе данных).
Код также должен проверять идентификатор пользователя, чтобы это мог сделать только администратор.
paused = False # created outside functions def handler(update, context): global paused # inform function to use external variable instead of local variable text = update.message.text.lower().strip() if text == ‘/start’: paused = False return if text == ‘/end’: paused = True return if not paused: try: if text_src==lang_type[0]: a = ‘ko : ‘ + translator.translate(user_text, dest=lang_type[0]).text + ‘n’ + ‘en : ‘ + translator.translate(user_text, dest=lang_type[1]).text + ‘n’ + ‘es : ‘ +translator.translate(user_text, dest=lang_type[2]).text telegram.Bot(TelegramToken).send_message(user_id, reply_to_message_id=update.message.message_id, text=a) # telegram.Bot(TelegramToken).send_message(user_id,translator.translate(user_text, dest=lang_type[2]).text) # telegram.Bot(TelegramToken).send_message(user_id,translator.translate(user_text, dest=lang_type[3]).text) elif text_src==lang_type[1]: b = ‘en : ‘ + translator.translate(user_text, dest=lang_type[1]).text + ‘n’ + ‘ko : ‘ + translator.translate(user_text, dest=lang_type[0]).text + ‘n’ + ‘es : ‘ + translator.translate(user_text, dest=lang_type[2]).text telegram.Bot(TelegramToken).send_message(user_id, reply_to_message_id=update.message.message_id, text=b) # telegram.Bot(TelegramToken).send_message(user_id,translator.translate(user_text, dest=lang_type[2]).text) # telegram.Bot(TelegramToken).send_message(user_id,translator.translate(user_text, dest=lang_type[3]).text) elif text_src==lang_type[2]: c = ‘es : ‘ + translator.translate(user_text, dest=lang_type[2]).text + ‘n’ + ‘ko : ‘ + translator.translate(user_text, dest=lang_type[0]).text + ‘n’ + ‘en : ‘ + translator.translate(user_text, dest=lang_type[1]).text telegram.Bot(TelegramToken).send_message(user_id, reply_to_message_id=update.message.message_id, text=c) # telegram.Bot(TelegramToken).send_message(user_id,translator.translate(user_text, dest=lang_type[1]).text) # telegram.Bot(TelegramToken).send_message(user_id,translator.translate(user_text, dest=lang_type[3]).text) except Exception as ex: print(‘Exception:’, ex)
Источник: question-it.com
Создаем бота в BotFather: инструкция, команды, настройки
BotFather – «бот над всеми ботами» в Телеграмме. БотФазер представляет собой интерфейс доступа к API (Application Programming Interface) мессенджера Telegram. С помощью BotFather вы можете создавать ботов и управлять существующими.
Что такое бот в Телеграмме и чем отличается от обычного пользователя?
- Для создания бота не нужен номер телефона (с декабря 2022 Телеграмм убрал это требование и для обычных юзеров).
- Нет статуса «онлайн» или «последний визит». Вместо этого прописывается «бот».
- Bot не может сам начать общение с пользователем. Но юзеры могут вызвать его в чате.
- Имя пользователя должно заканчиваться на «bot».
- У ботов в Телеграмме ограниченное облачное хранилище (cloud storage), поэтому старые сообщения удаляются после их обработки.
В официальной документации Телеграмма указано, что пользователи и разработчики создали более 10 млн ботов.
Варианты использования разные: интеграция с другими сервисами (1С, умный дом, сайт), перевод текстов, напоминания, опросы, отображение погоды, расчет курсов валют и многое другое.
Как создать бота для Телеграма через BotFather: инструкция и пошаговые действия
Чтобы сделать бота в Telegram без кода и навыков программирования, необходимо:
В диалоговом окне указываем команду /start, чтобы запустить сервис. Система показывает доступные команды (редактирование бота, настройки, игры). Вписываем /newbot, чтобы запустить процесс создания.
Система просит указать название (к примеру, в нашем случае ChatLabs_bot). После этого необходимо вписать username – BotFather сразу предупреждает, что юзернейм бота должен заканчиваться на слово bot. Вписываем ChatLabs_bot.
В случае успеха видим сообщение о том, что наш бот для Телеграмма создан и готов к работе.
На этом этапе вы получаете токен для доступа к HTTP API Telegram. Не передавайте token третьим лицам.
Все! Вы создали бота для Телеграма при помощи БотФазера. В информационном сообщении найдете ссылку на него (в нашем примере это t.me/ChatLabs_bot).
Если перейти по урлу, увидите бота.
Чтобы начать работу с ним, нажмите «Старт».
Создать бота в Телеграме самостоятельно и без навыков программирования можно. Но если вы хотите добавить кастомные функции (вывод погоды, показ курса валют, близлежащих заведений и так далее), то необходимо написать код. К примеру, мы в ChatLabs используем Python и реализуем для заказчиков проекты любой сложности.
Создавали бота доставки еды (интеграция с iiko, прием оплат, уведомление пользователя о статусе заказа), бота для дилера напольных покрытий (добавление партнеров через 1С, просмотр остатков на складе, поиск аналогов, работа с корзиной), чат-бота для службы такси (заказ авто на определенное время, заявки на работу для водителей и другие). Предлагаем посмотреть примеры решений для интернет-магазина, стартапа, мероприятия.
Чтобы посмотреть список ваших ботов, просто задайте команду /mybots. В диалоговом окне увидите названия.
Команды BotFather: редактирование и удаление ботов в 2023 году в 1 клик
Выше мы уже разобрали 2 основные команды БотФазера:
- /newbot – создание нового бота;
- /mybots [beta] – получение списка существующих.
Редактирование ботов осуществляется командами:
- /setname – выбрать имя (или изменить его). Это то, что будет отображаться в диалоговом окне.
- /setabouttext – добавить приветствие. Это тот текст, который будет видеть пользователь до того, как нажмет на «START» для запуска.
- /setdescription – указать описание (если нужно). Дескрипшен будет виден в профиле. Как правило, в описании перечисляют, как работает бот, для чего создан, какие правила.
- /setuserpic – установить фото / аватар. Обратите внимание, что есть 2 вида: ботпикча и дескрипшен-пикча. Первый используется как аватар. Второй появляется в блоке What can this bot do. В качестве дескрипшен-фото принимаются и GIF (требования к разрешению фото – 640×360, ограничения по гифкам – 320×180, 640×360 or 960×540).
- /setcommands – установить список команд, которые будут доступны для использования. Система просит прописать их в формате «command1 — Description» (т.е. «команда – описание»). На практике это выглядит как Buy – купить, Order – заказать.
- /deletebot – удалить бота. Сделать это в 1 клик не получится. Система получает команду, затем просит вас еще раз подтвердить действие. Только после этого удаляет.
Управление настройками осуществляется при помощи команд BotFather. Интерфейс интуитивно понятный.
Настройки BotFather: токен, платежи, управление группами, передача прав и другие
Вы можете задать команду /mybots, выбрать нужного и использовать кнопки управления.
API token в Телеграм от BotFather: как получить и сгенерировать новый
Чтобы увидеть токен для доступа к API Telegram, кликаем на «API token». Система автоматически покажет уникальную комбинацию из букв, цифр, знаков препинания.
Если старый токен попал в руки мошенников или был утерян, используйте команду «Revoke current token».
Bot Settings в Telegram от BotFather: добавление в группы, права админа, privacy mode и другие
В каждой из вкладок находятся дополнительные настройки.
- «Allow Groups?» – можно или нельзя добавлять бота в группы.
- «Group Privacy» – активирует или деактивирует режим конфиденциальности «Privacy mode».
- «Group Admin Rights» – какие права у администратора (добавлять новых администраторов, приглашать новых пользователей, удалять сообщения, банить / разбанить юзеров, управлять голосовыми, а также другие).
- «Channel Admin Rights» – аналогично предыдущему, но касается прав администратора канала.
- «Domain» – привязать веб-сайт, чтобы использовать виджет входа в Telegram.
- «Payment» – список доступных платежных систем для вашего бота (Юкасса, Сбербанк, PayMega, CasCad, iPay88, Робокасса и другие). Доступно более 15 методов проведения платежей для 200+ стран мира.
Чтобы передать Телеграмм-бота другому лицу, используйте «Transfer ownership». В новом окне необходимо будет указать логин рецепиента – того, кому передаете бота.
Что такое Inline mode (инлайн мод) в ботах Телеграмм?
Режим встроенных запросов для взаимодействия с ботом.
Классический вариант – команды через кнопки или ввод /mybots и тому подобных.
Чтобы активировать опцию, задаем команду БотФазеру /setinline. Дальше указываем текст-заполнитель, который будет показываться в поле ввода после указания имени бота.
Inline mode в Telegram поддерживает 20+ типов контента, среди которых:
Вот как это выглядит в Телеграмме:
Как сделать игру в Телеграмм: кнопки BotFather и настройки развлечений
Настройки БотФазера позволяют создавать HTML5-игры, а затем предлагать их в группе или приватных чатах. Типичные примеры – викторины, шашки и шахматы, а также другие. Список команд BotFather, которые используются для создания, редактирования, просмотра и удаления игр.
Созданную игру можно отправлять как обычное сообщение или при помощи инлайн-режима (с кнопкой для старта). Когда пользователь нажимает на запуск игры, бот получает callback с информацией о выбранном развлечении. Дальше система отвечает юзеру ссылкой. Игра открывается во встроенном браузере.
Теперь вы знаете основные кнопки BotFather и настройки для управления ботами. Чтобы наш ChatLabs_bot заработал полноценно, необходимо взаимодействовать с Telegram Bot API и писать код.
Забирай бесплатный чек-лист
«ТОП-10 ошибок
при создании Чат-бота»
Источник: chatlabs.ru