mirror of
https://gitlab.com/chicken-riders/RcGcDw.git
synced 2025-02-23 00:24:09 +00:00
Fixed #116
This commit is contained in:
parent
b0698bddde
commit
58da12ac9e
|
@ -44,7 +44,7 @@ fetch_url = "https://services.fandom.com/discussion/{wikiid}/posts?sortDirection
|
||||||
|
|
||||||
def embed_formatter(post, post_type):
|
def embed_formatter(post, post_type):
|
||||||
"""Embed formatter for Fandom discussions."""
|
"""Embed formatter for Fandom discussions."""
|
||||||
embed = DiscordMessage("embed", "discussion")
|
embed = DiscordMessage("embed", "discussion", settings["fandom_discussions"]["webhookURL"])
|
||||||
embed.set_author(post["createdBy"]["name"], "{wikiurl}f/u/{creatorId}".format(
|
embed.set_author(post["createdBy"]["name"], "{wikiurl}f/u/{creatorId}".format(
|
||||||
wikiurl=settings["fandom_discussions"]["wiki_url"], creatorId=post["creatorId"]), icon_url=post["createdBy"]["avatarUrl"])
|
wikiurl=settings["fandom_discussions"]["wiki_url"], creatorId=post["creatorId"]), icon_url=post["createdBy"]["avatarUrl"])
|
||||||
if post_type == "TEXT":
|
if post_type == "TEXT":
|
||||||
|
@ -100,7 +100,7 @@ def compact_formatter(post, post_type):
|
||||||
"[{author}](<{url}f/u/{creatorId}>) created a poll [{title}](<{url}f/p/{threadId}>) in {forumName}").format(
|
"[{author}](<{url}f/u/{creatorId}>) created a poll [{title}](<{url}f/p/{threadId}>) in {forumName}").format(
|
||||||
author=post["createdBy"]["name"], url=settings["fandom_discussions"]["wiki_url"],
|
author=post["createdBy"]["name"], url=settings["fandom_discussions"]["wiki_url"],
|
||||||
creatorId=post["creatorId"], title=post["title"], threadId=post["threadId"], forumName=post["forumName"])
|
creatorId=post["creatorId"], title=post["title"], threadId=post["threadId"], forumName=post["forumName"])
|
||||||
send_to_discord(DiscordMessage("compact", "discussion", content=message))
|
send_to_discord(DiscordMessage("compact", "discussion", settings["fandom_discussions"]["webhookURL"], content=message))
|
||||||
|
|
||||||
|
|
||||||
def fetch_discussions():
|
def fetch_discussions():
|
||||||
|
|
7
misc.py
7
misc.py
|
@ -303,7 +303,7 @@ def create_article_path(article: str) -> str:
|
||||||
|
|
||||||
|
|
||||||
def send_simple(msgtype, message, name, avatar):
|
def send_simple(msgtype, message, name, avatar):
|
||||||
discord_msg = DiscordMessage("compact", msgtype, content=message)
|
discord_msg = DiscordMessage("compact", msgtype, settings["webhookURL"], content=message)
|
||||||
discord_msg.set_avatar(avatar)
|
discord_msg.set_avatar(avatar)
|
||||||
discord_msg.set_name(name)
|
discord_msg.set_name(name)
|
||||||
messagequeue.resend_msgs()
|
messagequeue.resend_msgs()
|
||||||
|
@ -314,7 +314,7 @@ def send_to_discord_webhook(data):
|
||||||
header = settings["header"]
|
header = settings["header"]
|
||||||
header['Content-Type'] = 'application/json'
|
header['Content-Type'] = 'application/json'
|
||||||
try:
|
try:
|
||||||
result = requests.post(settings["webhookURL"], data=repr(data),
|
result = requests.post(data.webhook_url, data=repr(data),
|
||||||
headers=header, timeout=10)
|
headers=header, timeout=10)
|
||||||
except requests.exceptions.Timeout:
|
except requests.exceptions.Timeout:
|
||||||
misc_logger.warning("Timeouted while sending data to the webhook.")
|
misc_logger.warning("Timeouted while sending data to the webhook.")
|
||||||
|
@ -342,8 +342,9 @@ def send_to_discord(data):
|
||||||
|
|
||||||
class DiscordMessage():
|
class DiscordMessage():
|
||||||
"""A class defining a typical Discord JSON representation of webhook payload."""
|
"""A class defining a typical Discord JSON representation of webhook payload."""
|
||||||
def __init__(self, message_type: str, event_type: str, content=None):
|
def __init__(self, message_type: str, event_type: str, webhook_url: str, content=None):
|
||||||
self.webhook_object = dict(allowed_mentions={"parse": []}, avatar_url=settings["avatars"].get(message_type, ""))
|
self.webhook_object = dict(allowed_mentions={"parse": []}, avatar_url=settings["avatars"].get(message_type, ""))
|
||||||
|
self.webhook_url = webhook_url
|
||||||
|
|
||||||
if message_type == "embed":
|
if message_type == "embed":
|
||||||
self.__setup_embed()
|
self.__setup_embed()
|
||||||
|
|
17
rcgcdw.py
17
rcgcdw.py
|
@ -426,11 +426,11 @@ def compact_formatter(action, change, parsed_comment, categories):
|
||||||
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))
|
||||||
return
|
return
|
||||||
send_to_discord(DiscordMessage("compact", action, content=content))
|
send_to_discord(DiscordMessage("compact", action, settings["webhookURL"], content=content))
|
||||||
|
|
||||||
|
|
||||||
def embed_formatter(action, change, parsed_comment, categories):
|
def embed_formatter(action, change, parsed_comment, categories):
|
||||||
embed = DiscordMessage("embed", action)
|
embed = DiscordMessage("embed", action, settings["webhookURL"])
|
||||||
if parsed_comment is None:
|
if parsed_comment is None:
|
||||||
parsed_comment = _("No description provided")
|
parsed_comment = _("No description provided")
|
||||||
if action != "suppressed":
|
if action != "suppressed":
|
||||||
|
@ -983,15 +983,16 @@ def day_overview():
|
||||||
changed_bytes = 0
|
changed_bytes = 0
|
||||||
new_articles = 0
|
new_articles = 0
|
||||||
active_articles = []
|
active_articles = []
|
||||||
|
embed = DiscordMessage("embed", "daily_overview", settings["webhookURL"])
|
||||||
|
embed["title"] = _("Daily overview")
|
||||||
|
embed["url"] = create_article_path("Special:Statistics")
|
||||||
|
embed.set_author(settings["wikiname"], create_article_path(""),
|
||||||
|
icon_url=settings["appearance"]["embed"]["daily_overview"]["icon"])
|
||||||
if not result[0]:
|
if not result[0]:
|
||||||
if not settings["send_empty_overview"]:
|
if not settings["send_empty_overview"]:
|
||||||
return # no changes in this day
|
return # no changes in this day
|
||||||
else:
|
else:
|
||||||
embed = DiscordMessage("embed", "daily_overview")
|
|
||||||
embed["title"] = _("Daily overview")
|
|
||||||
embed["url"] = create_article_path("Special:Statistics")
|
|
||||||
embed["description"] = _("No activity")
|
embed["description"] = _("No activity")
|
||||||
embed.set_author(settings["wikiname"], create_article_path(""), icon_url=settings["appearance"]["embed"]["daily_overview"]["icon"])
|
|
||||||
else:
|
else:
|
||||||
for item in result[0]:
|
for item in result[0]:
|
||||||
if "actionhidden" in item or "suppressed" in item or "userhidden" in item:
|
if "actionhidden" in item or "suppressed" in item or "userhidden" in item:
|
||||||
|
@ -1012,10 +1013,6 @@ def day_overview():
|
||||||
admin = admin + 1 if item["logtype"] in ["delete", "merge", "block", "protect", "import", "rights",
|
admin = admin + 1 if item["logtype"] in ["delete", "merge", "block", "protect", "import", "rights",
|
||||||
"abusefilter", "interwiki", "managetags"] else admin
|
"abusefilter", "interwiki", "managetags"] else admin
|
||||||
overall = round(new_articles + edits * 0.1 + files * 0.3 + admin * 0.1 + math.fabs(changed_bytes * 0.001), 2)
|
overall = round(new_articles + edits * 0.1 + files * 0.3 + admin * 0.1 + math.fabs(changed_bytes * 0.001), 2)
|
||||||
embed = DiscordMessage("embed", "daily_overview")
|
|
||||||
embed["title"] = _("Daily overview")
|
|
||||||
embed["url"] = create_article_path("Special:Statistics")
|
|
||||||
embed.set_author(settings["wikiname"], create_article_path(""), icon_url=settings["appearance"]["embed"]["daily_overview"]["icon"])
|
|
||||||
if activity:
|
if activity:
|
||||||
active_users = []
|
active_users = []
|
||||||
for user, numberu in Counter(activity).most_common(3): # find most active users
|
for user, numberu in Counter(activity).most_common(3): # find most active users
|
||||||
|
|
Loading…
Reference in a new issue