diff --git a/TIDALDL-PY/exe/tidal-dl.exe b/TIDALDL-PY/exe/tidal-dl.exe index f17cb9d..f2073f7 100644 Binary files a/TIDALDL-PY/exe/tidal-dl.exe and b/TIDALDL-PY/exe/tidal-dl.exe differ diff --git a/TIDALDL-PY/tidal_dl/__init__.py b/TIDALDL-PY/tidal_dl/__init__.py index a2bd74c..539359c 100644 --- a/TIDALDL-PY/tidal_dl/__init__.py +++ b/TIDALDL-PY/tidal_dl/__init__.py @@ -54,7 +54,7 @@ def mainCommand(): continue if not aigpy.path.mkdirs(SETTINGS.downloadPath): - Printf.err(LANG.MSG_PATH_ERR + SETTINGS.downloadPath) + Printf.err(LANG.select.MSG_PATH_ERR + SETTINGS.downloadPath) return if showGui: @@ -64,7 +64,7 @@ def mainCommand(): if link is not None: if not loginByConfig(): loginByWeb() - Printf.info(LANG.SETTING_DOWNLOAD_PATH + ':' + SETTINGS.downloadPath) + Printf.info(LANG.select.SETTING_DOWNLOAD_PATH + ':' + SETTINGS.downloadPath) start(link) def main(): @@ -85,7 +85,7 @@ def main(): while True: Printf.choices() - choice = Printf.enter(LANG.PRINT_ENTER_CHOICE) + choice = Printf.enter(LANG.select.PRINT_ENTER_CHOICE) if choice == "0": return elif choice == "1": diff --git a/TIDALDL-PY/tidal_dl/events.py b/TIDALDL-PY/tidal_dl/events.py index 28d6fd6..3c0a6f0 100644 --- a/TIDALDL-PY/tidal_dl/events.py +++ b/TIDALDL-PY/tidal_dl/events.py @@ -146,52 +146,52 @@ CHANGE SETTINGS def changePathSettings(): - Printf.settings(SETTINGS) + Printf.settings() SETTINGS.downloadPath = Printf.enterPath( - LANG.CHANGE_DOWNLOAD_PATH, - LANG.MSG_PATH_ERR, + LANG.select.CHANGE_DOWNLOAD_PATH, + LANG.select.MSG_PATH_ERR, '0', SETTINGS.downloadPath) SETTINGS.albumFolderFormat = Printf.enterFormat( - LANG.CHANGE_ALBUM_FOLDER_FORMAT, + LANG.select.CHANGE_ALBUM_FOLDER_FORMAT, SETTINGS.albumFolderFormat, - SETTINGS.getDefaultAlbumFolderFormat()) + SETTINGS.getDefaultPathFormat(Type.Album)) SETTINGS.trackFileFormat = Printf.enterFormat( - LANG.CHANGE_TRACK_FILE_FORMAT, + LANG.select.CHANGE_TRACK_FILE_FORMAT, SETTINGS.trackFileFormat, - SETTINGS.getDefaultTrackFileFormat()) + SETTINGS.getDefaultPathFormat(Type.Track)) SETTINGS.videoFileFormat = Printf.enterFormat( - LANG.CHANGE_VIDEO_FILE_FORMAT, + LANG.select.CHANGE_VIDEO_FILE_FORMAT, SETTINGS.videoFileFormat, - SETTINGS.getDefaultVideoFileFormat()) + SETTINGS.getDefaultPathFormat(Type.Video)) SETTINGS.save() def changeQualitySettings(): - Printf.settings(SETTINGS) + Printf.settings() SETTINGS.audioQuality = AudioQuality( - int(Printf.enterLimit(LANG.CHANGE_AUDIO_QUALITY, - LANG.MSG_INPUT_ERR, + int(Printf.enterLimit(LANG.select.CHANGE_AUDIO_QUALITY, + LANG.select.MSG_INPUT_ERR, ['0', '1', '2', '3']))) SETTINGS.videoQuality = VideoQuality( - int(Printf.enterLimit(LANG.CHANGE_VIDEO_QUALITY, - LANG.MSG_INPUT_ERR, + int(Printf.enterLimit(LANG.select.CHANGE_VIDEO_QUALITY, + LANG.select.MSG_INPUT_ERR, ['1080', '720', '480', '360']))) SETTINGS.save() def changeSettings(): - Printf.settings(SETTINGS) - SETTINGS.showProgress = Printf.enterBool(LANG.CHANGE_SHOW_PROGRESS) - SETTINGS.showTrackInfo = Printf.enterBool(LANG.CHANGE_SHOW_TRACKINFO) - SETTINGS.checkExist = Printf.enterBool(LANG.CHANGE_CHECK_EXIST) - SETTINGS.includeEP = Printf.enterBool(LANG.CHANGE_INCLUDE_EP) - SETTINGS.saveCovers = Printf.enterBool(LANG.CHANGE_SAVE_COVERS) - SETTINGS.saveAlbumInfo = Printf.enterBool(LANG.CHANGE_SAVE_ALBUM_INFO) - SETTINGS.lyricFile = Printf.enterBool(LANG.CHANGE_ADD_LRC_FILE) - SETTINGS.usePlaylistFolder = Printf.enterBool(LANG.SETTING_USE_PLAYLIST_FOLDER + "('0'-No,'1'-Yes):") - SETTINGS.language = Printf.enter(LANG.CHANGE_LANGUAGE + "(" + getLangChoicePrint() + "):") - LANG = setLang(SETTINGS.language) + Printf.settings() + SETTINGS.showProgress = Printf.enterBool(LANG.select.CHANGE_SHOW_PROGRESS) + SETTINGS.showTrackInfo = Printf.enterBool(LANG.select.CHANGE_SHOW_TRACKINFO) + SETTINGS.checkExist = Printf.enterBool(LANG.select.CHANGE_CHECK_EXIST) + SETTINGS.includeEP = Printf.enterBool(LANG.select.CHANGE_INCLUDE_EP) + SETTINGS.saveCovers = Printf.enterBool(LANG.select.CHANGE_SAVE_COVERS) + SETTINGS.saveAlbumInfo = Printf.enterBool(LANG.select.CHANGE_SAVE_ALBUM_INFO) + SETTINGS.lyricFile = Printf.enterBool(LANG.select.CHANGE_ADD_LRC_FILE) + SETTINGS.usePlaylistFolder = Printf.enterBool(LANG.select.SETTING_USE_PLAYLIST_FOLDER + "('0'-No,'1'-Yes):") + SETTINGS.language = Printf.enter(LANG.select.CHANGE_LANGUAGE + "(" + LANG.getLangChoicePrint() + "):") + LANG.setLang(SETTINGS.language) SETTINGS.save() @@ -202,7 +202,7 @@ def changeApiKey(): Printf.info(f'Current APIKeys: {str(SETTINGS.apiKeyIndex)} {item["platform"]}-{item["formats"]}') Printf.info(f'Current Version: {str(ver)}') Printf.apikeys(apiKey.getItems()) - index = int(Printf.enterLimit("APIKEY index:", LANG.MSG_INPUT_ERR, apiKey.getLimitIndexs())) + index = int(Printf.enterLimit("APIKEY index:", LANG.select.MSG_INPUT_ERR, apiKey.getLimitIndexs())) if index != SETTINGS.apiKeyIndex: SETTINGS.apiKeyIndex = index @@ -244,14 +244,14 @@ def __displayTime__(seconds, granularity=2): def loginByWeb(): try: - print(LANG.AUTH_START_LOGIN) + print(LANG.select.AUTH_START_LOGIN) # get device code url = TIDAL_API.getDeviceCode() - print(LANG.AUTH_NEXT_STEP.format( + print(LANG.select.AUTH_NEXT_STEP.format( aigpy.cmd.green(url), aigpy.cmd.yellow(__displayTime__(TIDAL_API.key.authCheckTimeout)))) - print(LANG.AUTH_WAITING) + print(LANG.select.AUTH_WAITING) start = time.time() elapsed = 0 @@ -261,7 +261,7 @@ def loginByWeb(): time.sleep(TIDAL_API.key.authCheckInterval + 1) continue - Printf.success(LANG.MSG_VALID_ACCESSTOKEN.format( + Printf.success(LANG.select.MSG_VALID_ACCESSTOKEN.format( __displayTime__(int(TIDAL_API.key.expiresIn)))) TOKEN.userid = TIDAL_API.key.userId @@ -272,7 +272,7 @@ def loginByWeb(): TOKEN.save() return True - raise Exception(LANG.AUTH_TIMEOUT) + raise Exception(LANG.select.AUTH_TIMEOUT) except Exception as e: Printf.err(f"Login failed.{str(e)}") return False @@ -284,7 +284,7 @@ def loginByConfig(): return False if TIDAL_API.verifyAccessToken(TOKEN.accessToken): - Printf.info(LANG.MSG_VALID_ACCESSTOKEN.format( + Printf.info(LANG.select.MSG_VALID_ACCESSTOKEN.format( __displayTime__(int(TOKEN.expiresAfter - time.time())))) TIDAL_API.key.countryCode = TOKEN.countryCode @@ -292,9 +292,9 @@ def loginByConfig(): TIDAL_API.key.accessToken = TOKEN.accessToken return True - Printf.info(LANG.MSG_INVALID_ACCESSTOKEN) + Printf.info(LANG.select.MSG_INVALID_ACCESSTOKEN) if TIDAL_API.refreshAccessToken(TOKEN.refreshToken): - Printf.success(LANG.MSG_VALID_ACCESSTOKEN.format( + Printf.success(LANG.select.MSG_VALID_ACCESSTOKEN.format( __displayTime__(int(TIDAL_API.key.expiresIn)))) TOKEN.userid = TIDAL_API.key.userId diff --git a/TIDALDL-PY/tidal_dl/lang/language.py b/TIDALDL-PY/tidal_dl/lang/language.py index 3e04f63..1652811 100644 --- a/TIDALDL-PY/tidal_dl/lang/language.py +++ b/TIDALDL-PY/tidal_dl/lang/language.py @@ -31,111 +31,57 @@ from tidal_dl.lang.vietnamese import LangVietnamese from tidal_dl.lang.korean import LangKorean from tidal_dl.lang.japanese import LangJapanese -LANG = LangEnglish() +_ALL_LANGUAGE_ = [ + ['English', LangEnglish()], + ['中文', LangChinese()], + ['Turkish', LangTurkish()], + ['Italian', LangItalian()], + ['Czech', LangCzech()], + ['Arabic', LangArabic()], + ['Russian', LangRussian()], + ['Filipino', LangFilipino()], + ['Croatian', LangCroatian()], + ['Spanish', LangSpanish()], + ['Portuguese', LangPortuguese()], + ['Ukrainian', LangUkrainian()], + ['Vietnamese', LangVietnamese()], + ['French', LangFrench()], + ['German', LangGerman()], + ['Danish', LangDanish()], + ['Hungarian', LangHungarian()], + ['Korean', LangKorean()], + ['Japanese', LangJapanese()], + ['Dutch', LangDutch()], + ['Polish', LangPolish()], +] + +class Language(object): + def __init__(self) -> None: + self.select = LangEnglish() + + def setLang(self, index): + index = int(index) + if index >= 0 and index < len(_ALL_LANGUAGE_): + self.select = _ALL_LANGUAGE_[index][1] + else: + self.select = LangEnglish() + + def getLangName(self, index): + index = int(index) + if index >= 0 and index < len(_ALL_LANGUAGE_): + return _ALL_LANGUAGE_[index][0] + return "" + + def getLangChoicePrint(self): + array = [] + index = 0 + while True: + name = self.getLangName(index) + if name == "": + break + array.append('\'' + str(index) + '\'-' + name) + index += 1 + return ','.join(array) -def setLang(index): - global LANG - if str(index) == '0': - LANG = LangEnglish() - elif str(index) == '1': - LANG = LangChinese() - elif str(index) == '2': - LANG = LangTurkish() - elif str(index) == '3': - LANG = LangItalian() - elif str(index) == '4': - LANG = LangCzech() - elif str(index) == '5': - LANG = LangArabic() - elif str(index) == '6': - LANG = LangRussian() - elif str(index) == '7': - LANG = LangFilipino() - elif str(index) == '8': - LANG = LangCroatian() - elif str(index) == '9': - LANG = LangSpanish() - elif str(index) == '10': - LANG = LangPortuguese() - elif str(index) == '11': - LANG = LangUkrainian() - elif str(index) == '12': - LANG = LangVietnamese() - elif str(index) == '13': - LANG = LangFrench() - elif str(index) == '14': - LANG = LangGerman() - elif str(index) == '15': - LANG = LangDanish() - elif str(index) == '16': - LANG = LangHungarian() - elif str(index) == '17': - LANG = LangKorean() - elif str(index) == '18': - LANG = LangJapanese() - elif str(index) == '19': - LANG = LangDutch() - elif str(index) == '20': - LANG = LangPolish() - else: - LANG = LangEnglish() - return LANG - - -def getLangName(index): - if str(index) == '0': - return "English" - if str(index) == '1': - return "中文" - if str(index) == '2': - return "Turkish" - if str(index) == '3': - return "Italian" - if str(index) == '4': - return "Czech" - if str(index) == '5': - return "Arabic" - if str(index) == '6': - return "Russian" - if str(index) == '7': - return "Filipino" - if str(index) == '8': - return "Croatian" - if str(index) == '9': - return "Spanish" - if str(index) == '10': - return "Portuguese" - if str(index) == '11': - return "Ukrainian" - if str(index) == '12': - return "Vietnamese" - if str(index) == '13': - return "French" - if str(index) == '14': - return "German" - if str(index) == '15': - return "Danish" - if str(index) == '16': - return "Hungarian" - if str(index) == '17': - return "Korean" - if str(index) == '18': - return "Japanese" - if str(index) == '19': - return "Dutch" - if str(index) == '20': - return "Polish" - return "" - - -def getLangChoicePrint(): - array = [] - index = 0 - while True: - name = getLangName(index) - if name == "": - break - array.append('\'' + str(index) + '\'-' + name) - index += 1 - return ','.join(array) +LANG = Language() diff --git a/TIDALDL-PY/tidal_dl/printf.py b/TIDALDL-PY/tidal_dl/printf.py index cab56b4..6e8b9e1 100644 --- a/TIDALDL-PY/tidal_dl/printf.py +++ b/TIDALDL-PY/tidal_dl/printf.py @@ -20,7 +20,7 @@ from tidal_dl.settings import * from tidal_dl.lang.language import * -VERSION = '2022.06.24.1' +VERSION = '2022.06.24.2' __LOGO__ = f''' /$$$$$$$$ /$$ /$$ /$$ /$$ /$$ |__ $$__/|__/ | $$ | $$ | $$| $$ @@ -75,50 +75,50 @@ class Printf(object): if onlineVer is None: icmp = aigpy.system.cmpVersion(onlineVer, VERSION) if icmp > 0: - Printf.info(LANG.PRINT_LATEST_VERSION + ' ' + onlineVer) + Printf.info(LANG.select.PRINT_LATEST_VERSION + ' ' + onlineVer) @staticmethod def settings(): data = SETTINGS - tb = Printf.__gettable__([LANG.SETTING, LANG.VALUE], [ + tb = Printf.__gettable__([LANG.select.SETTING, LANG.select.VALUE], [ #settings - path and format - [LANG.SETTING_PATH, getProfilePath()], - [LANG.SETTING_DOWNLOAD_PATH, data.downloadPath], - [LANG.SETTING_ALBUM_FOLDER_FORMAT, data.albumFolderFormat], - [LANG.SETTING_TRACK_FILE_FORMAT, data.trackFileFormat], - [LANG.SETTING_VIDEO_FILE_FORMAT, data.videoFileFormat], + [LANG.select.SETTING_PATH, getProfilePath()], + [LANG.select.SETTING_DOWNLOAD_PATH, data.downloadPath], + [LANG.select.SETTING_ALBUM_FOLDER_FORMAT, data.albumFolderFormat], + [LANG.select.SETTING_TRACK_FILE_FORMAT, data.trackFileFormat], + [LANG.select.SETTING_VIDEO_FILE_FORMAT, data.videoFileFormat], #settings - quality - [LANG.SETTING_AUDIO_QUALITY, data.audioQuality], - [LANG.SETTING_VIDEO_QUALITY, data.videoQuality], + [LANG.select.SETTING_AUDIO_QUALITY, data.audioQuality], + [LANG.select.SETTING_VIDEO_QUALITY, data.videoQuality], #settings - else - [LANG.SETTING_USE_PLAYLIST_FOLDER, data.usePlaylistFolder], - [LANG.SETTING_CHECK_EXIST, data.checkExist], - [LANG.SETTING_SHOW_PROGRESS, data.showProgress], - [LANG.SETTING_SHOW_TRACKINFO, data.showTrackInfo], - [LANG.SETTING_SAVE_ALBUMINFO, data.saveAlbumInfo], - [LANG.SETTING_SAVE_COVERS, data.saveCovers], - [LANG.SETTING_INCLUDE_EP, data.includeEP], - [LANG.SETTING_LANGUAGE, getLangName(data.language)], - [LANG.SETTINGS_ADD_LRC_FILE, data.lyricFile], - [LANG.SETTING_APIKEY, f"[{data.apiKeyIndex}]" + apiKey.getItem(data.apiKeyIndex)['formats']] + [LANG.select.SETTING_USE_PLAYLIST_FOLDER, data.usePlaylistFolder], + [LANG.select.SETTING_CHECK_EXIST, data.checkExist], + [LANG.select.SETTING_SHOW_PROGRESS, data.showProgress], + [LANG.select.SETTING_SHOW_TRACKINFO, data.showTrackInfo], + [LANG.select.SETTING_SAVE_ALBUMINFO, data.saveAlbumInfo], + [LANG.select.SETTING_SAVE_COVERS, data.saveCovers], + [LANG.select.SETTING_INCLUDE_EP, data.includeEP], + [LANG.select.SETTING_LANGUAGE, LANG.getLangName(data.language)], + [LANG.select.SETTINGS_ADD_LRC_FILE, data.lyricFile], + [LANG.select.SETTING_APIKEY, f"[{data.apiKeyIndex}]" + apiKey.getItem(data.apiKeyIndex)['formats']] ]) print(tb) @staticmethod def choices(): print("====================================================") - tb = Printf.__gettable__([LANG.CHOICE, LANG.FUNCTION], [ - [aigpy.cmd.green(LANG.CHOICE_ENTER + " '0':"), LANG.CHOICE_EXIT], - [aigpy.cmd.green(LANG.CHOICE_ENTER + " '1':"), LANG.CHOICE_LOGIN], - [aigpy.cmd.green(LANG.CHOICE_ENTER + " '2':"), LANG.CHOICE_LOGOUT], - [aigpy.cmd.green(LANG.CHOICE_ENTER + " '3':"), LANG.CHOICE_SET_ACCESS_TOKEN], - [aigpy.cmd.green(LANG.CHOICE_ENTER + " '4':"), LANG.CHOICE_SETTINGS + '-Path'], - [aigpy.cmd.green(LANG.CHOICE_ENTER + " '5':"), LANG.CHOICE_SETTINGS + '-Quality'], - [aigpy.cmd.green(LANG.CHOICE_ENTER + " '6':"), LANG.CHOICE_SETTINGS + '-Else'], - [aigpy.cmd.green(LANG.CHOICE_ENTER + " '7':"), LANG.CHOICE_APIKEY], - [aigpy.cmd.green(LANG.CHOICE_ENTER_URLID), LANG.CHOICE_DOWNLOAD_BY_URL], + tb = Printf.__gettable__([LANG.select.CHOICE, LANG.select.FUNCTION], [ + [aigpy.cmd.green(LANG.select.CHOICE_ENTER + " '0':"), LANG.select.CHOICE_EXIT], + [aigpy.cmd.green(LANG.select.CHOICE_ENTER + " '1':"), LANG.select.CHOICE_LOGIN], + [aigpy.cmd.green(LANG.select.CHOICE_ENTER + " '2':"), LANG.select.CHOICE_LOGOUT], + [aigpy.cmd.green(LANG.select.CHOICE_ENTER + " '3':"), LANG.select.CHOICE_SET_ACCESS_TOKEN], + [aigpy.cmd.green(LANG.select.CHOICE_ENTER + " '4':"), LANG.select.CHOICE_SETTINGS + '-Path'], + [aigpy.cmd.green(LANG.select.CHOICE_ENTER + " '5':"), LANG.select.CHOICE_SETTINGS + '-Quality'], + [aigpy.cmd.green(LANG.select.CHOICE_ENTER + " '6':"), LANG.select.CHOICE_SETTINGS + '-Else'], + [aigpy.cmd.green(LANG.select.CHOICE_ENTER + " '7':"), LANG.select.CHOICE_APIKEY], + [aigpy.cmd.green(LANG.select.CHOICE_ENTER_URLID), LANG.select.CHOICE_DOWNLOAD_BY_URL], ]) tb.set_style(prettytable.PLAIN_COLUMNS) print(tb) @@ -143,7 +143,7 @@ class Printf(object): if ret == retWord: return default elif ret == "": - print(aigpy.cmd.red(LANG.PRINT_ERR + " ") + errmsg) + print(aigpy.cmd.red(LANG.select.PRINT_ERR + " ") + errmsg) else: break return ret @@ -153,7 +153,7 @@ class Printf(object): while True: ret = aigpy.cmd.inputLimit(aigpy.cmd.yellow(string), limit) if ret is None: - print(aigpy.cmd.red(LANG.PRINT_ERR + " ") + errmsg) + print(aigpy.cmd.red(LANG.select.PRINT_ERR + " ") + errmsg) else: break return ret @@ -169,27 +169,27 @@ class Printf(object): @staticmethod def err(string): - print(aigpy.cmd.red(LANG.PRINT_ERR + " ") + string) + print(aigpy.cmd.red(LANG.select.PRINT_ERR + " ") + string) # logging.error(string) @staticmethod def info(string): - print(aigpy.cmd.blue(LANG.PRINT_INFO + " ") + string) + print(aigpy.cmd.blue(LANG.select.PRINT_INFO + " ") + string) @staticmethod def success(string): - print(aigpy.cmd.green(LANG.PRINT_SUCCESS + " ") + string) + print(aigpy.cmd.green(LANG.select.PRINT_SUCCESS + " ") + string) @staticmethod def album(data: Album): - tb = Printf.__gettable__([LANG.MODEL_ALBUM_PROPERTY, LANG.VALUE], [ - [LANG.MODEL_TITLE, data.title], + tb = Printf.__gettable__([LANG.select.MODEL_ALBUM_PROPERTY, LANG.select.VALUE], [ + [LANG.select.MODEL_TITLE, data.title], ["ID", data.id], - [LANG.MODEL_TRACK_NUMBER, data.numberOfTracks], - [LANG.MODEL_VIDEO_NUMBER, data.numberOfVideos], - [LANG.MODEL_RELEASE_DATE, data.releaseDate], - [LANG.MODEL_VERSION, data.version], - [LANG.MODEL_EXPLICIT, data.explicit], + [LANG.select.MODEL_TRACK_NUMBER, data.numberOfTracks], + [LANG.select.MODEL_VIDEO_NUMBER, data.numberOfVideos], + [LANG.select.MODEL_RELEASE_DATE, data.releaseDate], + [LANG.select.MODEL_VERSION, data.version], + [LANG.select.MODEL_EXPLICIT, data.explicit], ]) print(tb) logging.info("====album " + str(data.id) + "====\n" + @@ -200,12 +200,12 @@ class Printf(object): @staticmethod def track(data: Track, stream: StreamUrl = None): - tb = Printf.__gettable__([LANG.MODEL_TRACK_PROPERTY, LANG.VALUE], [ - [LANG.MODEL_TITLE, data.title], + tb = Printf.__gettable__([LANG.select.MODEL_TRACK_PROPERTY, LANG.select.VALUE], [ + [LANG.select.MODEL_TITLE, data.title], ["ID", data.id], - [LANG.MODEL_ALBUM, data.album.title], - [LANG.MODEL_VERSION, data.version], - [LANG.MODEL_EXPLICIT, data.explicit], + [LANG.select.MODEL_ALBUM, data.album.title], + [LANG.select.MODEL_VERSION, data.version], + [LANG.select.MODEL_EXPLICIT, data.explicit], ["Max-Q", data.audioQuality], ]) if stream is not None: @@ -219,11 +219,11 @@ class Printf(object): @staticmethod def video(data: Video, stream: VideoStreamUrl = None): - tb = Printf.__gettable__([LANG.MODEL_VIDEO_PROPERTY, LANG.VALUE], [ - [LANG.MODEL_TITLE, data.title], - [LANG.MODEL_ALBUM, data.album.title if data.album != None else None], - [LANG.MODEL_VERSION, data.version], - [LANG.MODEL_EXPLICIT, data.explicit], + tb = Printf.__gettable__([LANG.select.MODEL_VIDEO_PROPERTY, LANG.select.VALUE], [ + [LANG.select.MODEL_TITLE, data.title], + [LANG.select.MODEL_ALBUM, data.album.title if data.album != None else None], + [LANG.select.MODEL_VERSION, data.version], + [LANG.select.MODEL_EXPLICIT, data.explicit], ["Max-Q", data.quality], ]) if stream is not None: @@ -237,11 +237,11 @@ class Printf(object): @staticmethod def artist(data: Artist, num): - tb = Printf.__gettable__([LANG.MODEL_ARTIST_PROPERTY, LANG.VALUE], [ - [LANG.MODEL_ID, data.id], - [LANG.MODEL_NAME, data.name], + tb = Printf.__gettable__([LANG.select.MODEL_ARTIST_PROPERTY, LANG.select.VALUE], [ + [LANG.select.MODEL_ID, data.id], + [LANG.select.MODEL_NAME, data.name], ["Number of albums", num], - [LANG.MODEL_TYPE, str(data.type)], + [LANG.select.MODEL_TYPE, str(data.type)], ]) print(tb) logging.info("====artist " + str(data.id) + "====\n" + @@ -251,10 +251,10 @@ class Printf(object): @staticmethod def playlist(data): - tb = Printf.__gettable__([LANG.MODEL_PLAYLIST_PROPERTY, LANG.VALUE], [ - [LANG.MODEL_TITLE, data.title], - [LANG.MODEL_TRACK_NUMBER, data.numberOfTracks], - [LANG.MODEL_VIDEO_NUMBER, data.numberOfVideos], + tb = Printf.__gettable__([LANG.select.MODEL_PLAYLIST_PROPERTY, LANG.select.VALUE], [ + [LANG.select.MODEL_TITLE, data.title], + [LANG.select.MODEL_TRACK_NUMBER, data.numberOfTracks], + [LANG.select.MODEL_VIDEO_NUMBER, data.numberOfVideos], ]) print(tb) logging.info("====playlist " + str(data.uuid) + "====\n" + @@ -265,10 +265,10 @@ class Printf(object): @staticmethod def mix(data): - tb = Printf.__gettable__([LANG.MODEL_PLAYLIST_PROPERTY, LANG.VALUE], [ - [LANG.MODEL_ID, data.id], - [LANG.MODEL_TRACK_NUMBER, len(data.tracks)], - [LANG.MODEL_VIDEO_NUMBER, len(data.videos)], + tb = Printf.__gettable__([LANG.select.MODEL_PLAYLIST_PROPERTY, LANG.select.VALUE], [ + [LANG.select.MODEL_ID, data.id], + [LANG.select.MODEL_TRACK_NUMBER, len(data.tracks)], + [LANG.select.MODEL_VIDEO_NUMBER, len(data.videos)], ]) print(tb) logging.info("====Mix " + str(data.id) + "====\n" + diff --git a/TIDALDL-PY/tidal_dl/settings.py b/TIDALDL-PY/tidal_dl/settings.py index 90c920a..62bd1b0 100644 --- a/TIDALDL-PY/tidal_dl/settings.py +++ b/TIDALDL-PY/tidal_dl/settings.py @@ -12,6 +12,7 @@ import json import aigpy import base64 +from tidal_dl.lang.language import * from tidal_dl.enums import * @@ -74,6 +75,8 @@ class Settings(aigpy.model.ModelBase): self.videoFileFormat = self.getDefaultPathFormat(Type.Video) if self.apiKeyIndex is None: self.apiKeyIndex = 0 + + LANG.setLang(self.language) def save(self): data = aigpy.model.modelToDict(self)