如何停止和重启电报机器人
How to stop and restart telegram bot
我在电报群里有一个翻译机器人。它翻译组中每个成员键入的所有消息。
但有时上传大量文本会很烦人,所以我想暂停一段时间,然后输入一些命令重新开始,例如
/开始
/结束
你觉得有可能吗?我想要一些提示
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
我认为这行不通,实际上行不通。如果您修复一些问题,我将不胜感激
干杯!
您可以使用全局变量来控制何时可以翻译以及何时不能翻译 - 即 paused
。并使用消息 /start
将其设置为 False
,并使用 /end
将其设置为 True
.
未测试代码 - 我不确定模块是否在一个线程中全部运行
(多处理需要将其保存在文件或数据库中)。
代码还需要检查用户 ID,因此只有管理员可以执行此操作。
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)
我在电报群里有一个翻译机器人。它翻译组中每个成员键入的所有消息。
但有时上传大量文本会很烦人,所以我想暂停一段时间,然后输入一些命令重新开始,例如
/开始 /结束
你觉得有可能吗?我想要一些提示
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
我认为这行不通,实际上行不通。如果您修复一些问题,我将不胜感激
干杯!
您可以使用全局变量来控制何时可以翻译以及何时不能翻译 - 即 paused
。并使用消息 /start
将其设置为 False
,并使用 /end
将其设置为 True
.
未测试代码 - 我不确定模块是否在一个线程中全部运行
(多处理需要将其保存在文件或数据库中)。
代码还需要检查用户 ID,因此只有管理员可以执行此操作。
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)