【问题标题】:Detect broken link for Discord.py检测 Discord.py 的断开链接
【发布时间】:2021-05-10 00:13:38
【问题描述】:

我正在编写一个不和谐的机器人命令来嵌入来自 subreddit 的图像。我为此使用了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.command()
async def meme(ctx):
    title, url = getTopMemes()
    embed1 = discord.Embed(title = title)
    embed1.set_image(url = url)
    await ctx.channel.send(embed = embed1)

生成的嵌入:

【问题讨论】:

  • 如果有错误信息,你能把错误信息包括进来吗?
  • 没有错误,只是空嵌入,不过我可以加一张图片,一秒。
  • 如果我正确理解了这个问题,您可以使用正则表达式之类的东西在 url 末尾查找 .png/.jpg/.jpeg。如果不存在,请添加它。
  • @Kelo 这是个好主意。有什么办法可以将其用作列表理解中的条件?

标签: python discord discord.py


【解决方案1】:

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

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)]

【讨论】:

  • 感谢您的回答,但是我在网上的正则表达式检查器上试过这个,它说正则表达式无效。
  • 好吧,让我检查一下
  • @DapperDuck 试试看
  • 这应该可以,但是我找到了一个更短的解决方案。感谢您的帮助!
【解决方案2】:

我在列表理解中添加了以下条件并且它起作用了:
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')]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-10
    • 1970-01-01
    相关资源
    最近更新 更多