diff --git a/degiroapi/__init__.py b/degiroapi/__init__.py index 82b67b9..c1805b0 100644 --- a/degiroapi/__init__.py +++ b/degiroapi/__init__.py @@ -36,6 +36,10 @@ class DeGiro: client_info = any confirmation_id = any + def __init__(self, username=None, password=None, totp=None): + if username: # Login prompt + self.login_prompt(username=username, password=password, totp=totp) + def login(self, username, password, totp=None): login_payload = { 'username': username, @@ -66,6 +70,15 @@ def login(self, username, password, totp=None): return client_info_response + def login_prompt(self, username=None, password=None, totp=None): + import getpass + + if not username: username = input("Username: ") + if not password: password = getpass.getpass("Password:") + if not totp: totp = getpass.getpass("totp (Leave empty if none):") + + return self.login(username, password, totp or None) + def logout(self): logout_payload = { 'intAccount': self.client_info.account_id, diff --git a/examples/examples.py b/examples/examples.py index 0a52da7..ab0cc9b 100644 --- a/examples/examples.py +++ b/examples/examples.py @@ -9,6 +9,21 @@ degiro = degiroapi.DeGiro() degiro.login("username", "password") +# Equivalent to: +#degiro = degiroapi.DeGiro("username", "password") # prompts for totp (optional) + +# Password can be given dynamically using login_prompt: +# -not necessary to include in .py script +degiro = degiroapi.DeGiro() +degiro.login_prompt("username") # prompts for password and totp (optional) + +#Equivalent to: +#degiro = degiroapi.DeGiro("username") # prompts for password and totp (optional) + +# To dynamically provide all credentials use: +degiro = degiroapi.DeGiro() +degiro.login_prompt() #prompts for username, password and totp (optional) + # logout degiro.logout()