检测Discord.py的断开链接

2024-10-02 10:18:35 发布

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

我正在编写一个discordbot命令来嵌入子Reddit中的图像。我正在为此使用praw模块。然而,一些被刮取的链接并没有以图像扩展结束,因此它不能正确嵌入。对于这些,我只想链接到标题并添加缩略图。我该怎么做

以下是我正在使用的代码:

刮削:

def getTopMemes():
    reddit = praw.Reddit(client_id = 'id', 
                        client_secret = 'secret', 
                        user_agent = 'agent')

    titles = [submission.title for submission in reddit.subreddit("dankmemes").top("day", limit = 30)]
    urls = [submission.url for submission in reddit.subreddit("dankmemes").top("day", limit=30)]
    ran = random.randint(0,len(titles))
    return titles[ran], urls[ran]

Bot命令:

@bot.command()
async def meme(ctx):
    title, url = getTopMemes()
    embed1 = discord.Embed(title = title)
    embed1.set_image(url = url)
    await ctx.channel.send(embed = embed1)

结果嵌入:

enter image description here


Tags: 图像命令clienturlsubmissiontitle链接def
2条回答

您可以检查url是否有图像扩展名,如果没有,则添加它

def ext_check(url):
  if re.search("(jpg|jpeg|gif|png)((\?+)?$|$)", url) == None:
    url += ".png"
  return url

urls = [ext_check(submission.url) for submission in reddit.subreddit("dankmemes").top("day", limit=30)]

我在列表中添加了以下条件,结果成功了:
if submission.url[-4:] in ('.jpg', 'jpeg', '.gif', 'gifv', '.png')

充分理解

titles = [submission.title for submission in reddit.subreddit("dankmemes").top("day", limit=50) if submission.url[-4:] in ('.jpg', 'jpeg', '.gif', 'gifv', '.png')]
urls = [submission.url for submission in reddit.subreddit("dankmemes").top("day", limit=50) if submission.url[-4:] in ('.jpg', 'jpeg', '.gif', 'gifv', '.png')]

相关问题 更多 >

    热门问题