我正在制作一个电报机器人,试图找到其他机器人、频道等。 但我遇到了这个错误:
Traceback (most recent call last):
File "/data/data/com.termux/files/home/programs/antiscamer.py", line 29, in <module>
main()
File "/data/data/com.termux/files/home/programs/antiscamer.py", line 24, in main
dispatcher.add_handler(CommandHandler(filters.TEXT & ~filters.command, find_bot))
^^^^^^^^^^^^
AttributeError: module 'telegram.ext.filters' has no attribute 'TEXT'
这不是第一个错误。对于其他错误,我很容易修复。但我不知道如何解决这个问题 这是我的代码:
from telegram import Update
from telegram.ext import Updater, CommandHandler, MessageHandler, filters, CallbackContext
import requests
from telegram.ext import *
TOKEN = '7138699736:AAH3JUCxwy8jApWOqojGRZ7wFmC1CfVkG3A'
def start(update: Update, context: CallbackContext) -> None:
update.message.reply_text('👋 Привет, это AnstiScammer_bot!\nВведите имя бота, которого нужно снести:')
def find_bot(update: Update, context: CallbackContext) -> None:
bot_name = update.message.text
response = requestsnget(f'https://api.telegram.org{TOKEN}/getChat?chat_id=@{bot_name}')
bot_data = response.json()
if bot_data.get('ok'):
update.message.reply_text(f'Информация о боте:\n{bot_data["result"]}')
else:
update.message.reply_text('🤷 К сожалению, не удалось найти бота.\nПроверьте правильность в названии бота или введите другое имя.')
def main() -> None:
updater = Updater(TOKEN)
dispatcher = updater.dispatcher
dispatcher.add_handler(CommandHandlr('start', start))
dispatcher.add_handler(CommandHandlr(filters.TEXT, filters.command, find_bot))
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()
我正在更改 python-telegram-bot 和 telegram 版本,但都不起作用。我不知道需要做什么:(
从 python-telegram-bot 版本 20 开始,过滤器库为小写,单个过滤器全部为大写。
从
v20
变成了filters.TEXT
。
from telegram.ext import Filters
你的代码变成:
dispatcher.add_handler(CommandHandler(Filters.TEXT & ~Filters.command, find_bot))
https://github.com/python-telegram-bot/python-telegram-bot/wiki/Transition-guide-to-Version-20.0