2017-08-16 1 views
0

Ich baute einen Bot-Bot mit Python-Telegram-Bot.Ich habe den Bot zu einer Gruppe hinzugefügt und habe den Bot in der Admin-Gruppe.Ich habe definiert eine Liste (mlist) für den Bot und lege sie in eine Liste von Wörtern. Der Bot sollte die Nachrichten überprüfen, die die Benutzer an die Gruppe senden. Und wenn Benutzer eine Nachricht an die Gruppe senden, in der die Wörter in der Liste definiert sind (mlist) sind da, der Bot muss es löschen (Nachricht löschen).Ich habe einen Telegramm-Bot mit Python-Telegramm-Bot gebaut, aber arbeite nicht

# -*- 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() 

(Der Bot die Nachrichten löschen soll, die an die Gruppe gesendet werden und enthalten die Liste (mlist) Wörter) , aber der Bot nicht funktioniert, und Fehler nicht geben.

+0

Mögliche Duplikat [Telegramm Bot nicht funktioniert] (https://stackoverflow.com/questions/45660498/telegram-bot-is-not-working) – Sean

+0

@Sean Erklären Sie mehr – Sajjad

Antwort

0

Versuchen Sie, die Wörter in mlist mit Englisch zu ersetzen und sehen, ob es dann funktioniert. Nur um zu prüfen, ob das das Problem verursacht.

EDIT: So funktioniert es mit englischen Wörtern. Der Grund ist, dass die Telegram API nur UTF-8 unterstützt, Python aber mit Unicode arbeitet. Unicode ≠ UTF-8. Sie müssen Ihren Text mit UTF-8 kodieren. Nehmen Sie einen String und fügen:

.encode('utf-8')

+0

@EndogenWorks mit englischen Wörtern – Sajjad

+0

Hier ist, was passiert: Telegram-API unterstützt nur UTF-8, aber Python arbeitet mit Unicode. Unicode ist nicht dasselbe wie UTF-8. Bitte lesen Sie [diesen Post] (https://github.com/python-telegram-bot/python-telegramm-bot/issues/27) von der Python-telegramm-bot-Bibliothek. – Endogen

+0

@EndogenWie kann ich es im Code verwenden ??? – Sajjad

Verwandte Themen