mirror of
https://gitlab.com/chicken-riders/RcGcDb.git
synced 2025-02-23 00:54:09 +00:00
Fix stacked embed length check
This commit is contained in:
parent
dbd57899ac
commit
df3194d3af
|
@ -106,12 +106,17 @@ class DiscordMessage:
|
||||||
raise EmbedListFull
|
raise EmbedListFull
|
||||||
self.webhook_object["embeds"].append(self.embed)
|
self.webhook_object["embeds"].append(self.embed)
|
||||||
|
|
||||||
def set_author(self, name: str, url: str, icon_url=""):
|
def set_author(self, name: str, url="", icon_url=""):
|
||||||
self.length += len(name)
|
self.length += len(name)
|
||||||
self.embed["author"]["name"] = name
|
self.embed["author"]["name"] = name
|
||||||
self.embed["author"]["url"] = url
|
self.embed["author"]["url"] = url
|
||||||
self.embed["author"]["icon_url"] = icon_url
|
self.embed["author"]["icon_url"] = icon_url
|
||||||
|
|
||||||
|
def set_footer(self, text: str, icon_url=""):
|
||||||
|
self.length += len(text)
|
||||||
|
self.embed["footer"]["text"] = text
|
||||||
|
self.embed["footer"]["icon_url"] = icon_url
|
||||||
|
|
||||||
def add_field(self, name, value, inline=False):
|
def add_field(self, name, value, inline=False):
|
||||||
if "fields" not in self.embed:
|
if "fields" not in self.embed:
|
||||||
self.embed["fields"] = []
|
self.embed["fields"] = []
|
||||||
|
@ -138,7 +143,7 @@ def stack_message_list(messages: list) -> list:
|
||||||
stackable = StackedDiscordMessage(messages[message_group_index])
|
stackable = StackedDiscordMessage(messages[message_group_index])
|
||||||
for message in messages[message_group_index + 1:message_group_index + 10]:
|
for message in messages[message_group_index + 1:message_group_index + 10]:
|
||||||
try:
|
try:
|
||||||
stackable.add_embed(message.embed)
|
stackable.add_embed(message)
|
||||||
except EmbedListFull:
|
except EmbedListFull:
|
||||||
break
|
break
|
||||||
messages.remove(message)
|
messages.remove(message)
|
||||||
|
@ -165,13 +170,14 @@ class StackedDiscordMessage(DiscordMessage):
|
||||||
|
|
||||||
def stack(self, messages: list):
|
def stack(self, messages: list):
|
||||||
for message in messages:
|
for message in messages:
|
||||||
self.add_embed(message.embed)
|
self.add_embed(message)
|
||||||
|
|
||||||
def add_embed(self, embed):
|
def add_embed(self, message):
|
||||||
if len(self) + len(embed) > 6000:
|
if len(self) + len(message) > 6000:
|
||||||
raise EmbedListFull
|
raise EmbedListFull
|
||||||
|
self.length += len(message)
|
||||||
self._setup_embed()
|
self._setup_embed()
|
||||||
self.embed = embed
|
self.embed = message.embed
|
||||||
self.finish_embed_message()
|
self.finish_embed_message()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -107,7 +107,7 @@ async def feeds_embed_formatter(post_type, post, message_target, wiki, article_p
|
||||||
else: # Fallback when model is not available
|
else: # Fallback when model is not available
|
||||||
embed["description"] = post.get("rawContent", "")
|
embed["description"] = post.get("rawContent", "")
|
||||||
if post["forumName"] is not None:
|
if post["forumName"] is not None:
|
||||||
embed["footer"]["text"] = post["forumName"].replace("_", " ")
|
embed.set_footer(post["forumName"].replace("_", " "))
|
||||||
embed["timestamp"] = datetime.datetime.fromtimestamp(post["creationDate"]["epochSecond"], tz=datetime.timezone.utc).isoformat()
|
embed["timestamp"] = datetime.datetime.fromtimestamp(post["creationDate"]["epochSecond"], tz=datetime.timezone.utc).isoformat()
|
||||||
if post_type == "FORUM":
|
if post_type == "FORUM":
|
||||||
if not post["isReply"]:
|
if not post["isReply"]:
|
||||||
|
@ -174,7 +174,7 @@ async def feeds_embed_formatter(post_type, post, message_target, wiki, article_p
|
||||||
embed.event_type = "discussion/comment/reply"
|
embed.event_type = "discussion/comment/reply"
|
||||||
embed["url"] = "{url}?commentId={commentId}&replyId={replyId}".format(url=article_page["fullUrl"], commentId=post["threadId"], replyId=post["id"])
|
embed["url"] = "{url}?commentId={commentId}&replyId={replyId}".format(url=article_page["fullUrl"], commentId=post["threadId"], replyId=post["id"])
|
||||||
embed["title"] = _("Replied to a comment on {article}").format(article=article_page["title"])
|
embed["title"] = _("Replied to a comment on {article}").format(article=article_page["title"])
|
||||||
embed["footer"]["text"] = article_page["title"]
|
embed.set_footer(article_page["title"])
|
||||||
else:
|
else:
|
||||||
logger.warning("No entry for {event} with params: {params}".format(event=post_type, params=post))
|
logger.warning("No entry for {event} with params: {params}".format(event=post_type, params=post))
|
||||||
embed["title"] = _("Unknown event `{event}`").format(event=post_type)
|
embed["title"] = _("Unknown event `{event}`").format(event=post_type)
|
||||||
|
|
|
@ -1101,8 +1101,7 @@ async def embed_formatter(action, change, parsed_comment, categories, recent_cha
|
||||||
link = create_article_path("User:"+change["logparams"]["newuser"], WIKI_ARTICLE_PATH)
|
link = create_article_path("User:"+change["logparams"]["newuser"], WIKI_ARTICLE_PATH)
|
||||||
elif action == "suppressed":
|
elif action == "suppressed":
|
||||||
link = create_article_path("", WIKI_ARTICLE_PATH)
|
link = create_article_path("", WIKI_ARTICLE_PATH)
|
||||||
embed["title"] = _("Action has been hidden by administration")
|
embed.set_author(_("Unknown"))
|
||||||
embed["author"]["name"] = _("Unknown")
|
|
||||||
else:
|
else:
|
||||||
logger.warning("No entry for {event} with params: {params}".format(event=action, params=change))
|
logger.warning("No entry for {event} with params: {params}".format(event=action, params=change))
|
||||||
link = create_article_path("Special:RecentChanges", WIKI_ARTICLE_PATH)
|
link = create_article_path("Special:RecentChanges", WIKI_ARTICLE_PATH)
|
||||||
|
|
Loading…
Reference in a new issue