- Feb 24, 2019
-
-
-
This commit explains in particular how to save the fact that login has succeeded once by using the browser's logged attribute, so that do_login isn't called multiple times afterwards.
-
Romain Bignon authored
-
- Feb 23, 2019
-
-
Romain Bignon authored
This reverts commit ead90ebf.
-
- Feb 05, 2019
-
-
Hex-digest was required for some buggy site fixed since then
-
-
- Jan 23, 2019
-
-
- Jan 06, 2019
-
-
- Jan 05, 2019
-
-
- Dec 21, 2018
-
-
- Apr 15, 2018
-
-
- Mar 03, 2018
-
-
Browser.responses_count is not modified atomically as if there were only one thread, but the AsyncLoad filter will use multiple threads and access it concurrently. As a result, multiple responses were written to the same file. Add a lock to prevent concurrency on the responses_count field.
-
- Feb 18, 2018
-
-
- Feb 11, 2018
-
-
Romain Bignon authored
-
- Sep 21, 2017
-
-
- Aug 30, 2017
-
-
Romain Bignon authored
-
Romain Bignon authored
-
hydrargyrum authored
Some bad sites have links to upper-cased domains, or with explicit port (while it's the default port), which forces URL instances to handle explicitly those cases. Now, the URLs passed to open() are normalized before being used.
-
- Jul 30, 2017
-
-
hydrargyrum authored
This prevents unsuspecting users giving their logs from being impersonated.
-
- Jul 08, 2017
-
-
object.__new__ only takes one argument: the class to construct. It accepts more arguments only if __init__ is not overloaded, but it is overloaded in Abstract*'s parent classes, so don't pass more args. In Python 2, it was just deprecated, in Python 3, it doesn't work.
-
When using dir() to find URL fields, we also checked @properties, which can access other fields that are not defined yet. Exclude them since they probably won't be URLs anyway.
-
Creating a new type on-the-fly prevents from using isinstance, super and more. We can get rid of this by changing the class hierarchy dynamically. Also, the modules should now pass the Ouiboube instance as a keyword-argument to the Browser, so the arguments do not have to be modified between __new__ and __init__.
-
The use of metaclass is not required for constructing the dict of URLs. Plus, it prevents changing the class hierarchy at runtime, which could be an improvement for AbstractBrowser.
-
Romain Bignon authored
-
-
This reverts commit d0a2a6bbe3054a4cb34cf8d5b0bac7e93ac3d509.
-
- Jun 19, 2017
-
-
hydrargyrum authored
Since those classes store some class-level declared fields (Field and URL) in a dictionary and are not present as attributes, those fields are not present in dir() even though __getattr__ will find them. By reimplementing __dir__, they can be discovered as ordinary attributes.
-
hydrargyrum authored
raise_from wraps the Python3 syntax "raise exc from cause" which is useful when an exception is raised to wrap a lower-level exception.
-
hydrargyrum authored
-
hydrargyrum authored
-
hydrargyrum authored
The syntax for using a metaclass is different in python2 and python3, and there are existing helpers. Add six as a dependency in setup.py.
-
hydrargyrum authored
TODO this is less efficient on python2
-
hydrargyrum authored
Some functions changed return type from python2 to python3 TODO: not everything is tested, a full review is needed + run is needed
-
hydrargyrum authored
-
hydrargyrum authored
With: futurize -w -1 weboob
-
- Jun 17, 2017
-
-
This method can be used to continue the same session in a GUI browser, using contrib/webextension-session-importer for Firefox and Chromium.
-
-