diff --git a/extensions/__init__.py b/extensions/__init__.py index 0c08726..fd83a9a 100644 --- a/extensions/__init__.py +++ b/extensions/__init__.py @@ -13,4 +13,4 @@ # You should have received a copy of the GNU General Public License # along with RcGcDw. If not, see . -import base +import extensions.base \ No newline at end of file diff --git a/extensions/base/__init__.py b/extensions/base/__init__.py index ee271dd..d2fffcb 100644 --- a/extensions/base/__init__.py +++ b/extensions/base/__init__.py @@ -13,4 +13,4 @@ # You should have received a copy of the GNU General Public License # along with RcGcDw. If not, see . -import mediawiki +import extensions.base.mediawiki diff --git a/extensions/base/mediawiki.py b/extensions/base/mediawiki.py index 657ea47..fcfa9af 100644 --- a/extensions/base/mediawiki.py +++ b/extensions/base/mediawiki.py @@ -20,7 +20,7 @@ from src.api import formatter from src.i18n import rc_formatters from src.api.client import Client, client from src.configloader import settings - +from src.exceptions import * _ = rc_formatters.gettext @@ -59,16 +59,19 @@ class base(): minor=_("m") if action == "edit" and "minor" in change else "", bot=_('b') if "bot" in change else "", space=" " if "bot" in change or (action == "edit" and "minor" in change) or action == "new" else "") if settings["appearance"]["embed"]["show_edit_changes"]: - if action == "new": - changed_content = safe_read(recent_changes._safe_request( - "{wiki}?action=compare&format=json&fromtext=&torev={diff}&topst=1&prop=diff".format( - wiki=ctx.client.WIKI_API_PATH, diff=change["revid"] - )), "compare", "*") - else: - changed_content = safe_read(recent_changes._safe_request( - "{wiki}?action=compare&format=json&fromrev={oldrev}&torev={diff}&topst=1&prop=diff".format( - wiki=ctx.client.WIKI_API_PATH, diff=change["revid"], oldrev=change["old_revid"] - )), "compare", "*") + try: + if action == "new": + changed_content = ctx.client.make_api_request( + "{wiki}?action=compare&format=json&fromtext=&torev={diff}&topst=1&prop=diff".format( + wiki=ctx.client.WIKI_API_PATH, diff=change["revid"] + ), "compare", "*") + else: + changed_content = ctx.client.make_api_request( + "{wiki}?action=compare&format=json&fromrev={oldrev}&torev={diff}&topst=1&prop=diff".format( + wiki=ctx.client.WIKI_API_PATH, diff=change["revid"], oldrev=change["old_revid"] + ), "compare", "*") + except (ServerError): + changed_content = None if changed_content: EditDiff = ctx.client.content_parser() EditDiff.feed(changed_content) diff --git a/src/api/client.py b/src/api/client.py index 8e9d0f1..9f1ea6d 100644 --- a/src/api/client.py +++ b/src/api/client.py @@ -61,5 +61,4 @@ class Client: return self.__recent_changes.api_request(params, *json_path, timeout, allow_redirects) -client = Client() -client.make_api_request() \ No newline at end of file +client = Client() \ No newline at end of file diff --git a/src/api/formatter.py b/src/api/formatter.py index 84a8033..72df39c 100644 --- a/src/api/formatter.py +++ b/src/api/formatter.py @@ -13,7 +13,7 @@ # You should have received a copy of the GNU General Public License # along with RcGcDw. If not, see . -from src.rcgcdw import formatter_hooks +import src.rcgcdw from src.configloader import settings from src.exceptions import FormatterBreaksAPISpec from src.discord.message import DiscordMessage @@ -35,7 +35,7 @@ def _register_formatter(func: Callable[[dict], DiscordMessage], kwargs: dict[str if action_type is None: raise FormatterBreaksAPISpec("event type") if settings["appearance"]["mode"] == formatter_type: - formatter_hooks[action_type] = func + src.rcgcdw.formatter_hooks[action_type] = func def embed(**kwargs): diff --git a/src/rcgcdw.py b/src/rcgcdw.py index 8792d3d..2a67041 100644 --- a/src/rcgcdw.py +++ b/src/rcgcdw.py @@ -47,9 +47,10 @@ logger = logging.getLogger("rcgcdw") logger.debug("Current settings: {settings}".format(settings=settings)) from src.migrations import * # migrations after logging try: - import exceptions + import extensions except ImportError: logger.critical("No extensions module found. What's going on?") + raise sys.exit(1) storage = datafile