Heroku上部署的电报机器人在添加到组后立即停止工作

2024-09-29 23:20:52 发布

您现在位置:Python中文网/ 问答频道 /正文

当我使用聊天时,此bot可以正常工作,但当我将其添加到组中时,就会抛出奇怪的错误…
bot没有内联,并且组已启用,因此这不是问题所在。
代码如下:

import telebot
import dotenv
import os
from utils import gif
import re


dotenv.load_dotenv();
bot = telebot.TeleBot(os.environ.get("TOKEN"))
pattern = r":gif (.+)"
regex = re.compile(pattern,re.IGNORECASE)
counter = 50


@bot.message_handler(func = lambda message: re.search(regex,message.text))
def word_to_gif(message):
    text = message.text
    word_list = re.search(regex,text).group(1)
    res = gif.get_gif_tenor(word_list)

    if res.status_code == 200:
        res = res.json()
        res_array = res["results"]
        gif_url = gif.extract_gif_url(res_array)
        bot.send_animation(message.chat.id,gif_url)
    else:
        bot.send_message(message.chat.id,f"Error: code[{res.status_code}]")

@bot.message_handler(func = lambda message: re.search(re.compile("vince",re.IGNORECASE),message.text))
def biat_a_vicienz(message):
    global counter
    if(counter == 50):
        bot.send_message(message.chat.id,"biat a te de martì")
        counter = 0
    else:
        counter = counter +1

'''
@bot.message_handler(func = lambda message : True)
def echo(message):
    bot.send_message(message.chat.id,message.text)
'''

bot.polling(none_stop = False)

以下是消息到达组时出现的错误日志:

2021-02-26 20:32:15,004 (util.py:75 PollingThread) ERROR - TeleBot: "TypeError occurred, args=('expected string or bytes-like object',)
Traceback (most recent call last):
  File "/Users/giannandreavicidomini/PycharmProjects/RandomGifBot/venv/lib/python3.8/site-packages/telebot/util.py", line 69, in run
    task(*args, **kwargs)
  File "/Users/giannandreavicidomini/PycharmProjects/RandomGifBot/venv/lib/python3.8/site-packages/telebot/__init__.py", line 286, in __retrieve_updates
    self.process_new_updates(updates)
  File "/Users/giannandreavicidomini/PycharmProjects/RandomGifBot/venv/lib/python3.8/site-packages/telebot/__init__.py", line 332, in process_new_updates
    self.process_new_messages(new_messages)
  File "/Users/giannandreavicidomini/PycharmProjects/RandomGifBot/venv/lib/python3.8/site-packages/telebot/__init__.py", line 358, in process_new_messages
    self._notify_command_handlers(self.message_handlers, new_messages)
  File "/Users/giannandreavicidomini/PycharmProjects/RandomGifBot/venv/lib/python3.8/site-packages/telebot/__init__.py", line 2038, in _notify_command_handlers
    if self._test_message_handler(message_handler, message):
  File "/Users/giannandreavicidomini/PycharmProjects/RandomGifBot/venv/lib/python3.8/site-packages/telebot/__init__.py", line 2006, in _test_message_handler
    if not self._test_filter(message_filter, filter_value, message):
  File "/Users/giannandreavicidomini/PycharmProjects/RandomGifBot/venv/lib/python3.8/site-packages/telebot/__init__.py", line 2027, in _test_filter
    return test_cases.get(message_filter, lambda msg: False)(message)
  File "/Users/giannandreavicidomini/PycharmProjects/RandomGifBot/venv/lib/python3.8/site-packages/telebot/__init__.py", line 2024, in <lambda>
    'func': lambda msg: filter_value(msg)
  File "main.py", line 15, in <lambda>
    @bot.message_handler(func = lambda message: re.search(regex,message.text))
  File "/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/re.py", line 199, in search
    return _compile(pattern, flags).search(string)
TypeError: expected string or bytes-like object
"
Traceback (most recent call last):
  File "main.py", line 44, in <module>
    bot.polling(none_stop = False) 
  File "/Users/giannandreavicidomini/PycharmProjects/RandomGifBot/venv/lib/python3.8/site-packages/telebot/__init__.py", line 427, in polling
    self.__threaded_polling(none_stop, interval, timeout)
  File "/Users/giannandreavicidomini/PycharmProjects/RandomGifBot/venv/lib/python3.8/site-packages/telebot/__init__.py", line 450, in __threaded_polling
    polling_thread.raise_exceptions()
  File "/Users/giannandreavicidomini/PycharmProjects/RandomGifBot/venv/lib/python3.8/site-packages/telebot/util.py", line 88, in raise_exceptions
    six.reraise(self.exc_info[0], self.exc_info[1], self.exc_info[2])
  File "/Users/giannandreavicidomini/PycharmProjects/RandomGifBot/venv/lib/python3.8/site-packages/six.py", line 703, in reraise
    raise value
  File "/Users/giannandreavicidomini/PycharmProjects/RandomGifBot/venv/lib/python3.8/site-packages/telebot/util.py", line 69, in run
    task(*args, **kwargs)
  File "/Users/giannandreavicidomini/PycharmProjects/RandomGifBot/venv/lib/python3.8/site-packages/telebot/__init__.py", line 286, in __retrieve_updates
    self.process_new_updates(updates)
  File "/Users/giannandreavicidomini/PycharmProjects/RandomGifBot/venv/lib/python3.8/site-packages/telebot/__init__.py", line 332, in process_new_updates
    self.process_new_messages(new_messages)
  File "/Users/giannandreavicidomini/PycharmProjects/RandomGifBot/venv/lib/python3.8/site-packages/telebot/__init__.py", line 358, in process_new_messages
    self._notify_command_handlers(self.message_handlers, new_messages)
  File "/Users/giannandreavicidomini/PycharmProjects/RandomGifBot/venv/lib/python3.8/site-packages/telebot/__init__.py", line 2038, in _notify_command_handlers
    if self._test_message_handler(message_handler, message):
  File "/Users/giannandreavicidomini/PycharmProjects/RandomGifBot/venv/lib/python3.8/site-packages/telebot/__init__.py", line 2006, in _test_message_handler
    if not self._test_filter(message_filter, filter_value, message):
  File "/Users/giannandreavicidomini/PycharmProjects/RandomGifBot/venv/lib/python3.8/site-packages/telebot/__init__.py", line 2027, in _test_filter
    return test_cases.get(message_filter, lambda msg: False)(message)
  File "/Users/giannandreavicidomini/PycharmProjects/RandomGifBot/venv/lib/python3.8/site-packages/telebot/__init__.py", line 2024, in <lambda>
    'func': lambda msg: filter_value(msg)
  File "main.py", line 15, in <lambda>
    @bot.message_handler(func = lambda message: re.search(regex,message.text))
  File "/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/re.py", line 199, in search
    return _compile(pattern, flags).search(string)
TypeError: expected string or bytes-like object

这真的很奇怪,即使我试图从我的电脑上运行主文件,它也会停止工作,但是如果我对两个decorator进行注释,再次运行它并取消注释decorators,它会再次开始工作…
为什么正则表达式代码会出现这些问题?我拿不到它…
编辑:在成员列表中,它表示bot无权访问消息,但组已为此启用


Tags: inpymessagevenvinitlibpackagesline

热门问题