gpt4 book ai didi

python - 如何停止和重启 Telegram Bot

转载 作者:行者123 更新时间:2023-12-05 04:33:51 31 4
gpt4 key购买 nike

我在 Telegram 群里有一个翻译机器人。它翻译组中每个成员键入的所有消息。

但有时上传大量文本时会很烦人,所以我想暂停一段时间,然后通过键入一些命令重新开始

/开始/结束

您认为这有可能吗?我想要一些提示

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)

关于python - 如何停止和重启 Telegram Bot ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71315968/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com