return '_-' if restricted else ' -'
elif char in '\\/|*<>':
return '_'
- if restricted and (char in '&\'' or char.isspace()):
+ if restricted and (char in '!&\'' or char.isspace()):
return '_'
if restricted and ord(char) > 127:
return '_'
while '__' in result:
result = result.replace('__', '_')
result = result.strip('_')
+ # Common case of "Foreign band name - English song title"
+ if restricted and result.startswith('-_'):
+ result = result[2:]
if not result:
result = '_'
return result
class Trouble(Exception):
"""Trouble helper exception
-
+
This is an exception to be handled with
FileDownloader.trouble
"""