TeleBot:“对象 NoneType 不能在‘await’表达式中使用”

问题描述 投票:0回答:1

Всем привет。 Ниже обработчик системных сообщений от ТГ и если пользователь вступил в чат или вышел - бот пишет сообщение.

import telebot, config
bot = telebot.TeleBot(config.Token)

@bot.message_handler(func=lambda message: True, content_types=['new_chat_members'])
def new_member(message):
    print(message.content_type)
    text1=f"text"
    bot.send_message(message.chat.id, text1,  message_thread_id=message.message_thread_id, parse_mode='Markdown')
    try:
        bot.delete_message(message.chat.id, message.message_id)
    except:
        pass

@bot.message_handler(func=lambda message: True, content_types=['left_chat_member'])
def member_left(message):
    print(message.content_type)
    text=f"text"
    bot.send_message(message.chat.id, text, message_thread_id=message.message_thread_id, parse_mode='Markdown')
    try:
        bot.delete_message(message.chat.id, message.message_id)
    except:
        pass

@bot.message_handler(content_types = telebot.util.content_type_service)
def delall(message: telebot.types.Message):
    if message.content_type != 'new_chat_members' and message.content_type != 'left_chat_member':
        print(message.content_type)
        try:
            bot.delete_message(message.chat.id, message.message_id)
        except:
            pass

При вызове данных функций появляется сообщение:

(async_telebot.py:552 MainThread)错误 - TeleBot:“对象 NoneType 不能在‘await’表达式中使用”

Вызываются функции в main

import asyncio, telebot, config, service_mes
from telebot.async_telebot import AsyncTeleBot
bot = AsyncTeleBot(config.Token)
            
@bot.message_handler(content_types=telebot.util.content_type_service)
def service_message(message):
    if message.content_type == 'new_chat_members':
        service_mes.new_member(message)
    elif message.content_type == 'left_chat_member':
        service_mes.member_left(message)
    else:
        service_mes.delall(message)
        
if __name__ == '__main__':
    asyncio.run(bot.polling()) 

При этом、функции отрабатывают、но хочется разобраться、чем вызвано данное сообщение。 Точно таким же образом, как показано выше - в 主要 вызывается синхронный блок проверки сообщения на мат (также состоит из н) ескольких функций(очистка от символов, смайлов и прочего мусора, а потом проверка результата на мат и оскорбления))。 При его вызове ошибок нет.

Блок "Команды" также вызывается из main и при этом там асинхронные функции - ошибок нет.

Понимаю, что основная проблема тут в отсутсвии знаний, но хотелось бы всё же разобраться, что вызывает ошибку и решить проблему, из-за которой она возникает.

Всех заранее благодарю。 К сарказму и стёбу отношусь спокойно, но всё же правда хотелось бы получить ответ по теме.

python-asyncio nonetype telebot pytest-asyncio
1个回答
0
投票

Всем orgромное спасибо。

В моём случае проблема решилась крайне банально - нужно было просто двум функциям, которые были в main и которые я не осчитал нужным внести в тот код, который скинул сюда - добавить 异步。

Проблема решилась.

© www.soinside.com 2019 - 2024. All rights reserved.