You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
976 B
36 lines
976 B
from couchpotato.core.logger import CPLog
|
|
from string import ascii_letters, digits
|
|
import re
|
|
import unicodedata
|
|
|
|
log = CPLog(__name__)
|
|
|
|
|
|
def toSafeString(original):
|
|
valid_chars = "-_.() %s%s" % (ascii_letters, digits)
|
|
cleanedFilename = unicodedata.normalize('NFKD', toUnicode(original)).encode('ASCII', 'ignore')
|
|
return ''.join(c for c in cleanedFilename if c in valid_chars)
|
|
|
|
|
|
def simplifyString(original):
|
|
string = toSafeString(' '.join(re.split('\W+', original.lower())))
|
|
split = re.split('\W+', string.lower())
|
|
return toUnicode(' '.join(split))
|
|
|
|
def toUnicode(original, *args):
|
|
try:
|
|
if type(original) is unicode:
|
|
return original
|
|
else:
|
|
return unicode(original, *args)
|
|
except UnicodeDecodeError:
|
|
ascii_text = str(original).encode('string_escape')
|
|
return unicode(ascii_text)
|
|
|
|
|
|
def isInt(value):
|
|
try:
|
|
int(value)
|
|
return True
|
|
except ValueError:
|
|
return False
|
|
|