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