电报机器人不适用于波斯语消息

时间:2017-08-14 11:36:22

标签: python python-telegram-bot

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

# -*- 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中的消息是拉丁语并将被发送到组,则消息将被删除。 。根本没有错误

1 个答案:

答案 0 :(得分:0)

首先,您需要调试程序以查看它是否到达if子句内部。

并将第一行更改为:

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

看看它是否有效..