diff --git a/src/you_get/common.py b/src/you_get/common.py index 2215cbbc..3b2c00d1 100644 --- a/src/you_get/common.py +++ b/src/you_get/common.py @@ -11,7 +11,7 @@ import platform import threading from .version import __version__ -from .util import log, legitimize, sogou_proxy_server, unescape +from .util import log, legitimize, sogou_proxy_server, get_filename, unescape dry_run = False force = False @@ -523,8 +523,7 @@ def download_urls(urls, title, ext, total_size, output_dir = '.', refer = None, traceback.print_exc(file = sys.stdout) pass - title = unescape(title) - title = legitimize(title) + title = get_filename(title) filename = '%s.%s' % (title, ext) filepath = os.path.join(output_dir, filename) @@ -604,7 +603,7 @@ def download_urls_chunked(urls, title, ext, total_size, output_dir = '.', refer assert ext in ('ts') - title = legitimize(title) + title = get_filename(title) filename = '%s.%s' % (title, 'ts') filepath = os.path.join(output_dir, filename) diff --git a/src/you_get/extractor/xiami.py b/src/you_get/extractor/xiami.py index 51b190db..143e6eb5 100644 --- a/src/you_get/extractor/xiami.py +++ b/src/you_get/extractor/xiami.py @@ -29,8 +29,9 @@ def location_dec(str): def xiami_download_lyric(lrc_url, file_name, output_dir): lrc = get_html(lrc_url, faker = True) + filename = get_filename(file_name) if len(lrc) > 0: - with open(output_dir + "/" + file_name.replace('/', '-').replace('?', '-') + '.lrc', 'w', encoding='utf-8') as x: + with open(output_dir + "/" + filename + '.lrc', 'w', encoding='utf-8') as x: x.write(lrc) def xiami_download_pic(pic_url, file_name, output_dir): diff --git a/src/you_get/util/strings.py b/src/you_get/util/strings.py index 4650540c..638aba58 100644 --- a/src/you_get/util/strings.py +++ b/src/you_get/util/strings.py @@ -18,3 +18,8 @@ except ImportError: return chr(int('0'+s, 16)) else: return chr(int(s)) + +from .fs import legitimize + +def get_filename(htmlstring): + return legitimize(unescape(htmlstring))