Skip to content

Commit 13d13c7

Browse files
petehmarzzzello
authored andcommitted
ADD: parameters for cookies and credential file
1 parent be5ddf2 commit 13d13c7

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

pytr/api.py

+14-5
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,9 @@ class TradeRepublicApi:
6565
_subscription_id_counter = 1
6666
_previous_responses = {}
6767
subscriptions = {}
68+
69+
_credentials_file = CREDENTIALS_FILE
70+
_cookies_file = COOKIES_FILE
6871

6972
@property
7073
def session_token(self):
@@ -79,21 +82,27 @@ def session_token(self, val):
7982
self._session_token_expires_at = time.time() + 290
8083
self._session_token = val
8184

82-
def __init__(self, phone_no=None, pin=None, keyfile=None, locale='de', save_cookies=False):
85+
def __init__(self, phone_no=None, pin=None, keyfile=None, locale='de', save_cookies=False, credentials_file = None, cookies_file = None):
8386
self.log = get_logger(__name__)
8487
self._locale = locale
8588
self._save_cookies = save_cookies
89+
90+
self._credentials_file = pathlib.Path(credentials_file) if credentials_file else CREDENTIALS_FILE
91+
self._cookies_file = pathlib.Path(cookies_file) if cookies_file else COOKIES_FILE
92+
8693
if not (phone_no and pin):
8794
try:
88-
with open(CREDENTIALS_FILE, 'r') as f:
95+
with open(self._credentials_file, 'r') as f:
8996
lines = f.readlines()
9097
self.phone_no = lines[0].strip()
9198
self.pin = lines[1].strip()
9299
except FileNotFoundError:
93-
raise ValueError(f'phone_no and pin must be specified explicitly or via {CREDENTIALS_FILE}')
100+
raise ValueError(f'phone_no and pin must be specified explicitly or via {self._credentials_file}')
94101
else:
95102
self.phone_no = phone_no
96103
self.pin = pin
104+
105+
97106

98107
self.keyfile = keyfile if keyfile else KEY_FILE
99108
try:
@@ -105,7 +114,7 @@ def __init__(self, phone_no=None, pin=None, keyfile=None, locale='de', save_cook
105114
self._websession = requests.Session()
106115
self._websession.headers = self._default_headers_web
107116
if self._save_cookies:
108-
self._websession.cookies = MozillaCookieJar(COOKIES_FILE)
117+
self._websession.cookies = MozillaCookieJar(self._cookies_file)
109118

110119
def initiate_device_reset(self):
111120
self.sk = SigningKey.generate(curve=NIST256p, hashfunc=hashlib.sha512)
@@ -224,7 +233,7 @@ def resume_websession(self):
224233
return False
225234

226235
# Only attempt to load if the cookie file exists.
227-
if COOKIES_FILE.exists():
236+
if self._cookies_file.exists():
228237
# Loads session cookies too (expirydate=0).
229238
self._websession.cookies.load(ignore_discard=True, ignore_expires=True)
230239
self._weblogin = True

0 commit comments

Comments
 (0)