Commits on Source (56)
-
1135fa7c
-
4421d50a
-
885e18ad
-
When orange blocks us, the respone status code is a 403, but the content type is not json. So using `.json()` on the response crash.
3f4ede9e -
... that is already used by browsers to avoid nasty issues Sometimes browser function "is_here" could be confused if one page is an ancestor of another one, as an "isinstance" with the Parent class will also match with the children class
c296bf31 -
if we are already inside the accounts or ownerlist pages
582f18fa -
My guess is that SSMOUV is probably related to "Sans Mouvement" accounts. (ie accounts without any activity in the last years)
1f1f8f0a -
... that could appear when going on some lifeinsurances accounts When we are trying to go on some lifeinsurances account pages, sometimes we get instead an intermediary blank page with a form. It looks like that a javascript browser fingerprint has to be done to fill the form and submit it. Otherwise, when we submit without it or a wrong value, we are redirected back to the home page. I'm not completely sure why it is sometimes needed, and if ever we would go to the right page if ever the fingerprint was correct. I guess that might be the case for empty or special state life insurances. Anyway, for the moment, we just properly detect that we arrived on this page and five up for this life insurance account.
2321f068 -
HSBC displaying SCPI accounts like this: SCPI EP - PP XXXXXXXXX.EUR SCPI ER5 - PP XXXXXXXXX.EUR The id (XXXXXXXXX.EUR) can be shared among SCPI accounts, to distinguish them , now id look like this: 'XXXXXXXXX.SCPIEPPP' instead of 'XXXXXXXX.SCPI' 'XXXXXXXXX.SCPIER5PP' instead of 'XXXXXXXX.SCPI'
0a3efd1e -
c04b81a3
-
The page is very similar to the loans page on the arkeabanqueprivee pro website, but it's a list instead of a table, so all xpaths are different. Like on arkeabanqueprivee pro, loans have no number and no ID on the website; only a label which isn't unique. We have no choice but to use the "index" which is an unstable JS generated value.
adb9648f -
-Account label needed to be fixed in order for iter_investment to work again
6db56f4e -
6f1b8f5b
-
2891a1bb
-
Only payment accounts are returned by the site when visiting through the MCI access. So is_here condition of AccountsPage is updated accordingly.
870943d1 -
For when the website, scraped in the module, blocks the machine scraping it.
4ce2e691 -
11fa0ce5
-
904e3a85
-
65d13e19
-
5c2778a4
-
The url to search documents based on the accounts has changed on the bnp website.
0b07fb6a -
The output from stderr was not properly handled on error leading to a TypeError exception
decf36f9 -
The page is currently not available. Instead of tagging all connections as websiteUnavailable we log a warning and fetch the rest of the documents.
90937434 -
The login form has changed a bit and another step is required after submitting the login form.
cc906ae4 -
Avoid error when using random.choices, which is Py3 only.
85e193e4 -
491fbc25
-
7c0b281b
-
4b926a31
-
-Change klass in LoanPage : Account > Loan -Add the following Loan obj_ when available : - name - total_amount - account_label - rate - maturity_date - next_payment_amount - next_payment_date
266e7646 -
Sometimes after login process the server redirect to an url ('/fr/systeme/page-indisponible') which belong to urls used to indicate that the password has expired, even when it doesn't. In such cases BrowserPasswordExpired is raised inconsistently to users. Getting rid of this url fix that problem and the erratic redirection of bnp doesn't affects users pathways since it occurs after the login.
abeaf185 -
Some client are receiving the TLS_CLIENT_CERTIFICATE auth method at first. We can ask for a fallback auth method which should be password. Seen on palatine
94a95398 -
The old link returns 404. If we follow the investment's link, we arrive on a new page. It's filled using javascript and API calls, which we can replicate.
7d573f7c -
The URL has changed on Bourse Direct but not on ING.
86b4b75c -
The old URL redirects to the new page of the first account, so every account had the same investments as the first account.
503da50f -
The form can be passed by clicking "No".
802f2498 -
88688335
-
2e4f7eca
-
f555efdc
-
Put message in logger when token request fails to ease up log searches.
c249cd7a -
Access can be blocked and user must ask new credentials. Because of bank server sensitivity we musn't try a new sync or access will be blocked again; so it is actually better to treat it as BrowserIncorrectPassword. This has been discussed directly with the bank.
f964b793 -
Removed hardcoded unitvalue and quantity for euro funds Added original_currency
95a767e6 -
Previously a connection was set to wrongpass everytime there was an error even if it wasn't a real wrongpass (e.g. website unavailable)
5043f7ec -
For some accounts, the form to go to the invests page redirects to a 404. There is no detail available on the website for these accounts.
3d25dcbe -
If the login lenght exceeds 32 characters, Bred website will redirect to main page, without login user in and without error messages, which lead to raise 403 error when accessing users accounts.
4ffef8ba -
Sometimes, without logical reasons, we receive a broken login page. So detect this broken page as a BrowserUnavailable and attempt at least one retry.
c96c79aa -
The extracting of the Amundi AMF code was broken as we were not trying to get it from the right page. But, as it looks like that the ISIN code is available, let's get that directly instead of the AMF Code.
9314a85d -
Also set the language when calling profile first before already having a cookie that had the correct language set by a call to accounts page. At the same time, to be future proof, add the xpath selectors for the us language version of the page.
7a57c026 -
The s2e website is stateful, and a lot of different content can match the same url, so it is safer to always go back to the inital page. By only using a go, we can be sure that the good page will be loaded in the correct state before trying to use any function of the page.
db2e9a74 -
Sometimes, instead of the expected content, an empty page with just a META redirection is returned when it looks like that the user was disconnected. Ex.: <!DOCTYPE html><html><head><META http-equiv="refresh" content="0; URL=/portal/salarie-axa/operations/consulteroperations"></head><body></body></html> A further request would encounter 302 redirections to the login page. In such a case, raise a "Loggedout" exception as previously it was just silently ignored and considered as a normal page. Note: check_disconnected as to be called manually in iter_history, as a simple "open" (compared to a "location") will not call the "on_load" function of the page.
2a33e0fc -
show_more() is called to select the number of items per page. It will return False if the selector was not found, and True if it was found and successfully changed to the request value. But, currently, if we found the selector but it was already on the correct value, we would return nothing, that would be equivalent to False for the "if" test that is used in the browser.py. This issue associated with a previous issue when "stay_or_go" was used, led to having the history entries returned only for a single time, for single account, but not for subsequent calls or different accounts.
4a5bfd23 -
As the website is stateful, after being on a "History list", if we do a request for the details of one entry of the list, we will have to send the "going back" request to have the "History list" page again. But, it is not needed to "go back" to see other "details" pages. So, this change improve the performance by only going back once before trying to go to the next page of a History list page. In addition, this might fix some nasty issues as the website is "unstable" and could easily have timeout issues. And in that case, missing any step could easily break next requests with strange errors.
2b1fc9e0 -
On the website, the user is asked to complete their profile. On the API, we have no error until we try to fetch the account's details. At this point we get an error 412 without much more info.
b00b7492 -
GBX is ambiguous, it's the symbol for both GB Pence and the crypto-currency GoByte. We convert them to GBP. The unitprice is in the original currency of the stock so we need to handle original_unitprice when applicable.
49b381cb -
The CleanDecimal is unnecessary when we're already fetching numbers, and it could result in unwanted conversions in scientific value, such as 0.0001 becoming 1E-04.
bb70f725 -
The valuation is already in euro, not in GB pence, so it should not be converted.
94cd97c4 -
1e346651