mirror of
https://gitlab.com/chicken-riders/RcGcDw.git
synced 2025-02-23 00:24:09 +00:00
Fixed #219
This commit is contained in:
parent
02dce0f3ae
commit
a69cbecffd
|
@ -73,7 +73,7 @@ def compact_abuselog(ctx: Context, change: dict):
|
||||||
# abusefilter/modify - AbuseFilter filter modification
|
# abusefilter/modify - AbuseFilter filter modification
|
||||||
|
|
||||||
|
|
||||||
@formatter.embed(event="abuselog/modify")
|
@formatter.embed(event="abusefilter/modify")
|
||||||
def embed_abuselog_modify(ctx: Context, change: dict):
|
def embed_abuselog_modify(ctx: Context, change: dict):
|
||||||
embed = DiscordMessage(ctx.message_type, ctx.event, ctx.webhook_url)
|
embed = DiscordMessage(ctx.message_type, ctx.event, ctx.webhook_url)
|
||||||
embed_helper(ctx, embed, change)
|
embed_helper(ctx, embed, change)
|
||||||
|
@ -84,7 +84,7 @@ def embed_abuselog_modify(ctx: Context, change: dict):
|
||||||
return embed
|
return embed
|
||||||
|
|
||||||
|
|
||||||
@formatter.compact(event="abuselog/modify")
|
@formatter.compact(event="abusefilter/modify")
|
||||||
def compact_abuselog_modify(ctx: Context, change: dict):
|
def compact_abuselog_modify(ctx: Context, change: dict):
|
||||||
author, author_url = compact_author(ctx, change)
|
author, author_url = compact_author(ctx, change)
|
||||||
link = clean_link(create_article_path(
|
link = clean_link(create_article_path(
|
||||||
|
@ -103,7 +103,7 @@ def compact_abuselog_modify(ctx: Context, change: dict):
|
||||||
# abusefilter/create - AbuseFilter filter creation
|
# abusefilter/create - AbuseFilter filter creation
|
||||||
|
|
||||||
|
|
||||||
@formatter.embed(event="abuselog/create")
|
@formatter.embed(event="abusefilter/create")
|
||||||
def embed_abuselog_create(ctx: Context, change: dict):
|
def embed_abuselog_create(ctx: Context, change: dict):
|
||||||
embed = DiscordMessage(ctx.message_type, ctx.event, ctx.webhook_url)
|
embed = DiscordMessage(ctx.message_type, ctx.event, ctx.webhook_url)
|
||||||
embed_helper(ctx, embed, change)
|
embed_helper(ctx, embed, change)
|
||||||
|
@ -111,7 +111,7 @@ def embed_abuselog_create(ctx: Context, change: dict):
|
||||||
embed["title"] = _("Created abuse filter number {number}").format(number=change["logparams"]['newId'])
|
embed["title"] = _("Created abuse filter number {number}").format(number=change["logparams"]['newId'])
|
||||||
return embed
|
return embed
|
||||||
|
|
||||||
@formatter.compact(event="abuselog/create")
|
@formatter.compact(event="abusefilter/create")
|
||||||
def compact_abuselog_create(ctx: Context, change: dict):
|
def compact_abuselog_create(ctx: Context, change: dict):
|
||||||
author, author_url = compact_author(ctx, change)
|
author, author_url = compact_author(ctx, change)
|
||||||
link = clean_link(
|
link = clean_link(
|
||||||
|
|
|
@ -16,20 +16,21 @@
|
||||||
# along with RcGcDw. If not, see <http://www.gnu.org/licenses/>.
|
# along with RcGcDw. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import logging, schedule, requests
|
import logging, schedule, requests
|
||||||
from typing import Dict, Any
|
from typing import Dict, Any, Optional
|
||||||
|
|
||||||
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, run_hooks
|
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, DiscordMessage
|
||||||
from src.session import session
|
from src.session import session
|
||||||
from src.exceptions import ArticleCommentError
|
from src.exceptions import ArticleCommentError, NoFormatter
|
||||||
from src.api.util import default_message
|
from src.api.util import default_message
|
||||||
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
|
||||||
|
|
||||||
|
|
||||||
# Create a custom logger
|
# Create a custom logger
|
||||||
|
|
||||||
discussion_logger = logging.getLogger("rcgcdw.disc")
|
discussion_logger = logging.getLogger("rcgcdw.disc")
|
||||||
|
@ -122,7 +123,15 @@ def parse_discussion_post(post, comment_pages):
|
||||||
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)
|
||||||
run_hooks(pre_hooks, context, post)
|
run_hooks(pre_hooks, context, post)
|
||||||
discord_message = default_message(event_type, formatter_hooks)(context, post)
|
try:
|
||||||
|
discord_message = default_message(event_type, formatter_hooks)(context, post)
|
||||||
|
except NoFormatter:
|
||||||
|
return
|
||||||
|
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
|
||||||
metadata = DiscordMessageMetadata("POST")
|
metadata = DiscordMessageMetadata("POST")
|
||||||
run_hooks(post_hooks, discord_message, metadata, context, post)
|
run_hooks(post_hooks, discord_message, metadata, context, post)
|
||||||
send_to_discord(discord_message, metadata)
|
send_to_discord(discord_message, metadata)
|
||||||
|
|
|
@ -32,6 +32,10 @@ class ServerError(Exception):
|
||||||
"""Exception for when a request fails because of Server error"""
|
"""Exception for when a request fails because of Server error"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
class NoFormatter(Exception):
|
||||||
|
"""Exception to throw when there are no formatters"""
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
class ClientError(Exception):
|
class ClientError(Exception):
|
||||||
"""Exception for when a request failes because of Client error"""
|
"""Exception for when a request failes because of Client error"""
|
||||||
|
|
|
@ -33,7 +33,7 @@ from src.misc import add_to_dict, datafile, WIKI_API_PATH, LinkParser, run_hooks
|
||||||
from src.api.util import create_article_path, default_message
|
from src.api.util import create_article_path, default_message
|
||||||
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
|
||||||
from src.exceptions import MWError, ServerError, MediaWikiError, BadRequest, ClientError
|
from src.exceptions import MWError, ServerError, MediaWikiError, BadRequest, ClientError, NoFormatter
|
||||||
from src.i18n import rcgcdw
|
from src.i18n import rcgcdw
|
||||||
from src.wiki import Wiki
|
from src.wiki import Wiki
|
||||||
|
|
||||||
|
@ -75,7 +75,7 @@ if settings["limitrefetch"] != -1 and os.path.exists("lastchange.txt") is True:
|
||||||
|
|
||||||
def no_formatter(ctx: Context, change: dict) -> None:
|
def no_formatter(ctx: Context, change: dict) -> None:
|
||||||
logger.warning(f"There is no formatter specified for {ctx.event}! Ignoring event.")
|
logger.warning(f"There is no formatter specified for {ctx.event}! Ignoring event.")
|
||||||
return
|
raise NoFormatter
|
||||||
|
|
||||||
formatter_hooks["no_formatter"] = no_formatter
|
formatter_hooks["no_formatter"] = no_formatter
|
||||||
|
|
||||||
|
@ -205,7 +205,16 @@ def rc_processor(change, changed_categories):
|
||||||
run_hooks(pre_hooks, context, 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
|
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)
|
try:
|
||||||
|
discord_message: Optional[DiscordMessage] = default_message("suppressed", formatter_hooks)(context, change)
|
||||||
|
except NoFormatter:
|
||||||
|
return
|
||||||
|
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
|
||||||
else:
|
else:
|
||||||
if "commenthidden" not in change:
|
if "commenthidden" not in change:
|
||||||
LinkParser.feed(change.get("parsedcomment", ""))
|
LinkParser.feed(change.get("parsedcomment", ""))
|
||||||
|
@ -267,7 +276,15 @@ def abuselog_processing(entry):
|
||||||
context = Context(settings["appearance"]["mode"], settings["webhookURL"], client)
|
context = Context(settings["appearance"]["mode"], settings["webhookURL"], client)
|
||||||
run_hooks(pre_hooks, context, entry)
|
run_hooks(pre_hooks, context, entry)
|
||||||
context.event = action
|
context.event = action
|
||||||
discord_message: Optional[DiscordMessage] = default_message(action, formatter_hooks)(context, entry)
|
try:
|
||||||
|
discord_message: Optional[DiscordMessage] = default_message(action, formatter_hooks)(context, entry)
|
||||||
|
except NoFormatter:
|
||||||
|
return
|
||||||
|
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
|
||||||
metadata = DiscordMessageMetadata("POST")
|
metadata = DiscordMessageMetadata("POST")
|
||||||
run_hooks(post_hooks, discord_message, metadata, context, entry)
|
run_hooks(post_hooks, discord_message, metadata, context, entry)
|
||||||
discord_message.finish_embed()
|
discord_message.finish_embed()
|
||||||
|
|
Loading…
Reference in a new issue