You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

discord.py机器人Embed无法加载Reddit视频,如何过滤视频类帖子?

解决方案

核心过滤逻辑

PRAW返回的Reddit帖子对象submission自带is_video属性,值为True时即为平台原生上传的视频内容,直接过滤即可。额外增加URL后缀判断,可过滤外链的视频资源,避免漏筛。

修改后完整代码

import random
import discord
from discord.ext import commands
import praw

# 此处保留你原有praw实例初始化、bot实例初始化等代码

@commands.command(name='aww',
                  aliases=["aw", "cute", "cutepics"])
async def aww(self, ctx):
    sub_submissions = reddit.subreddit('aww').hot()
    post_to_pick = random.randint(1, 100)
    # 定义需要过滤的常见视频格式后缀
    video_suffix = ('.mp4', '.mov', '.webm', '.mkv', '.flv', '.avi')
    for i in range(0, post_to_pick):
        # 过滤规则:非置顶帖 + 非原生视频 + 外链不指向视频文件
        submission = next(x for x in sub_submissions if not x.stickied and not x.is_video and not x.url.lower().endswith(video_suffix))
    e = discord.Embed(
        title=f'Your request!',
        description=f'{submission.title}\n{submission.selftext}')
    e.set_image(url=submission.url)
    e.set_footer(text=f"OFC!Thank dove#1565 for this amazing quickie!? \nRequested by {ctx.author}")
    await ctx.send(embed=e)

可选优化

如果担心随机拉取的100条内容里没有符合条件的图片帖子,可以增加StopIteration异常捕获逻辑,触发时给用户发送拉取失败的提示即可,避免机器人报错。

内容的提问来源于stack exchange,提问作者Divyansh Jain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 19:54:03