Skip to content
This repository has been archived by the owner on Aug 14, 2022. It is now read-only.

Commit

Permalink
Sanitize album directories.
Browse files Browse the repository at this point in the history
  • Loading branch information
Slyyxp committed Sep 2, 2020
1 parent 3908ef9 commit 20054cf
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 5 deletions.
6 changes: 3 additions & 3 deletions bugs.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,10 @@ def album_rip(album_id):
meta['list'][0]['album_info']['result']['title'].strip())
logger_bugs.info("Album: {}.".format(album_directory_name))
if config.prefs['artist_folders']:
album_path = os.path.join(config.prefs['downloads_directory'],
meta['list'][0]['album_info']['result']['artist_disp_nm'], album_directory_name)
album_path = utils.sanitize(os.path.join(config.prefs['downloads_directory'],
meta['list'][0]['album_info']['result']['artist_disp_nm'], album_directory_name))
else:
album_path = os.path.join(config.prefs['downloads_directory'], album_directory_name)
album_path = utils.sanitize(os.path.join(config.prefs['downloads_directory'], album_directory_name))
utils.make_dir(album_path)
cover_path = os.path.join(album_path, config.prefs['cover_name'])
download_cover(meta['list'][0]['album_info']['result']['img_urls'], cover_path)
Expand Down
20 changes: 18 additions & 2 deletions modules/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import re
import logging
from datetime import datetime
from platform import uname
import platform
from sys import version
from modules import config

Expand All @@ -17,6 +17,18 @@ def get_id(url):
r'https?://music\.bugs\.co\.kr/(?:(?:album|artist|playlist)/|[a-z]{2}-[a-z]{2}-?\w+(?:-\w+)*-?)(\w+)',
url).group(1)

def sanitize(fn):
"""
:param fn: Filename
:return: Sanitized string
Removes invalid characters in the filename dependant on Operating System.
"""
if _is_win():
return re.sub(r'[\/:*?"><|]', '_', fn)
else:
return re.sub('/', '_', fn)

def determine_quality(track):
if track['svc_flac_yn'] == 'Y':
return 'flac'
Expand All @@ -32,8 +44,12 @@ def exist_check(abs):
logger_utilities.debug("{} already exists locally.".format(os.path.basename(abs)))
return True

def _is_win():
if platform.system() == 'Windows':
return True

def log_system_information():
logger_utilities.debug("System Information: {}".format(uname()))
logger_utilities.debug("System Information: {}".format(platform.uname()))
logger_utilities.debug("Python Version: {}".format(version))
logger_utilities.debug("Preferences: {}".format(config.prefs))

Expand Down

0 comments on commit 20054cf

Please sign in to comment.