CC-3791: Media Monitor crash when there are media files with non-ascii name in watched folder

This commit is contained in:
Martin Konecny 2012-05-14 19:19:35 -04:00
parent 7d691a44af
commit b79f02ab88
3 changed files with 25 additions and 3 deletions

View file

@ -11,6 +11,7 @@ import logging.config
import logging.handlers
import locale
import os
import re
from Queue import Queue
from threading import Lock
@ -51,6 +52,7 @@ parser.add_option("-c", "--check", help="Check the cached schedule and exit", de
#logging.captureWarnings(True)
def configure_locale():
logger.debug("Before %s", locale.nl_langinfo(locale.CODESET))
current_locale = locale.getlocale()
if current_locale[1] is None:
@ -69,13 +71,24 @@ def configure_locale():
else:
new_locale = default_locale
logger.debug("New locale set to: " + locale.setlocale(locale.LC_ALL, new_locale))
test = re.compile(r"UTF-?8", re.IGNORECASE)
if re.findall(new_locale):
logger.info("New locale set to: %s", locale.setlocale(locale.LC_ALL, new_locale))
else:
logger.info("Invalid locale %s", new_locale)
sys.exit(1)
reload(sys)
sys.setdefaultencoding("UTF-8")
current_locale_encoding = locale.getlocale()[1].lower()
logger.debug("sys default encoding %s", sys.getdefaultencoding())
logger.debug("After %s", locale.nl_langinfo(locale.CODESET))
if current_locale_encoding not in ['utf-8', 'utf8']:
logger.error("Need a UTF-8 locale. Currently '%s'. Exiting..." % current_locale_encoding)
sys.exit(1)
# configure logging
try: