def showConfig(): cf = TidalConfig() print("----------------Config------------------") print("Username : "******"Output directory : " + cf.outputdir) print("SessionID : " + cf.sessionid) print("Country Code : " + cf.countrycode) print("Sound Quality : " + cf.quality) print("Video Resolution : " + cf.resolution) print("Download Threads : " + cf.threadnum) print("Only M4a : " + cf.onlym4a) print("Show download progress : " + cf.showprogress + "(enable when threadnum=1)") print("Use hyphens : " + cf.addhyphen + "(between number and title)") print("Add year : " + cf.addyear + "(in album title)") print("Add explicit tag : " + cf.addexplicit) print("Playlist songs in artist folders : " + cf.plfile2arfolder + "(organized with artist folder)") print("Include singles : " + cf.includesingle + "(download artist album)") print("Save covers : " + cf.savephoto) print("ArtistName Before Track-Title : " + cf.artistbeforetitle) print("Add ID Before AlbumFolderName : " + cf.addAlbumidbeforefolder) print("Version : " + TIDAL_DL_VERSION) myinput("Enter to return.")
def logIn(username="", password=""): cf = TidalConfig() if username == "" or password == "": print("----------------LogIn------------------") username = myinput("username:"******"password:"******"" and account2.errmsg != "": printErr(0, account.errmsg) return False elif account.errmsg != "": account = account2 elif account2.errmsg != "": account2 = account cf.set_account(username, password, account.session_id, account.country_code, account.user_id, account2.session_id) Curtime = time.time() cf.set_lastlogintime(str(Curtime)) return True
def logIn(username="", password=""): if username == "" or password == "": print("----------------LogIn------------------") username = myinput("username:"******"password:"******"": # printErr(0, account.errmsg) # return False # if account2.errmsg != "": # printErr(0, account2.errmsg) # return False if account.errmsg != "" and account2.errmsg != "": printErr(0, account.errmsg) return False elif account.errmsg != "": account = account2 elif account2.errmsg != "": account2 = account cf = TidalConfig() cf.set_account(username, password, account.session_id, account.country_code, account.user_id, account2.session_id) Curtime = time.time() cf.set_lastlogintime(str(Curtime)) return True
def logIn(username = "", password = ""): if username == "" or password == "": print("----------------LogIn------------------") username = myinput("username:"******"password:"******"": printErr(0, account.errmsg) return False cf = TidalConfig() cf.set_account(username, password, account.session_id, account.country_code, account.user_id) return True
def showConfig(): cf = TidalConfig() print("----------------Config------------------") print("Username :\t" + cf.username) print("OutputDir :\t" + cf.outputdir) print("SessionID :\t" + cf.sessionid) print("CountryCode :\t" + cf.countrycode) print("SoundQuality :\t" + cf.quality) print("Resolution :\t" + cf.resolution) print("ThreadNum :\t" + cf.threadnum) print("OnlyM4a :\t" + cf.onlym4a) print("ShowProgress :\t" + cf.showprogress + "(enable when threadnum=1)") print("Version :\t" + TIDAL_DL_VERSION) myinput("Enter to return.")
def printChoice(string, isInt=False, default=None): tmpstr = "" cmdHelper.myprint(string, cmdHelper.TextColor.Yellow, None) if not isInt: return cmdHelper.myinput(tmpstr) else: return cmdHelper.myinputInt(tmpstr, default)
def printChoice(string, isInt=False, default=None): tmpstr = "" if systemHelper.isLinux(): cmdHelper.myprint(string, cmdHelper.TextColor.Yellow, None) else: tmpstr = string if not isInt: return cmdHelper.myinput(tmpstr) else: return cmdHelper.myinputInt(tmpstr, default)
def setAccessToken(): print("------------setAccessToken------------------") account = TidalMobileSession() cf = TidalConfig() while True: account.access_token = myinput("AccessToken(Enter '0' cancel):") if account.access_token == '0': break if account.valid() is True: account.getCountryCode() cf.set_account2(cf.username, cf.password, account.access_token, account.country_code, account.user_id) break else: printErr(0, "AccessToken is not valid!")
def setting(): cf = TidalConfig() print("----------------Settings----------------") print("OutputDir :\t" + cf.outputdir) print("SoundQuality :\t" + cf.quality) print("Resolution :\t" + cf.resolution) print("ThreadNum :\t" + cf.threadnum) print("OnlyM4a :\t" + cf.onlym4a) print("ShowProgress :\t" + cf.showprogress + "(enable when threadnum=1)") print("AddHyphen :\t" + cf.addhyphen + "(between number and title)") while True: outputdir = myinput("Outputdir(Enter '0' Unchanged):".ljust(12)) if outputdir == '0': outputdir = cf.outputdir break if os.path.isdir(outputdir) == False: printErr(0, "Path is Err!") continue break while True: index = myinputInt( "Quality(0-LOW,1-HIGH,2-LOSSLESS,3-HI_RES):".ljust(12), 999) if index > 3 or index < 0: printErr(0, "Quality Err!") continue if index == 0: quality = 'LOW' if index == 1: quality = 'HIGH' if index == 2: quality = 'LOSSLESS' if index == 3: quality = 'HI_RES' break while True: index = myinputInt( "Resolution(0-1080,1-720,2-480,3-360,4-240):".ljust(12), 99) if index > 4 or index < 0: printErr(0, "Resolution Err") continue if index == 0: resolution = '1080' if index == 1: resolution = '720' if index == 2: resolution = '480' if index == 3: resolution = '360' if index == 4: resolution = '240' break while True: threadnum = myinput("ThreadNum:".ljust(12)) if cf.valid_threadnum(threadnum) == False: printErr(0, "ThreadNum Err") continue break status = myinputInt("ConvertMp4toM4a(0-False,1-True):".ljust(12), 0) status2 = myinputInt("ShowProgress(0-False,1-True):".ljust(12), 0) status3 = myinputInt("AddHyphen(0-False,1-True):".ljust(12), 0) cf.set_outputdir(outputdir) cf.set_quality(quality) cf.set_resolution(resolution) cf.set_threadnum(threadnum) cf.set_onlym4a(status) cf.set_showprogress(status2) cf.set_addhyphen(status3) pathHelper.mkdirs(outputdir + "/Album/") pathHelper.mkdirs(outputdir + "/Playlist/") pathHelper.mkdirs(outputdir + "/Video/") pathHelper.mkdirs(outputdir + "/Favorite/") return
def setting(): cf = TidalConfig() print("----------------Setting----------------") print("OutputDir :\t" + cf.outputdir) print("SoundQuality :\t" + cf.quality) print("Resolution :\t" + cf.resolution) print("ThreadNum :\t" + cf.threadnum) while True: outputdir = myinput("Outputdir(Enter '0' Unchanged):".ljust(12)) if outputdir == '0': outputdir = cf.outputdir break if os.path.isdir(outputdir) == False: printErr(0, "Path is Err!") continue break while True: index = myinputInt("Quality(0-LOW,1-HIGH,2-LOSSLESS):".ljust(12), 999) if index > 2 or index < 0: printErr(0, "Quality Err!") continue if index == 0: quality = 'LOW' if index == 1: quality = 'HIGH' if index == 2: quality = 'LOSSLESS' break while True: index = myinputInt( "Resolution(0-1080,1-720,2-480,3-360,4-240):".ljust(12), 99) if index > 4 or index < 0: printErr(0, "ThreadNum Err") continue if index == 0: resolution = '1080' if index == 1: resolution = '720' if index == 2: resolution = '480' if index == 3: resolution = '360' if index == 4: resolution = '240' break while True: threadnum = myinput("ThreadNum:".ljust(12)) if cf.valid_threadnum(threadnum) == False: printErr(0, "ThreadNum Err") continue break cf.set_outputdir(outputdir) cf.set_quality(quality) cf.set_resolution(resolution) cf.set_threadnum(threadnum) pathHelper.mkdirs(outputdir + "/Album/") pathHelper.mkdirs(outputdir + "/Playlist/") pathHelper.mkdirs(outputdir + "/Video/") pathHelper.mkdirs(outputdir + "/Favorite/") return
def setting(): cf = TidalConfig() print("----------------Settings----------------") print("Output directory :\t" + cf.outputdir) print("Sound Quality :\t" + cf.quality) print("Video Resolution :\t" + cf.resolution) print("Download Threads :\t" + cf.threadnum) print("Only M4a :\t" + cf.onlym4a) print("Show download progress :\t" + cf.showprogress + "(enable when threadnum=1)") print("Use hyphens :\t" + cf.addhyphen + "(between number and title)") print("Add year :\t" + cf.addyear + "(in album title)") print("Add explicit tag :\t" + cf.addexplicit) print("Playlist songs in artist folders :\t" + cf.plfile2arfolder + "(organized with artist folder)") print("Include singles :\t" + cf.includesingle + "(download artist album)") print("Save covers :\t" + cf.savephoto) print("ArtistName Before Track-Title :\t" + cf.artistbeforetitle) print("Add ID Before AlbumFolderName :\t" + cf.addAlbumidbeforefolder) while True: outputdir = myinput("Output directory(Enter '0' Unchanged):".ljust(12)) if outputdir == '0': outputdir = cf.outputdir break if os.path.isdir(outputdir) == False: printErr(0, "Path is Err!") continue break while True: index = myinputInt( "Download Quality(0-LOW,1-HIGH,2-LOSSLESS,3-HI_RES):".ljust(12), 999) if index > 3 or index < 0: printErr(0, "Quality Err!") continue if index == 0: quality = 'LOW' if index == 1: quality = 'HIGH' if index == 2: quality = 'LOSSLESS' if index == 3: quality = 'HI_RES' break while True: index = myinputInt( "Video resolution(0-1080,1-720,2-480,3-360,4-240):".ljust(12), 99) if index > 4 or index < 0: printErr(0, "Resolution Err") continue if index == 0: resolution = '1080' if index == 1: resolution = '720' if index == 2: resolution = '480' if index == 3: resolution = '360' if index == 4: resolution = '240' break while True: threadnum = myinput("Number of download threads:".ljust(12)) if cf.valid_threadnum(threadnum) == False: printErr(0, "ThreadNum Err") continue break status = myinputInt("Convert Mp4 to M4a(0-No, 1-Yes):".ljust(12), 0) status2 = myinputInt( "Show download progress (only available on single thread)(0-No, 1-Yes):" .ljust(12), 0) status3 = myinputInt( "Use hyphens instead of spaces in file names(0-No, 1-Yes):".ljust(12), 0) while True: index = myinputInt( "Add year to album folder names(0-No, 1-Before, 2-After):".ljust( 12), 99) if index > 2 or index < 0: printErr(0, "Addyear input Err") continue if index == 0: addyear = 'No' if index == 1: addyear = 'Before' if index == 2: addyear = 'After' break status5 = myinputInt( "Download playlist songs in artist folder structure? (0-No,1-Yes):". ljust(12), 0) status6 = myinputInt( "Add explicit tag to file names(0-No, 1-Yes):".ljust(12), 0) status7 = myinputInt( "Include singles and EPs when downloading an artist's albums (0-No, 1-Yes):" .ljust(12), 0) status8 = myinputInt("Save covers(0-No, 1-Yes):".ljust(12), 0) status9 = myinputInt( "Add artistName before trackTitle(0-No, 1-Yes):".ljust(12), 0) status10 = myinputInt( "Add ID Before AlbumFolderName(0-No, 1-Yes):".ljust(12), 0) cf.set_outputdir(outputdir) cf.set_quality(quality) cf.set_resolution(resolution) cf.set_threadnum(threadnum) cf.set_onlym4a(status) cf.set_showprogress(status2) cf.set_addhyphen(status3) cf.set_addyear(addyear) cf.set_plfile2arfolder(status5) cf.set_addexplicit(status6) cf.set_includesingle(status7) cf.set_savephoto(status8) cf.set_artistbeforetitle(status9) cf.set_addAlbumidbeforefolder(status10) pathHelper.mkdirs(outputdir + "/Album/") pathHelper.mkdirs(outputdir + "/Playlist/") pathHelper.mkdirs(outputdir + "/Video/") pathHelper.mkdirs(outputdir + "/Favorite/") return
def enter(string): myprint(string, TextColor.Yellow, None) ret = myinput("") return ret