}
try:
- compat_str = unicode # Python 2
+ compat_str = unicode # Python 2
except NameError:
- compat_str = str
+ compat_str = str
def preferredencoding():
"""Get preferred encoding.
Returns the best encoding scheme for the system, based on
locale.getpreferredencoding() and some further tweaks.
"""
- def yield_preferredencoding():
- try:
- pref = locale.getpreferredencoding()
- u'TEST'.encode(pref)
- except:
- pref = 'UTF-8'
- while True:
- yield pref
- return yield_preferredencoding().next()
+ try:
+ pref = locale.getpreferredencoding()
+ u'TEST'.encode(pref)
+ except:
+ pref = 'UTF-8'
+
+ return pref
def htmlentity_transform(matchobj):
handle_decl = handle_pi = unknown_decl = find_startpos
def get_result(self):
- if self.result == None: return None
- if len(self.result) != 3: return None
+ if self.result is None:
+ return None
+ if len(self.result) != 3:
+ return None
lines = self.html.split('\n')
lines = lines[self.result[1][0]-1:self.result[2][0]]
lines[0] = lines[0][self.result[1][1]:]
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
"""