Всем привет。 Ниже обработчик системных сообщений от ТГ и если пользователь вступил в чат или вышел - бот пишет сообщение.
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 и при этом там асинхронные функции - ошибок нет.
Понимаю, что основная проблема тут в отсутсвии знаний, но хотелось бы всё же разобраться, что вызывает ошибку и решить проблему, из-за которой она возникает.
Всех заранее благодарю。 К сарказму и стёбу отношусь спокойно, но всё же правда хотелось бы получить ответ по теме.
Всем orgромное спасибо。
В моём случае проблема решилась крайне банально - нужно было просто двум функциям, которые были в main и которые я не осчитал нужным внести в тот код, который скинул сюда - добавить 异步。
Проблема решилась.