Как остановить и перезапустить телеграмм бота
У меня есть бот-переводчик в группе телеграмм. Он переводит все сообщения, которые вводит каждый член группы.
Но иногда это раздражает, когда загружается множество текстов, поэтому я хочу сделать паузу на некоторое время и перезапустить, набрав какой-то порядок, например
Как вы думаете, это будет возможно сделать? мне нужны подсказки
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
Я не думаю, что это сработает, и на самом деле не работает. Буду признателен, если вы исправите некоторые
Что такое text ? Почему вы проверяете «/start» в text ? Вам лучше установить некоторую переменную global , т.е. paused = False — и используйте команду /start для установки paused = True и /end для установки paused = False . И другие команды должны выполняться в if not paused: .
Извините, но можете ли вы уточнить свое объяснение по коду, ответив на вопрос? Я не легко понимаю, что вы имеете в виду под этим извините
1 ответ
Вы можете использовать глобальную переменную, чтобы контролировать, когда она может переводить, а когда нет, т. е. paused . И используйте сообщение /start , чтобы установить его False , и /end , чтобы установить его True .
Непроверенный код. Я не уверен, что модуль выполняется в одном потоке
(многопроцессорная обработка должна хранить его в файле или базе данных).
Код также должен проверять идентификатор пользователя, чтобы это мог сделать только администратор.
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)
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Question: How to shutdown properly? #801
Question: How to shutdown properly? #801
Comments
I really fear to bring up a question that was answered 1000 times now but since i searched the issues and didn’t find anything related, examples didn’t include anything relevant and i didn’t get a satisfying answer in the telegram group, i have to ask:
How to shutdown the bot without executing another script with
os.execl(os.dirname(__file__) + ‘/shutdown.py’, ‘—‘) ?
Is this really the only way to shutdown? Seems weird (in my case) to create an empty script that is just there to server the purpose to shutdown. I don’t want to dump anything on exit. I would really just like to shutdown cleanly and easily. I can’t imagine that this is such a huge problem.
EDIT: Well, not even the provided example works. I didn’t test it before because it’s not an option for me
The text was updated successfully, but these errors were encountered:
Запуск и остановка бота
Доброго времени суток знатоки!
Пишу потихоньку бота для телеграмм на Python
И задался вопросом где его и как запустить и как потом остановить?
Есть файл с кодом bot.py есть удаленный рабочий стол на виндовс, есть личное облако на основе synology D920.
Есть хостинг для сайта. (Наверно лучший вариант).
Как запустить бота и как его потом остановить в случае если потребуются правки.
Запуск бота в Docker
Всем привет! Не уверен что создаю тему по адресу, но конкретно пj Docker раздела не нашел. На.
Запуск телеграм бота на маке
Написали бота на винде, все прекрасно работает, поставили на мак, выдает ошибку подключения к.
Запуск бота через cmd
Прописываются запуск файла py code.py и cmd зависает что делать? Может чего то не хватает ?
Остановка Бота в телеграм через python
Не могу понять как остановить бота в телеграм, У меня есть main.js от туда я его запускаю с.
Нужна пауза в работе бота, остановка считывания данных на время
Вопрос такой: Есть твич-бот которрый отвечает на сообщения или вызовы команд в чате. Нужно чтобы.
.py запуск/остановка в терминале
Добрый день. Ребят, подскажите вот какой момент. Имеется .py файл, в нем будут выполняться 3.
Запуск и остановка по кнопке
Задача у меня такая,реализовать активацию лед лампочек по кнопке и по второй кнопке.
Остановка и запуск цикла
Здравствуйте. На форме есть объект, который перемещается по сцене, ускоряется и ест, при.
Запуск и остановка потока
Всем привет! private void btnRotate_Click(object sender, EventArgs e) < Thread thread.
Остановка/запуск процесса
Всем привет,появились трудности,поэтому нужна ваша помощь.Нужно на долю секунды сначала остановить.