summaryrefslogtreecommitdiff
path: root/tidal_dl_ng/config.py
diff options
context:
space:
mode:
authorRobert Honz <exislow+github@gmail.com>2024-01-23 09:51:59 +0100
committerRobert Honz <exislow+github@gmail.com>2024-01-23 09:51:59 +0100
commita3473599316779b04a30de4a01bf893a68428219 (patch)
tree1a768cfd33e5ec8ca6a7b0a72e0c6082a664cccf /tidal_dl_ng/config.py
parentbd91967d1b4314eb8648460aa13a62de0badc796 (diff)
downloadtidal-dl-ng-a3473599316779b04a30de4a01bf893a68428219.tar.gz
♻️ Renaming done to avoid confusion.
🛠️ Fixed config persisting error after read, if config file did not exist before (fixes #20). ✨ Implemented PKCE authorization to enable HiRes FLAC downloads. Fixes #9.
Diffstat (limited to 'tidal_dl_ng/config.py')
-rw-r--r--tidal_dl_ng/config.py16
1 files changed, 10 insertions, 6 deletions
diff --git a/tidal_dl_ng/config.py b/tidal_dl_ng/config.py
index 95d30d9..7c91e26 100644
--- a/tidal_dl_ng/config.py
+++ b/tidal_dl_ng/config.py
@@ -8,7 +8,7 @@ import tidalapi
from requests import HTTPError
from tidal_dl_ng.helper.decorator import SingletonMeta
-from tidal_dl_ng.helper.path import path_base, path_file_settings, path_file_token
+from tidal_dl_ng.helper.path import path_config_base, path_file_settings, path_file_token
from tidal_dl_ng.model.cfg import Settings as ModelSettings
from tidal_dl_ng.model.cfg import Token as ModelToken
@@ -17,7 +17,7 @@ class BaseConfig:
data: ModelSettings | ModelToken = None
file_path: str = None
cls_model: object = None
- path_base: str = path_base()
+ path_base: str = path_config_base()
def save(self, config_to_compare: str = None) -> None:
data_json = self.data.to_json()
@@ -36,7 +36,8 @@ class BaseConfig:
setattr(self.data, key, value)
def read(self, path: str) -> bool:
- result = False
+ result: bool = False
+ settings_json: str = ""
try:
with open(path, encoding="utf-8") as f:
@@ -122,7 +123,7 @@ class Tidal(BaseConfig, metaclass=SingletonMeta):
def login_oauth_start(self, function=print) -> None:
self.session.login_oauth_simple(function)
- def login_oauth_finish(self) -> bool:
+ def login_finish(self) -> bool:
result = self.session.check_login()
if result:
@@ -148,9 +149,9 @@ class Tidal(BaseConfig, metaclass=SingletonMeta):
elif not is_token:
fn_print("You either do not have a token or your token is invalid.")
fn_print("No worries, we will handle this...")
- self.login_oauth_start(fn_print)
+ self.login_pkce(fn_print)
- is_login = self.login_oauth_finish()
+ is_login = self.login_finish()
if is_login:
fn_print("The login was successful. I have stored your credentials (token).")
@@ -160,3 +161,6 @@ class Tidal(BaseConfig, metaclass=SingletonMeta):
fn_print("Something went wrong. Did you login using your browser correctly? May try again...")
return result
+
+ def login_pkce(self, fn_print: Callable) -> None:
+ self.session.login_pkce(fn_print)