简体   繁体   中英

python-telegram-bot for (v20.x) TypeError: bad operand type for unary ~: 'type'

I am trying to build a telegram bot, I have just reproduce the code:

from telegram.ext import MessageHandler
from telegram.ext import filters
from telegram.ext import Application
from telegram import Update
from telegram.ext import ContextTypes
from decouple import config

def testFunc (update: Update, context: ContextTypes.DEFAULT_TYPE):
    print('Hi')
    
def main():
   
    BOT_TOKEN = config('TELE_BOT_API_KEY_2')
    application = Application.builder().token(BOT_TOKEN).build()
    
    application.add_handler(MessageHandler(filters.Text & ~filters.Command, testFunc))
    
    application.run_polling()

if __name__ == '__main__':
    main()

The error this code shows is:

Bot\AsyncAdvanceBot\test3.py", line 16, in main
    application.add_handler(MessageHandler(filters.Text & ~filters.Command, testFunc))
TypeError: bad operand type for unary ~: 'type'

I am using python-telegram-bot api v20.x I know this might be a naive problem that I might be missing. Thanks!

I tried changing the code to different format but it doesn't work.

I got it. It was as I said naive error. I was not thinking straight I have seen the document even earlier and was only focusing on making filters.Command to filters,COMMAND. but forgot to change filters.Text to filters.TEXT. just replaced

filters.Text & ~filters.Command 

with

filters.TEXT & ~filters.COMMAND

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM