#13 Bugfix: if the folder name contains illegal characters, replace it with ' '.
This commit is contained in:
parent
cd3d043d46
commit
9cf08f5e4d
|
@ -20,9 +20,9 @@ def download_song_by_song(song, download_folder, sub_folder=True):
|
|||
# get song info
|
||||
api = CloudApi()
|
||||
song_id = song['id']
|
||||
song_name = re.sub(r'[\\/:*?"<>|]', ' ', song['name']) # Replace illegal character with ' '
|
||||
artist_name = song['artists'][0]['name']
|
||||
album_name = song['album']['name']
|
||||
song_name = format_string(song['name'])
|
||||
artist_name = format_string(song['artists'][0]['name'])
|
||||
album_name = format_string(song['album']['name'])
|
||||
|
||||
# update song file name by config
|
||||
song_file_name = '{}.mp3'.format(song_name)
|
||||
|
@ -117,3 +117,10 @@ class ProgressBar(object):
|
|||
self.status = 'Downloaded:'
|
||||
self.end_str = '\n'
|
||||
print(self.__get_info(), end=self.end_str)
|
||||
|
||||
|
||||
def format_string(string):
|
||||
"""
|
||||
Replace illegal character with ' '
|
||||
"""
|
||||
return re.sub(r'[\\/:*?"<>|]', ' ', string)
|
||||
|
|
|
@ -7,6 +7,7 @@ from ncm import config
|
|||
from ncm.api import CloudApi
|
||||
from ncm.downloader import download_song_by_id
|
||||
from ncm.downloader import download_song_by_song
|
||||
from ncm.downloader import format_string
|
||||
|
||||
# load the config first
|
||||
config.load_config()
|
||||
|
@ -15,7 +16,7 @@ api = CloudApi()
|
|||
|
||||
def download_hot_songs(artist_id):
|
||||
songs = api.get_hot_songs(artist_id)
|
||||
folder_name = songs[0]['artists'][0]['name'] + ' - hot50'
|
||||
folder_name = format_string(songs[0]['artists'][0]['name']) + ' - hot50'
|
||||
folder_path = os.path.join(config.DOWNLOAD_DIR, folder_name)
|
||||
download_count = config.DOWNLOAD_HOT_MAX if (0 < config.DOWNLOAD_HOT_MAX < 50) else config.DOWNLOAD_HOT_MAX_DEFAULT
|
||||
for i, song in zip(range(download_count), songs):
|
||||
|
@ -25,7 +26,7 @@ def download_hot_songs(artist_id):
|
|||
|
||||
def download_album_songs(album_id):
|
||||
songs = api.get_album_songs(album_id)
|
||||
folder_name = songs[0]['album']['name'] + ' - album'
|
||||
folder_name = format_string(songs[0]['album']['name']) + ' - album'
|
||||
folder_path = os.path.join(config.DOWNLOAD_DIR, folder_name)
|
||||
for i, song in enumerate(songs):
|
||||
print(str(i + 1) + ' song name:' + song['name'])
|
||||
|
@ -34,7 +35,7 @@ def download_album_songs(album_id):
|
|||
|
||||
def download_playlist_songs(playlist_id):
|
||||
songs, playlist_name = api.get_playlist_songs(playlist_id)
|
||||
folder_name = playlist_name + ' - playlist'
|
||||
folder_name = format_string(playlist_name) + ' - playlist'
|
||||
folder_path = os.path.join(config.DOWNLOAD_DIR, folder_name)
|
||||
for i, song in enumerate(songs):
|
||||
print(str(i + 1) + ' song name:' + song['name'])
|
||||
|
|
Loading…
Reference in New Issue