我使用Python-Telegram-Bot构建了一个电报机器人;但是不起作用

时间:2017-08-16 11:13:14

标签: python-2.7 python-telegram-bot

我使用Python-Telegram-Bot构建了一个电报机器人。我将机器人添加到一个组并在管理组中获得了机器人。我已经为机器人定义了一个列表(mlist)并将其放入一个单词列表中机器人应检查用户发送给组的消息。如果用户向列表中定义的单词组(mlist)发送消息,则机器人必须删除它(删除消息)。

# -*- coding: utf-8 -*-
import os, sys
from telegram.ext import Updater, MessageHandler, Fliters
import re


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

    mlist=['سلام', 'شادي']


   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)字样的消息) ;但机器人不起作用,并没有给出错误。

1 个答案:

答案 0 :(得分:0)

尝试将mlist中的单词替换为英语单词,然后查看它是否有效。只是为了检查是否会导致问题。

编辑:所以它适用于英语单词。原因是,Telegram API仅支持UTF-8,但Python使用Unicode。 Unicode≠UTF-8。您必须使用UTF-8对文本进行编码。拿一个字符串并添加:

.encode('utf-8')