def __getTrackPath__(conf: Settings, track, stream, album=None, playlist=None): if album is not None: base = __getAlbumPath__(conf, album) + '/' if album.numberOfVolumes > 1: base += 'CD' + str(track.volumeNumber) + '/' if playlist is not None: base = __getPlaylistPath__(conf, playlist) # number number = __getIndexStr__(track.trackNumber) if playlist is not None: number = __getIndexStr__(track.trackNumberOnPlaylist) # artist artist = replaceLimitChar(track.artists[0].name, '-') # title title = track.title if not isNull(track.version): title += ' (' + track.version + ')' title = replaceLimitChar(title, '-') # get explicit explicit = "(Explicit)" if conf.addExplicitTag and track.explicit else '' #album and addyear albumname = replaceLimitChar(album.title, '-') year = getSubOnlyEnd(album.releaseDate, '-') # extension extension = __getExtension__(stream.url) retpath = conf.trackFileFormat if retpath is None or len(retpath) <= 0: retpath = Settings.getDefualtTrackFileFormat() retpath = retpath.replace(R"{TrackNumber}", number) retpath = retpath.replace(R"{ArtistName}", artist) retpath = retpath.replace(R"{TrackTitle}", title) retpath = retpath.replace(R"{ExplicitFlag}", explicit) retpath = retpath.replace(R"{AlbumYear}", year) retpath = retpath.replace(R"{AlbumTitle}", albumname) retpath = retpath.strip() return base + retpath + extension
def changeSettings(): global LANG Printf.settings(CONF) choice = Printf.enter(LANG.CHANGE_START_SETTINGS) if choice == '0': return while True: choice = Printf.enter(LANG.CHANGE_DOWNLOAD_PATH) if choice == '0': choice = CONF.downloadPath elif not os.path.isdir(choice): if not mkdirs(choice): Printf.err(LANG.MSG_PATH_ERR) continue CONF.downloadPath = choice break while True: choice = Printf.enter(LANG.CHANGE_AUDIO_QUALITY) if choice != '1' and choice != '2' and choice != '3' and choice != '0': Printf.err(LANG.MSG_INPUT_ERR) continue if choice == '0': CONF.audioQuality = AudioQuality.Normal if choice == '1': CONF.audioQuality = AudioQuality.High if choice == '2': CONF.audioQuality = AudioQuality.HiFi if choice == '3': CONF.audioQuality = AudioQuality.Master break while True: choice = Printf.enter(LANG.CHANGE_VIDEO_QUALITY) if choice != '1' and choice != '2' and choice != '3' and choice != '0': Printf.err(LANG.MSG_INPUT_ERR) continue if choice == '0': CONF.videoQuality = VideoQuality.P1080 if choice == '1': CONF.videoQuality = VideoQuality.P720 if choice == '2': CONF.videoQuality = VideoQuality.P480 if choice == '3': CONF.videoQuality = VideoQuality.P360 break CONF.onlyM4a = Printf.enter(LANG.CHANGE_ONLYM4A) == '1' # CONF.addExplicitTag = Printf.enter(LANG.CHANGE_ADD_EXPLICIT_TAG) == '1' # CONF.addHyphen = Printf.enter(LANG.CHANGE_ADD_HYPHEN) == '1' # CONF.addYear = Printf.enter(LANG.CHANGE_ADD_YEAR) == '1' # CONF.useTrackNumber = Printf.enter(LANG.CHANGE_USE_TRACK_NUM) == '1' CONF.checkExist = Printf.enter(LANG.CHANGE_CHECK_EXIST) == '1' # CONF.artistBeforeTitle = Printf.enter(LANG.CHANGE_ARTIST_BEFORE_TITLE) == '1' CONF.includeEP = Printf.enter(LANG.CHANGE_INCLUDE_EP) == '1' # CONF.addAlbumIDBeforeFolder = Printf.enter(LANG.CHANGE_ALBUMID_BEFORE_FOLDER) == '1' CONF.saveCovers = Printf.enter(LANG.CHANGE_SAVE_COVERS) == '1' CONF.showProgress = Printf.enter(LANG.CHANGE_SHOW_PROGRESS) == '1' CONF.language = Printf.enter( LANG.CHANGE_LANGUAGE + "('0'-English,'1'-中文,'2'-Turkish,'3'-Italiano,'4'-Czech,'5'-Arabic,'6'-Russian,'7'-Filipino,'8'-Croatian,'9'-Spanish,'10'-Portuguese,'11'-Ukrainian,'12'-Vietnamese,'13'-French,'14'-German):" ) albumFolderFormat = Printf.enter(LANG.CHANGE_ALBUM_FOLDER_FORMAT) if albumFolderFormat == '0' or isNull(albumFolderFormat): pass elif albumFolderFormat.lower() == 'default': CONF.albumFolderFormat = Settings.getDefualtAlbumFolderFormat() else: CONF.albumFolderFormat = albumFolderFormat trackFileFormat = Printf.enter(LANG.CHANGE_TRACK_FILE_FORMAT) if trackFileFormat == '0' or isNull(trackFileFormat): pass elif trackFileFormat.lower() == "default": CONF.trackFileFormat = Settings.getDefualtTrackFileFormat() else: CONF.trackFileFormat = trackFileFormat LANG = setLang(CONF.language) Settings.save(CONF)