我正在尝试使用 PRAW 从 Reddit subreddits 检索消息。它在大多数情况下都能正常工作,但我收到以下错误消息,即消息太长。我正在使用 pytelegrambotApi
片段:
import praw
import telebot
bot = telebot.TeleBot(token)
reddit = praw.Reddit(
client_id=client, #these details are given accordingly and are correct. No errors here.
client_secret=secret,
user_agent="user_agent",
)
def get_posts(sub):
for submission in reddit.subreddit(sub).hot(limit=10):
print(submission)
if submission.author.is_mod:
continue
elif submission.selftext=="":
return submission.title,submission.url
else:
print("It's working")
print(submission.url)
return submission.title,submission.selftext
@bot.message_handler(func=lambda message: True)
def echo_message(message):
subreddit = message.text
title,post = get_posts(subreddit)
m = title + "\n" + post
bot.reply_to(message,m)
bot.infinity_polling()
一条 Telegram 消息不得超过
4096
个字符。然后该消息被分割成另一条消息(即剩余的消息)。
将此代码添加到您的message_handler
:
m = title + "\n" + post
if len(m) > 4095:
for x in range(0, len(m), 4095):
bot.reply_to(message, text=m[x:x+4095])
else:
bot.reply_to(message, text=m)
如果你有 infinity_polling 也许这就是问题所在