Skip to content

Commit 003a702

Browse files
authored
Merge pull request #40 from mmarquezs/develop
Version 1.0.7 that adds new exceptions. Thanks to @oribafi
2 parents 643893d + 900f15b commit 003a702

File tree

5 files changed

+353
-14
lines changed

5 files changed

+353
-14
lines changed

myjdapi/__init__.py

+37-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,37 @@
1-
from .myjdapi import Myjdapi
2-
__version__ = '1.0.6'
1+
from .myjdapi import Myjdapi
2+
from .exception import (
3+
MYJDException,
4+
MYJDConnectionException,
5+
MYJDDeviceNotFoundException,
6+
MYJDDecodeException,
7+
MYJDApiException,
8+
MYJDApiCommandNotFoundException,
9+
MYJDApiInterfaceNotFoundException,
10+
MYJDAuthFailedException,
11+
MYJDBadParametersException,
12+
MYJDBadRequestException,
13+
MYJDChallengeFailedException,
14+
MYJDEmailForbiddenException,
15+
MYJDEmailInvalidException,
16+
MYJDErrorEmailNotConfirmedException,
17+
MYJDFailedException,
18+
MYJDFileNotFoundException,
19+
MYJDInternalServerErrorException,
20+
MYJDMaintenanceException,
21+
MYJDMethodForbiddenException,
22+
MYJDOfflineException,
23+
MYJDOutdatedException,
24+
MYJDOverloadException,
25+
MYJDSessionException,
26+
MYJDStorageAlreadyExistsException,
27+
MYJDStorageInvalidKeyException,
28+
MYJDStorageInvalidStorageIdException,
29+
MYJDStorageKeyNotFoundException,
30+
MYJDStorageLimitReachedException,
31+
MYJDStorageNotFoundException,
32+
MYJDTokenInvalidException,
33+
MYJDTooManyRequestsException,
34+
MYJDUnknownException,
35+
)
36+
37+
__version__ = "1.0.7"

myjdapi/const.py

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
"""Constants of the MyJDownloader API."""
2+
3+
# API Documentation: https://my.jdownloader.org/developers
4+
5+
# MyJdownloader exception source
6+
EXCEPTION_MYJD = "MYJD"
7+
EXCEPTION_DEVICE = "DEVICE"
8+
9+
# MyJdownloader exception type
10+
EXCEPTION_API_COMMAND_NOT_FOUND = "API_COMMAND_NOT_FOUND"
11+
EXCEPTION_API_INTERFACE_NOT_FOUND = "API_INTERFACE_NOT_FOUND"
12+
EXCEPTION_AUTH_FAILED = "AUTH_FAILED"
13+
EXCEPTION_BAD_PARAMETERS = "BAD_PARAMETERS"
14+
EXCEPTION_BAD_REQUEST = "BAD_REQUEST"
15+
EXCEPTION_CHALLENGE_FAILED = "CHALLENGE_FAILED"
16+
EXCEPTION_EMAIL_FORBIDDEN = "EMAIL_FORBIDDEN"
17+
EXCEPTION_EMAIL_INVALID = "EMAIL_INVALID"
18+
EXCEPTION_ERROR_EMAIL_NOT_CONFIRMED = "ERROR_EMAIL_NOT_CONFIRMED"
19+
EXCEPTION_FAILED = "FAILED"
20+
EXCEPTION_FILE_NOT_FOUND = "FILE_NOT_FOUND"
21+
EXCEPTION_INTERNAL_SERVER_ERROR = "INTERNAL_SERVER_ERROR"
22+
EXCEPTION_MAINTENANCE = "MAINTENANCE"
23+
EXCEPTION_METHOD_FORBIDDEN = "METHOD_FORBIDDEN"
24+
EXCEPTION_OFFLINE = "OFFLINE"
25+
EXCEPTION_OUTDATED = "OUTDATED"
26+
EXCEPTION_OVERLOAD = "OVERLOAD"
27+
EXCEPTION_SESSION = "SESSION"
28+
EXCEPTION_STORAGE_ALREADY_EXISTS = "STORAGE_ALREADY_EXISTS"
29+
EXCEPTION_STORAGE_INVALID_KEY = "STORAGE_INVALID_KEY"
30+
EXCEPTION_STORAGE_INVALID_STORAGEID = "STORAGE_INVALID_STORAGEID"
31+
EXCEPTION_STORAGE_KEY_NOT_FOUND = "STORAGE_KEY_NOT_FOUND"
32+
EXCEPTION_STORAGE_LIMIT_REACHED = "STORAGE_LIMIT_REACHED"
33+
EXCEPTION_STORAGE_NOT_FOUND = "STORAGE_NOT_FOUND"
34+
EXCEPTION_TOKEN_INVALID = "TOKEN_INVALID"
35+
EXCEPTION_TOO_MANY_REQUESTS = "TOO_MANY_REQUESTS"
36+
EXCEPTION_UNKNOWN = "UNKNOWN"

myjdapi/exception.py

