【问题标题】:The telegram bot does not work for Persian messages电报机器人不适用于波斯语消息
【发布时间】:2017-08-14 11:36:21
【问题描述】:

我用 python-telegram-bot 创建了一个电报机器人。我想在向群组发送消息后将消息发布到群组,机器人检查消息,如果 mlist 中的单词在消息中,则bot 会删除消息,但是如果消息是波斯语的,bot 不会删除它,但是如果消息是拉丁文,bot 会删除它。查看 mlist 中的消息,当 bot 向组发送 Hello ,它会删除它,但是当 سلام 发送到组时它不会删除机器人。

# -*- coding: cp1256 -*-
#!/usr/bin/python
import os, sys
from telegram.ext import Filters
from telegram.ext import Updater, MessageHandler
import re

def delete_method(bot, update):
    if not update.message.text:
        print("it does not contain text")
        return

    mlist=['Hello', 'سلام']

    for i in mlist:
        if re.search(i, update.message.text):
            bot.delete_message(chat_id=update.message.chat_id,message_id=update.message.message_id)

def main():
    updater = Updater(token='TOKEN')
    dispatcher = updater.dispatcher
    dispatcher.add_handler(MessageHandler(Filters.all, delete_method))

    updater.start_polling()

    updater.idle()

if __name__ == '__main__':
    main()

# for exit
# updater.idle()

机器人应该在将 mlist 中的波斯语消息发送到组时删除消息,但它不会这样做,但如果 mlist 中的消息是拉丁文并且将发送到组,则消息将被删除。 .完全没有错误

【问题讨论】:

  • 你最好的选择是调试你的程序。
  • @vishes_shellHow??关于请举个例子。

标签: python python-telegram-bot


【解决方案1】:

首先你需要调试你的程序,看看它是否到达 if 子句。

并将第一行更改为:

# -*- coding: utf-8 -*-

看看它是否有效..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-29
    • 1970-01-01
    • 2017-03-19
    • 2017-07-17
    • 2021-09-09
    • 1970-01-01
    相关资源
    最近更新 更多