Commit graph

301 commits

Author SHA1 Message Date
Ethan Dalool
412cd21189 Rewrite function _parse_url to return tuple.
Every usage of this function was calling split on the output anyway.
2020-03-23 20:46:41 -07:00
Ethan Dalool
e7a8aeda01 De-nest multi-line dicts from function calls. 2020-03-23 20:46:40 -07:00
Ethan Dalool
7384ed9caa Add NODE_TYPE_ constants instead of using magic numbers. 2020-03-23 20:46:35 -07:00
Ethan Dalool
5c2aa09db4 Let tenacity.retry look for our EAGAIN instead of plain error. 2020-03-23 20:43:21 -07:00
Ethan Dalool
13595f724a Add argument params to _api_request for custom parameters. 2020-03-23 19:26:24 -07:00
Ethan Dalool
634a977a99 More core _api_request to top of method list. 2020-03-23 19:24:44 -07:00
Ethan Dalool
62871e3240 Add separate classes for API exceptions, raise error_for_code().
This makes the caller's life easier. They can catch
mega.errors.EFAILED instead of catching mega.errors.RequestError
and checking the message attribute.
Because these classes inherit from RequestError, and they have a code
and message attribute, anyone currently catching RequestError should
not have any backwards compatibility issues.
Furthermore, this fixes an existing issue in the codebase where
RequestError is raised with a custom string message, which was causing
IndexError since that message wasn't in CODE_TO_DESCRIPTIONS.
2020-03-23 18:54:29 -07:00
Ethan Dalool
97164fc52c Rewrite readme as markdown. 2020-03-23 12:35:52 -07:00
Ethan Dalool
d61e81d5d2 Indicate fork status on readme. 2020-03-23 12:29:41 -07:00
Richard O'Dwyer
fa6d1149d4 linting 2020-03-23 19:00:06 +00:00
richardARPANET
6f3f5371ce Merge branch 'fixlogin' into 'master'
Fix RSA Invalid Condition on login

Closes #10

See merge request richardARPANET/mega.py!2
2020-03-23 18:55:03 +00:00
Ethan Dalool
059f819c9c Use """ instead of ''' for docstrings. 2020-03-23 11:43:51 -07:00
Ethan Dalool
7c53d5e42d Update HISTORY.rst. 2020-03-09 17:06:27 -07:00
Ethan Dalool
1e96d9b435 Fix v1 login by calculating public exp instead of hardcode 257.
The code was using a hardcoded 257 as the RSA public exponent, but
it was raising RSA Invalid Construct. From reading MEGA's webclient js
I found that the public exponent sometimes defaults to 257, but in
other cases is calculated from a modular inverse on the private
exponent and phi=p-1*q-1.
2020-03-09 15:13:12 -07:00
Ethan Dalool
f1047898e8 Deconstruct & comment this private_key MPI parser. 2020-03-09 15:08:24 -07:00
Ethan Dalool
2ba447ebad Remove self. from self.rsa_private_key, not used elsewhere.
This variable is not used anywhere outside this function,
so it does not need to be an instance attribute.
2020-03-09 15:04:27 -07:00
Ethan Dalool
ebca1d4826 Add extended_gcd and modular_inverse functions. 2020-03-09 14:49:12 -07:00
Richard O'Dwyer
e28bee9439 Back to development: 1.0.7 2020-02-03 19:48:10 +00:00
Richard O'Dwyer
fc461b465a Preparing release 1.0.6 2020-02-03 19:46:43 +00:00
Richard O'Dwyer
46cf1c46c6 updates history and ranges reqs 2020-02-03 19:46:25 +00:00
richardARPANET
c9601c5e01 Merge branch 'master' into 'master'
Swap pycrypto to pycryptodome

See merge request richardARPANET/mega.py!1
2020-02-03 19:44:27 +00:00
Midnight
f053a2db1b Swap pycrypto to pycryptodome
Updated the reqs to use pycryptodome, fixed the RSA public exponent issue that was causing the logn failure, as well as general updates to patch up slight changes.
2020-01-24 13:08:04 -05:00
Richard O'Dwyer
dc360ebeec Back to development: 1.0.6 2019-11-18 20:59:20 +00:00
Richard O'Dwyer
2727295a2d Preparing release 1.0.5 2019-11-18 20:58:49 +00:00
Richard O'Dwyer
4d343f1b25 Increase the wait time in between failed API request retries. 2019-11-18 20:58:37 +00:00
Richard O'Dwyer
8888282aff Merge branch 'master' of github.com:richardARPANET/mega.py 2019-11-18 19:05:40 +00:00
Richard O'Dwyer
fa38263dbd Back to development: 1.0.5 2019-11-18 19:04:42 +00:00
Richard O'Dwyer
2ad38621fc Preparing release 1.0.4 2019-11-18 19:04:18 +00:00
Richard O'Dwyer
11a1d21438 Merge branch 'master' of code.richard.do:richardARPANET/mega.py 2019-11-18 19:02:05 +00:00
Richard O'Dwyer
c3b99e222c Increase the wait time in between failed API request retries. 2019-11-18 19:00:37 +00:00
Richard O'Dwyer
6afa4f2132 Back to development: 1.0.4 2019-11-12 09:53:16 +00:00
Richard O'Dwyer
f0ed01f32d Preparing release 1.0.3 2019-11-12 09:52:59 +00:00
Richard
d0b0e6fae9
Merge pull request #4 from richardARPANET/bugfixes
Bugfixes
2019-11-12 09:50:51 +00:00
Richard O'Dwyer
92a86ff439 Fixes download, updated download methods to return downloded path instead of None 2019-11-12 09:49:57 +00:00
richardARPANET
c0916b77bb Add LICENSE 2019-11-12 09:27:39 +00:00
Richard O'Dwyer
e0c5fbdfcc Back to development: 1.0.3 2019-11-07 19:36:53 +00:00
Richard O'Dwyer
71db92a729 Preparing release 1.0.2 2019-11-07 19:36:24 +00:00
Richard O'Dwyer
e83948e971 reverts dep change, fixes login 2019-11-07 19:35:34 +00:00
Richard O'Dwyer
4491fb7807 Back to development: 1.0.2 2019-11-06 23:17:18 +00:00
Richard O'Dwyer
ae70a77e44 Preparing release 1.0.1 2019-11-06 23:17:03 +00:00
Richard
5888ce13fc
Merge pull request #3 from richardARPANET/misc-improvements
Misc improvements
2019-11-06 23:16:01 +00:00
Richard O'Dwyer
54ba916cb9 docs 2019-11-06 23:12:23 +00:00
Richard O'Dwyer
0cf5573fc5 use pycryptodome instead of pycrypto 2019-11-06 23:09:24 +00:00
Richard O'Dwyer
191a73a4bd Merge remote-tracking branch 'github/master' into misc-improvements 2019-11-06 23:07:39 +00:00
Richard O'Dwyer
13cb3b565e testing 2019-11-06 20:00:09 +00:00
Richard O'Dwyer
b87694e72d When a request fails due to EAGAIN response, retry with exp backoff up to 20 seconds. 2019-11-05 21:21:53 +00:00
Richard O'Dwyer
e9985e7831 adds logging 2019-11-04 23:42:44 +00:00
Richard
5197766e78
Fixes typo 2019-11-01 09:57:13 +00:00
Richard O'Dwyer
f26421658d removes old text from readme, no longer makes sense 2019-10-31 22:42:00 +00:00
Richard O'Dwyer
6ad0f231c9 Back to development: 1.0.1 2019-10-31 22:38:20 +00:00