mirror of
https://github.com/yaronzz/Tidal-Media-Downloader.git
synced 2026-06-13 04:05:07 +03:00
fix bug of #930
This commit is contained in:
Binary file not shown.
@@ -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":
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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" +
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user