CC-3791: Media Monitor crash when there are media files with non-ascii name in watched folder
This commit is contained in:
parent
7d691a44af
commit
b79f02ab88
|
@ -8,6 +8,7 @@ import os
|
||||||
import signal
|
import signal
|
||||||
import traceback
|
import traceback
|
||||||
import locale
|
import locale
|
||||||
|
import re
|
||||||
|
|
||||||
from configobj import ConfigObj
|
from configobj import ConfigObj
|
||||||
|
|
||||||
|
@ -47,7 +48,14 @@ def configure_locale():
|
||||||
else:
|
else:
|
||||||
new_locale = default_locale
|
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)
|
reload(sys)
|
||||||
sys.setdefaultencoding("UTF-8")
|
sys.setdefaultencoding("UTF-8")
|
||||||
|
|
|
@ -14,6 +14,7 @@ exec 2>&1
|
||||||
|
|
||||||
export HOME="/var/tmp/airtime/pypo/"
|
export HOME="/var/tmp/airtime/pypo/"
|
||||||
export PYTHONPATH=${api_client_path}:$PYTHONPATH
|
export PYTHONPATH=${api_client_path}:$PYTHONPATH
|
||||||
|
export LC_ALL=`cat /etc/default/locale | grep "LANG=" | cut -d= -f2 | tr -d "\n\""`
|
||||||
|
|
||||||
# Note the -u when calling python! we need it to get unbuffered binary stdout and stderr
|
# Note the -u when calling python! we need it to get unbuffered binary stdout and stderr
|
||||||
exec python -u ${pypo_path}${pypo_script} > /var/log/airtime/pypo/py-interpreter.log 2>&1
|
exec python -u ${pypo_path}${pypo_script} > /var/log/airtime/pypo/py-interpreter.log 2>&1
|
||||||
|
|
|
@ -11,6 +11,7 @@ import logging.config
|
||||||
import logging.handlers
|
import logging.handlers
|
||||||
import locale
|
import locale
|
||||||
import os
|
import os
|
||||||
|
import re
|
||||||
from Queue import Queue
|
from Queue import Queue
|
||||||
|
|
||||||
from threading import Lock
|
from threading import Lock
|
||||||
|
@ -51,6 +52,7 @@ parser.add_option("-c", "--check", help="Check the cached schedule and exit", de
|
||||||
#logging.captureWarnings(True)
|
#logging.captureWarnings(True)
|
||||||
|
|
||||||
def configure_locale():
|
def configure_locale():
|
||||||
|
logger.debug("Before %s", locale.nl_langinfo(locale.CODESET))
|
||||||
current_locale = locale.getlocale()
|
current_locale = locale.getlocale()
|
||||||
|
|
||||||
if current_locale[1] is None:
|
if current_locale[1] is None:
|
||||||
|
@ -69,13 +71,24 @@ def configure_locale():
|
||||||
else:
|
else:
|
||||||
new_locale = default_locale
|
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()
|
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']:
|
if current_locale_encoding not in ['utf-8', 'utf8']:
|
||||||
logger.error("Need a UTF-8 locale. Currently '%s'. Exiting..." % current_locale_encoding)
|
logger.error("Need a UTF-8 locale. Currently '%s'. Exiting..." % current_locale_encoding)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
# configure logging
|
# configure logging
|
||||||
try:
|
try:
|
||||||
|
|
Loading…
Reference in New Issue