mirror of
https://gitlab.com/chicken-riders/RcGcDw.git
synced 2025-02-23 00:24:09 +00:00
Add error tolerance setting
This commit is contained in:
parent
6fe55dc09c
commit
765d1c9d70
|
@ -21,6 +21,7 @@
|
|||
"show_updown_messages": true,
|
||||
"ignored_namespaces": [],
|
||||
"extensions_dir": "extensions",
|
||||
"error_tolerance": 1,
|
||||
"overview": false,
|
||||
"overview_time": "00:00",
|
||||
"send_empty_overview": false,
|
||||
|
|
|
@ -21,7 +21,7 @@ from typing import Dict, Any
|
|||
from src.configloader import settings
|
||||
|
||||
#from src.discussion_formatters import embed_formatter, compact_formatter
|
||||
from src.misc import datafile, prepare_paths
|
||||
from src.misc import datafile, prepare_paths, run_hooks
|
||||
from src.discord.queue import messagequeue, send_to_discord
|
||||
from src.discord.message import DiscordMessageMetadata
|
||||
from src.session import session
|
||||
|
@ -121,8 +121,11 @@ def parse_discussion_post(post, comment_pages):
|
|||
raise ArticleCommentError
|
||||
event_type = f"discussion/{post_type.lower()}"
|
||||
context.set_comment_page(comment_page)
|
||||
message = default_message(event_type, formatter_hooks)(context, post)
|
||||
send_to_discord(message, meta=DiscordMessageMetadata("POST"))
|
||||
run_hooks(pre_hooks, context, post)
|
||||
discord_message = default_message(event_type, formatter_hooks)(context, post)
|
||||
metadata = DiscordMessageMetadata("POST")
|
||||
run_hooks(post_hooks, discord_message, metadata, context)
|
||||
send_to_discord(discord_message, metadata)
|
||||
|
||||
|
||||
def safe_request(url):
|
||||
|
|
11
src/misc.py
11
src/misc.py
|
@ -291,6 +291,17 @@ def send_simple(msgtype, message, name, avatar):
|
|||
send_to_discord(discord_msg, meta=DiscordMessageMetadata("POST"))
|
||||
|
||||
|
||||
def run_hooks(hooks, *arguments):
|
||||
for hook in hooks:
|
||||
try:
|
||||
hook(*arguments)
|
||||
except:
|
||||
if settings.get("error_tolerance", 1) > 0:
|
||||
misc_logger.exception("On running a pre hook, ignoring pre-hook")
|
||||
else:
|
||||
raise
|
||||
|
||||
|
||||
def profile_field_name(name, embed):
|
||||
try:
|
||||
return profile_fields[name]
|
||||
|
|
|
@ -29,7 +29,7 @@ import src.api.client
|
|||
from src.api.context import Context
|
||||
from src.api.hooks import formatter_hooks, pre_hooks, post_hooks
|
||||
from src.configloader import settings
|
||||
from src.misc import add_to_dict, datafile, WIKI_API_PATH, LinkParser
|
||||
from src.misc import add_to_dict, datafile, WIKI_API_PATH, LinkParser, run_hooks
|
||||
from src.api.util import create_article_path, default_message, sanitize_to_markdown
|
||||
from src.discord.queue import send_to_discord
|
||||
from src.discord.message import DiscordMessage, DiscordMessageMetadata
|
||||
|
@ -235,8 +235,7 @@ def rc_processor(change, changed_categories):
|
|||
page_id=change.get("pageid", None))
|
||||
logger.debug(change)
|
||||
context = Context(settings["appearance"]["mode"], settings["webhookURL"], client)
|
||||
for hook in pre_hooks:
|
||||
hook(change)
|
||||
run_hooks(pre_hooks, context, change)
|
||||
if ("actionhidden" in change or "suppressed" in change) and "suppressed" not in settings["ignored"]: # if event is hidden using suppression
|
||||
context.event = "suppressed"
|
||||
discord_message: Optional[DiscordMessage] = default_message("suppressed", formatter_hooks)(context, change)
|
||||
|
@ -267,7 +266,13 @@ def rc_processor(change, changed_categories):
|
|||
if identification_string in settings["ignored"]:
|
||||
return
|
||||
context.event = identification_string
|
||||
discord_message: Optional[DiscordMessage] = default_message(identification_string, formatter_hooks)(context, change)
|
||||
try:
|
||||
discord_message: Optional[DiscordMessage] = default_message(identification_string, formatter_hooks)(context, change)
|
||||
except:
|
||||
if settings.get("error_tolerance", 1) > 0:
|
||||
discord_message: Optional[DiscordMessage] = None # It's handled by send_to_discord, we still want other code to run
|
||||
else:
|
||||
raise
|
||||
if identification_string in ("delete/delete", "delete/delete_redir") and AUTO_SUPPRESSION_ENABLED: # TODO Move it into a hook?
|
||||
delete_messages(dict(pageid=change.get("pageid")))
|
||||
elif identification_string == "delete/event" and AUTO_SUPPRESSION_ENABLED:
|
||||
|
@ -284,8 +289,7 @@ def rc_processor(change, changed_categories):
|
|||
else:
|
||||
for revid in logparams.get("ids", []):
|
||||
delete_messages(dict(revid=revid))
|
||||
for hook in post_hooks:
|
||||
hook(discord_message, metadata)
|
||||
run_hooks(post_hooks, discord_message, metadata, context)
|
||||
send_to_discord(discord_message, metadata)
|
||||
|
||||
|
||||
|
@ -294,9 +298,12 @@ def abuselog_processing(entry):
|
|||
if action in settings["ignored"]:
|
||||
return
|
||||
context = Context(settings["appearance"]["mode"], settings["webhookURL"], client)
|
||||
run_hooks(pre_hooks, context, entry)
|
||||
context.event = action
|
||||
discord_message: Optional[DiscordMessage] = default_message(action, formatter_hooks)(context, entry)
|
||||
send_to_discord(discord_message, DiscordMessageMetadata("POST"))
|
||||
metadata = DiscordMessageMetadata("POST")
|
||||
run_hooks(post_hooks, discord_message, metadata, context)
|
||||
send_to_discord(discord_message, metadata)
|
||||
|
||||
|
||||
load_extensions()
|
||||
|
|
Loading…
Reference in a new issue