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,
|
"show_updown_messages": true,
|
||||||
"ignored_namespaces": [],
|
"ignored_namespaces": [],
|
||||||
"extensions_dir": "extensions",
|
"extensions_dir": "extensions",
|
||||||
|
"error_tolerance": 1,
|
||||||
"overview": false,
|
"overview": false,
|
||||||
"overview_time": "00:00",
|
"overview_time": "00:00",
|
||||||
"send_empty_overview": false,
|
"send_empty_overview": false,
|
||||||
|
|
|
@ -21,7 +21,7 @@ from typing import Dict, Any
|
||||||
from src.configloader import settings
|
from src.configloader import settings
|
||||||
|
|
||||||
#from src.discussion_formatters import embed_formatter, compact_formatter
|
#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.queue import messagequeue, send_to_discord
|
||||||
from src.discord.message import DiscordMessageMetadata
|
from src.discord.message import DiscordMessageMetadata
|
||||||
from src.session import session
|
from src.session import session
|
||||||
|
@ -121,8 +121,11 @@ def parse_discussion_post(post, comment_pages):
|
||||||
raise ArticleCommentError
|
raise ArticleCommentError
|
||||||
event_type = f"discussion/{post_type.lower()}"
|
event_type = f"discussion/{post_type.lower()}"
|
||||||
context.set_comment_page(comment_page)
|
context.set_comment_page(comment_page)
|
||||||
message = default_message(event_type, formatter_hooks)(context, post)
|
run_hooks(pre_hooks, context, post)
|
||||||
send_to_discord(message, meta=DiscordMessageMetadata("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):
|
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"))
|
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):
|
def profile_field_name(name, embed):
|
||||||
try:
|
try:
|
||||||
return profile_fields[name]
|
return profile_fields[name]
|
||||||
|
|
|
@ -29,7 +29,7 @@ import src.api.client
|
||||||
from src.api.context import Context
|
from src.api.context import Context
|
||||||
from src.api.hooks import formatter_hooks, pre_hooks, post_hooks
|
from src.api.hooks import formatter_hooks, pre_hooks, post_hooks
|
||||||
from src.configloader import settings
|
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.api.util import create_article_path, default_message, sanitize_to_markdown
|
||||||
from src.discord.queue import send_to_discord
|
from src.discord.queue import send_to_discord
|
||||||
from src.discord.message import DiscordMessage, DiscordMessageMetadata
|
from src.discord.message import DiscordMessage, DiscordMessageMetadata
|
||||||
|
@ -235,8 +235,7 @@ def rc_processor(change, changed_categories):
|
||||||
page_id=change.get("pageid", None))
|
page_id=change.get("pageid", None))
|
||||||
logger.debug(change)
|
logger.debug(change)
|
||||||
context = Context(settings["appearance"]["mode"], settings["webhookURL"], client)
|
context = Context(settings["appearance"]["mode"], settings["webhookURL"], client)
|
||||||
for hook in pre_hooks:
|
run_hooks(pre_hooks, context, change)
|
||||||
hook(change)
|
|
||||||
if ("actionhidden" in change or "suppressed" in change) and "suppressed" not in settings["ignored"]: # if event is hidden using suppression
|
if ("actionhidden" in change or "suppressed" in change) and "suppressed" not in settings["ignored"]: # if event is hidden using suppression
|
||||||
context.event = "suppressed"
|
context.event = "suppressed"
|
||||||
discord_message: Optional[DiscordMessage] = default_message("suppressed", formatter_hooks)(context, change)
|
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"]:
|
if identification_string in settings["ignored"]:
|
||||||
return
|
return
|
||||||
context.event = identification_string
|
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?
|
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")))
|
delete_messages(dict(pageid=change.get("pageid")))
|
||||||
elif identification_string == "delete/event" and AUTO_SUPPRESSION_ENABLED:
|
elif identification_string == "delete/event" and AUTO_SUPPRESSION_ENABLED:
|
||||||
|
@ -284,8 +289,7 @@ def rc_processor(change, changed_categories):
|
||||||
else:
|
else:
|
||||||
for revid in logparams.get("ids", []):
|
for revid in logparams.get("ids", []):
|
||||||
delete_messages(dict(revid=revid))
|
delete_messages(dict(revid=revid))
|
||||||
for hook in post_hooks:
|
run_hooks(post_hooks, discord_message, metadata, context)
|
||||||
hook(discord_message, metadata)
|
|
||||||
send_to_discord(discord_message, metadata)
|
send_to_discord(discord_message, metadata)
|
||||||
|
|
||||||
|
|
||||||
|
@ -294,9 +298,12 @@ def abuselog_processing(entry):
|
||||||
if action in settings["ignored"]:
|
if action in settings["ignored"]:
|
||||||
return
|
return
|
||||||
context = Context(settings["appearance"]["mode"], settings["webhookURL"], client)
|
context = Context(settings["appearance"]["mode"], settings["webhookURL"], client)
|
||||||
|
run_hooks(pre_hooks, context, entry)
|
||||||
context.event = action
|
context.event = action
|
||||||
discord_message: Optional[DiscordMessage] = default_message(action, formatter_hooks)(context, entry)
|
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()
|
load_extensions()
|
||||||
|
|
Loading…
Reference in a new issue