Brought over changes from RcGcDb to improve compatibility as well as fix a bug

This commit is contained in:
Frisk 2024-08-13 12:30:55 +02:00
parent 5874bae884
commit 0719740ae8
4 changed files with 9 additions and 5 deletions

View file

@ -19,7 +19,7 @@ import datetime
from src.discord.message import DiscordMessage from src.discord.message import DiscordMessage
from src.api import formatter from src.api import formatter
from src.api.context import Context from src.api.context import Context
from src.api.util import embed_helper, sanitize_to_url, parse_mediawiki_changes, clean_link, compact_author, \ from src.api.util import embed_helper, sanitize_to_url, clean_link, compact_author, \
sanitize_to_markdown, compact_summary sanitize_to_markdown, compact_summary
# Order results from most drastic first to less drastic last # Order results from most drastic first to less drastic last

View file

@ -28,7 +28,7 @@ def embed_approval_approvefile(ctx: Context, change: dict):
embed_helper(ctx, embed, change) embed_helper(ctx, embed, change)
embed["url"] = ctx.client.create_article_path(sanitize_to_url(change["title"])) embed["url"] = ctx.client.create_article_path(sanitize_to_url(change["title"]))
embed["title"] = ctx._("Approved a file revision of {file}").format(file=sanitize_to_markdown(change["title"])) embed["title"] = ctx._("Approved a file revision of {file}").format(file=sanitize_to_markdown(change["title"]))
link_parser_object = LinkParser() link_parser_object = LinkParser(ctx.client.WIKI_JUST_DOMAIN)
link_parser_object.feed(change.get("logparams", {}).get("0", "")) link_parser_object.feed(change.get("logparams", {}).get("0", ""))
embed["description"] = ctx._("File version from {time} got approved").format(name=change["title"], time=link_parser_object.new_string) embed["description"] = ctx._("File version from {time} got approved").format(name=change["title"], time=link_parser_object.new_string)
# TODO Make timestamp more user friendly? Getting user who uploaded will be a pain though, same with approval/approve # TODO Make timestamp more user friendly? Getting user who uploaded will be a pain though, same with approval/approve

View file

@ -73,7 +73,7 @@ def embed_managewiki_delete_group(ctx: Context, change: dict) -> DiscordMessage:
embed_helper(ctx, embed, change) embed_helper(ctx, embed, change)
embed["url"] = ctx.client.create_article_path(sanitize_to_url(change["title"])) embed["url"] = ctx.client.create_article_path(sanitize_to_url(change["title"]))
group = change["title"].split("/")[-1] group = change["title"].split("/")[-1]
embed["title"] = ctx._("Deleted a \"{group}\" user group").format(wiki=group) embed["title"] = ctx._("Deleted a \"{group}\" user group").format(group=group)
return embed return embed

View file

@ -346,6 +346,10 @@ class LinkParser(HTMLParser):
new_string = "" new_string = ""
recent_href = "" recent_href = ""
def __init__(self, DOMAIN_URL: str):
self.WIKI_JUST_DOMAIN = DOMAIN_URL
super().__init__()
def handle_starttag(self, tag, attrs): def handle_starttag(self, tag, attrs):
for attr in attrs: for attr in attrs:
if attr[0] == 'href': if attr[0] == 'href':
@ -353,12 +357,12 @@ class LinkParser(HTMLParser):
if self.recent_href.startswith("//"): if self.recent_href.startswith("//"):
self.recent_href = "https:{rest}".format(rest=self.recent_href) self.recent_href = "https:{rest}".format(rest=self.recent_href)
elif not self.recent_href.startswith("http"): elif not self.recent_href.startswith("http"):
self.recent_href = WIKI_JUST_DOMAIN + self.recent_href self.recent_href = self.WIKI_JUST_DOMAIN + self.recent_href
self.recent_href = self.recent_href.replace(")", "\\)") self.recent_href = self.recent_href.replace(")", "\\)")
elif attr[0] == 'data-uncrawlable-url': elif attr[0] == 'data-uncrawlable-url':
self.recent_href = attr[1].encode('ascii') self.recent_href = attr[1].encode('ascii')
self.recent_href = base64.b64decode(self.recent_href) self.recent_href = base64.b64decode(self.recent_href)
self.recent_href = WIKI_JUST_DOMAIN + self.recent_href.decode('ascii') self.recent_href = self.WIKI_JUST_DOMAIN + self.recent_href.decode('ascii')
def handle_data(self, data): def handle_data(self, data):
if self.recent_href: if self.recent_href: