Add crosspost support to reddit commands
This commit is contained in:
parent
828ea92188
commit
4599bd31bd
1 changed files with 8 additions and 6 deletions
|
@ -50,6 +50,7 @@ class RedditCog(Cog):
|
||||||
url = "https://reddit.com" + post.permalink
|
url = "https://reddit.com" + post.permalink
|
||||||
await post.author.load()
|
await post.author.load()
|
||||||
author_url = f"https://reddit.com/u/{post.author.name}"
|
author_url = f"https://reddit.com/u/{post.author.name}"
|
||||||
|
author_icon = post.author.icon_img
|
||||||
images = []
|
images = []
|
||||||
title = f"{post.title}"
|
title = f"{post.title}"
|
||||||
fields = []
|
fields = []
|
||||||
|
@ -57,9 +58,10 @@ class RedditCog(Cog):
|
||||||
og_post = None
|
og_post = None
|
||||||
if not post.is_self:
|
if not post.is_self:
|
||||||
og_post = post # noqa: F841
|
og_post = post # noqa: F841
|
||||||
post = await self.api.submission(post.crosspost_parents_list[0]["id"])
|
post = await self.api.submission(post.crosspost_parent_list[0]["id"])
|
||||||
|
await post.load()
|
||||||
fields.append(EmbedField(name="Crossposted From", value=post.subreddit_name_prefixed))
|
fields.append(EmbedField(name="Crossposted From", value=post.subreddit_name_prefixed))
|
||||||
content = f"> **{post.title}**\n\n"
|
content = f"> **{post.title}**"
|
||||||
if "url" in vars(post):
|
if "url" in vars(post):
|
||||||
if any(post.url.endswith(x) for x in ["jpeg", "jpg", "png", "gif"]):
|
if any(post.url.endswith(x) for x in ["jpeg", "jpg", "png", "gif"]):
|
||||||
images = [post.url]
|
images = [post.url]
|
||||||
|
@ -74,7 +76,7 @@ class RedditCog(Cog):
|
||||||
break
|
break
|
||||||
|
|
||||||
if "selftext" in vars(post) and post.selftext:
|
if "selftext" in vars(post) and post.selftext:
|
||||||
content += post.selftext
|
content += "\n\n" + post.selftext
|
||||||
if len(content) > 900:
|
if len(content) > 900:
|
||||||
content = content[:900] + "..."
|
content = content[:900] + "..."
|
||||||
content += f"\n\n[View this post]({url})"
|
content += f"\n\n[View this post]({url})"
|
||||||
|
@ -89,13 +91,13 @@ class RedditCog(Cog):
|
||||||
base_embed = build_embed(
|
base_embed = build_embed(
|
||||||
title=title,
|
title=title,
|
||||||
description=content,
|
description=content,
|
||||||
fields=[],
|
fields=fields,
|
||||||
timestamp=post.created_utc,
|
timestamp=post.created_utc,
|
||||||
url=url,
|
url=url,
|
||||||
color=color,
|
color=color,
|
||||||
)
|
)
|
||||||
base_embed.set_author(
|
base_embed.set_author(
|
||||||
name="u/" + post.author.name, url=author_url, icon_url=post.author.icon_img
|
name="u/" + post.author.name, url=author_url, icon_url=author_icon
|
||||||
)
|
)
|
||||||
base_embed.set_footer(
|
base_embed.set_footer(
|
||||||
text="Reddit", icon_url="https://www.redditinc.com/assets/images/site/reddit-logo.png"
|
text="Reddit", icon_url="https://www.redditinc.com/assets/images/site/reddit-logo.png"
|
||||||
|
@ -399,7 +401,7 @@ class RedditCog(Cog):
|
||||||
async def _reddit_post(self, ctx: InteractionContext, sid: str) -> None:
|
async def _reddit_post(self, ctx: InteractionContext, sid: str) -> None:
|
||||||
await ctx.defer()
|
await ctx.defer()
|
||||||
try:
|
try:
|
||||||
post = await self.api.submission(sid)()
|
post = await self.api.submission(sid)
|
||||||
await post.load()
|
await post.load()
|
||||||
except (NotFound, Forbidden, Redirect) as e:
|
except (NotFound, Forbidden, Redirect) as e:
|
||||||
self.logger.debug(f"Submission {sid} raised {e.__class__.__name__} in post")
|
self.logger.debug(f"Submission {sid} raised {e.__class__.__name__} in post")
|
||||||
|
|
Loading…
Add table
Reference in a new issue