+266
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,266 @@
1+
"""Exceptions of the MyJDownloader API."""
2+
3+
from .const import (
4+
EXCEPTION_API_COMMAND_NOT_FOUND,
5+
EXCEPTION_API_INTERFACE_NOT_FOUND,
6+
EXCEPTION_AUTH_FAILED,
7+
EXCEPTION_BAD_PARAMETERS,
8+
EXCEPTION_BAD_REQUEST,
9+
EXCEPTION_CHALLENGE_FAILED,
10+
EXCEPTION_EMAIL_FORBIDDEN,
11+
EXCEPTION_EMAIL_INVALID,
12+
EXCEPTION_ERROR_EMAIL_NOT_CONFIRMED,
13+
EXCEPTION_FAILED,
14+
EXCEPTION_FILE_NOT_FOUND,
15+
EXCEPTION_INTERNAL_SERVER_ERROR,
16+
EXCEPTION_MAINTENANCE,
17+
EXCEPTION_METHOD_FORBIDDEN,
18+
EXCEPTION_OFFLINE,
19+
EXCEPTION_OUTDATED,
20+
EXCEPTION_OVERLOAD,
21+
EXCEPTION_SESSION,
22+
EXCEPTION_STORAGE_ALREADY_EXISTS,
23+
EXCEPTION_STORAGE_INVALID_KEY,
24+
EXCEPTION_STORAGE_INVALID_STORAGEID,
25+
EXCEPTION_STORAGE_KEY_NOT_FOUND,
26+
EXCEPTION_STORAGE_LIMIT_REACHED,
27+
EXCEPTION_STORAGE_NOT_FOUND,
28+
EXCEPTION_TOKEN_INVALID,
29+
EXCEPTION_TOO_MANY_REQUESTS,
30+
EXCEPTION_UNKNOWN,
31+
)
32+
33+
34+
class MYJDException(BaseException):
35+
"""Base MyJDownloader Exception."""
36+
37+
pass
38+
39+
40+
class MYJDConnectionException(MYJDException):
41+
"""Connection Exception."""
42+
43+
pass
44+
45+
46+
class MYJDDeviceNotFoundException(MYJDException):
47+
"""Device not found Exception."""
48+
49+
pass
50+
51+
52+
class MYJDDecodeException(MYJDException):
53+
"""Decode Exception."""
54+
55+
pass
56+
57+
58+
class MYJDApiException(MYJDException):
59+
"""Base MyJDownloader API Exception."""
60+
61+
@classmethod
62+
def get_exception(
63+
cls, exception_source, exception_type=EXCEPTION_UNKNOWN, *args, **kwargs
64+
):
65+
"""Get exception object from MyJDownloader exception type."""
66+
return EXCEPTION_CLASSES.get(exception_type.upper(), MYJDUnknownException)(
67+
exception_source, *args, **kwargs
68+
)
69+
70+
def __init__(self, exception_source, *args, **kwargs):
71+
"""Initialize MyJDownloader API exception."""
72+
self.source = exception_source.upper()
73+
super(MYJDApiException, self).__init__(*args, **kwargs)
74+
75+
76+
class MYJDApiCommandNotFoundException(MYJDApiException):
77+
"""MyJDownloader command not found API Exception."""
78+
79+
pass
80+
81+
82+
class MYJDApiInterfaceNotFoundException(MYJDApiException):
83+
"""MyJDownloader interface not found API Exception."""
84+
85+
pass
86+
87+
88+
class MYJDAuthFailedException(MYJDApiException):
89+
"""MyJDownloader auth failed API Exception."""
90+
91+
pass
92+
93+
94+
class MYJDBadParametersException(MYJDApiException):
95+
"""MyJDownloader bad parameters API Exception."""
96+
97+
pass
98+
99+
100+
class MYJDBadRequestException(MYJDApiException):
101+
"""MyJDownloader bad request API Exception."""
102+
103+
pass
104+
105+
106+
class MYJDChallengeFailedException(MYJDApiException):
107+
"""MyJDownloader challenge failed API Exception."""
108+
109+
pass
110+
111+
112+
class MYJDEmailForbiddenException(MYJDApiException):
113+
"""MyJDownloader email forbidden API Exception."""
114+
115+
pass
116+
117+
118+
class MYJDEmailInvalidException(MYJDApiException):
119+
"""MyJDownloader email invalid API Exception."""
120+
121+
pass
122+
123+
124+
class MYJDErrorEmailNotConfirmedException(MYJDApiException):
125+
"""MyJDownloader email not confirmed API Exception."""
126+
127+
pass
128+
129+
130+
class MYJDFailedException(MYJDApiException):
131+
"""MyJDownloader failed API Exception."""
132+
133+
pass
134+
135+
136+
class MYJDFileNotFoundException(MYJDApiException):
137+
"""MyJDownloader file not found API Exception."""
138+
139+
pass
140+
141+
142+
class MYJDInternalServerErrorException(MYJDApiException):
143+
"""MyJDownloader internal server error API Exception."""
144+
145+
pass
146+
147+
148+
class MYJDMaintenanceException(MYJDApiException):
149+
"""MyJDownloader maintenance API Exception."""
150+
151+
pass
152+
153+
154+
class MYJDMethodForbiddenException(MYJDApiException):
155+
"""MyJDownloader method forbidden API Exception."""
156+
157+
pass
158+
159+
160+
class MYJDOfflineException(MYJDApiException):
161+
"""MyJDownloader offline API Exception."""
162+
163+
pass
164+
165+
166+
class MYJDOutdatedException(MYJDApiException):
167+
"""MyJDownloader outdated API Exception."""
168+
169+
pass
170+
171+
172+
class MYJDOverloadException(MYJDApiException):
173+
"""MyJDownloader overload API Exception."""
174+
175+
pass
176+
177+
178+
class MYJDSessionException(MYJDApiException):
179+
"""MyJDownloader session API Exception."""
180+
181+
pass
182+
183+
184+
class MYJDStorageAlreadyExistsException(MYJDApiException):
185+
"""MyJDownloader storage already exists API Exception."""
186+
187+
pass
188+
189+
190+
class MYJDStorageInvalidKeyException(MYJDApiException):
191+
"""MyJDownloader storage invalid key API Exception."""
192+
193+
pass
194+
195+
196+
class MYJDStorageInvalidStorageIdException(MYJDApiException):
197+
"""MyJDownloader storage invalid storage id API Exception."""
198+
199+
pass
200+
201+
202+
class MYJDStorageKeyNotFoundException(MYJDApiException):
203+
"""MyJDownloader storage key not found API Exception."""
204+
205+
pass
206+
207+
208+
class MYJDStorageLimitReachedException(MYJDApiException):
209+
"""MyJDownloader storage limit reached API Exception."""
210+
211+
pass
212+
213+
214+
class MYJDStorageNotFoundException(MYJDApiException):
215+
"""MyJDownloader storage not found API Exception."""
216+
217+
pass
218+
219+
220+
class MYJDTokenInvalidException(MYJDApiException):
221+
"""MyJDownloader token invalid API Exception."""
222+
223+
pass
224+
225+
226+
class MYJDTooManyRequestsException(MYJDApiException):
227+
"""MyJDownloader too many request API Exception."""
228+
229+
pass
230+
231+
232+
class MYJDUnknownException(MYJDApiException):
233+
"""MyJDownloader unknown API Exception."""
234+
235+
pass
236+
237+
238+
EXCEPTION_CLASSES = {
239+
EXCEPTION_API_COMMAND_NOT_FOUND: MYJDApiCommandNotFoundException,
240+
EXCEPTION_API_INTERFACE_NOT_FOUND: MYJDApiInterfaceNotFoundException,
241+
EXCEPTION_AUTH_FAILED: MYJDAuthFailedException,
242+
EXCEPTION_BAD_PARAMETERS: MYJDBadParametersException,
243+
EXCEPTION_BAD_REQUEST: MYJDBadRequestException,
244+
EXCEPTION_CHALLENGE_FAILED: MYJDChallengeFailedException,
245+
EXCEPTION_EMAIL_FORBIDDEN: MYJDEmailForbiddenException,
246+
EXCEPTION_EMAIL_INVALID: MYJDEmailInvalidException,
247+
EXCEPTION_ERROR_EMAIL_NOT_CONFIRMED: MYJDErrorEmailNotConfirmedException,
248+
EXCEPTION_FAILED: MYJDFailedException,
249+
EXCEPTION_FILE_NOT_FOUND: MYJDFileNotFoundException,
250+
EXCEPTION_INTERNAL_SERVER_ERROR: MYJDInternalServerErrorException,
251+
EXCEPTION_MAINTENANCE: MYJDMaintenanceException,
252+
EXCEPTION_METHOD_FORBIDDEN: MYJDMethodForbiddenException,
253+
EXCEPTION_OFFLINE: MYJDOfflineException,
254+
EXCEPTION_OUTDATED: MYJDOutdatedException,
255+
EXCEPTION_OVERLOAD: MYJDOverloadException,
256+
EXCEPTION_SESSION: MYJDSessionException,
257+
EXCEPTION_STORAGE_ALREADY_EXISTS: MYJDStorageAlreadyExistsException,
258+
EXCEPTION_STORAGE_INVALID_KEY: MYJDStorageInvalidKeyException,
259+
EXCEPTION_STORAGE_INVALID_STORAGEID: MYJDStorageInvalidStorageIdException,
260+
EXCEPTION_STORAGE_KEY_NOT_FOUND: MYJDStorageKeyNotFoundException,
261+
EXCEPTION_STORAGE_LIMIT_REACHED: MYJDStorageLimitReachedException,
262+
EXCEPTION_STORAGE_NOT_FOUND: MYJDStorageNotFoundException,
263+
EXCEPTION_TOKEN_INVALID: MYJDTokenInvalidException,
264+
EXCEPTION_TOO_MANY_REQUESTS: MYJDTooManyRequestsException,
265+
EXCEPTION_UNKNOWN: MYJDUnknownException,
266+
}

0 commit comments

Comments
 (0)