summaryrefslogtreecommitdiff
path: root/game/python-extra/mwclient/errors.py
diff options
context:
space:
mode:
Diffstat (limited to 'game/python-extra/mwclient/errors.py')
-rw-r--r--game/python-extra/mwclient/errors.py114
1 files changed, 114 insertions, 0 deletions
diff --git a/game/python-extra/mwclient/errors.py b/game/python-extra/mwclient/errors.py
new file mode 100644
index 0000000..845cf31
--- /dev/null
+++ b/game/python-extra/mwclient/errors.py
@@ -0,0 +1,114 @@
+class MwClientError(RuntimeError):
+ pass
+
+
+class MediaWikiVersionError(MwClientError):
+ pass
+
+
+class APIDisabledError(MwClientError):
+ pass
+
+
+class MaximumRetriesExceeded(MwClientError):
+ pass
+
+
+class APIError(MwClientError):
+
+ def __init__(self, code, info, kwargs):
+ self.code = code
+ self.info = info
+ super(APIError, self).__init__(code, info, kwargs)
+
+
+class InsufficientPermission(MwClientError):
+ pass
+
+
+class UserBlocked(InsufficientPermission):
+ pass
+
+
+class EditError(MwClientError):
+ pass
+
+
+class ProtectedPageError(EditError, InsufficientPermission):
+
+ def __init__(self, page, code=None, info=None):
+ self.page = page
+ self.code = code
+ self.info = info
+
+ def __str__(self):
+ if self.info is not None:
+ return self.info
+ return 'You do not have the "edit" right.'
+
+
+class FileExists(EditError):
+ pass
+
+
+class LoginError(MwClientError):
+
+ def __init__(self, site, code, info):
+ super(LoginError, self).__init__(
+ site,
+ {'result': code, 'reason': info} # For backwards-compability
+ )
+ self.site = site
+ self.code = code
+ self.info = info
+
+ def __str__(self):
+ return self.info
+
+
+class OAuthAuthorizationError(LoginError):
+ pass
+
+
+class AssertUserFailedError(MwClientError):
+
+ def __init__(self):
+ super(AssertUserFailedError, self).__init__((
+ 'By default, mwclient protects you from accidentally editing '
+ 'without being logged in. If you actually want to edit without '
+ 'logging in, you can set force_login on the Site object to False.'
+ ))
+
+ def __str__(self):
+ return self.args[0]
+
+
+class EmailError(MwClientError):
+ pass
+
+
+class NoSpecifiedEmail(EmailError):
+ pass
+
+
+class NoWriteApi(MwClientError):
+ pass
+
+
+class InvalidResponse(MwClientError):
+
+ def __init__(self, response_text=None):
+ super(InvalidResponse, self).__init__((
+ 'Did not get a valid JSON response from the server. Check that '
+ 'you used the correct hostname. If you did, the server might '
+ 'be wrongly configured or experiencing temporary problems.'),
+ response_text
+ )
+ self.response_text = response_text
+
+ def __str__(self):
+ return self.args[0]
+
+
+class InvalidPageTitle(MwClientError):
+ pass