diff --git a/couchpotato/core/_base/updater/main.py b/couchpotato/core/_base/updater/main.py index f229121..279cadd 100644 --- a/couchpotato/core/_base/updater/main.py +++ b/couchpotato/core/_base/updater/main.py @@ -1,5 +1,6 @@ from couchpotato.api import addApiView from couchpotato.core.event import addEvent, fireEvent, fireEventAsync +from couchpotato.core.helpers.encoding import ss from couchpotato.core.helpers.request import jsonified from couchpotato.core.logger import CPLog from couchpotato.core.plugins.base import Plugin @@ -120,7 +121,7 @@ class BaseUpdater(Plugin): def deletePyc(self, only_excess = True): - for root, dirs, files in os.walk(Env.get('app_dir')): + for root, dirs, files in os.walk(ss(Env.get('app_dir'))): pyc_files = filter(lambda filename: filename.endswith('.pyc'), files) py_files = set(filter(lambda filename: filename.endswith('.py'), files)) @@ -269,7 +270,7 @@ class SourceUpdater(BaseUpdater): return False def replaceWith(self, path): - app_dir = Env.get('app_dir') + app_dir = ss(Env.get('app_dir')) # Get list of files we want to overwrite self.deletePyc(only_excess = False) diff --git a/couchpotato/core/helpers/encoding.py b/couchpotato/core/helpers/encoding.py index 8ea0d5e..9b1f575 100644 --- a/couchpotato/core/helpers/encoding.py +++ b/couchpotato/core/helpers/encoding.py @@ -35,6 +35,10 @@ def toUnicode(original, *args): ascii_text = str(original).encode('string_escape') return toUnicode(ascii_text) +def ss(original, *args): + from couchpotato.environment import Env + return toUnicode(original, *args).encode(Env.get('encoding')) + def ek(original, *args): if isinstance(original, (str, unicode)): try: diff --git a/couchpotato/core/logger.py b/couchpotato/core/logger.py index 7075243..1f5206a 100644 --- a/couchpotato/core/logger.py +++ b/couchpotato/core/logger.py @@ -34,34 +34,30 @@ class CPLog(object): def safeMessage(self, msg, replace_tuple = ()): - if not hasattr(self, 'Env'): - from couchpotato.environment import Env - from couchpotato.core.helpers.encoding import toUnicode + from couchpotato.environment import Env + from couchpotato.core.helpers.encoding import ss - self.Env = Env - self.toUnicode = toUnicode - - msg = self.toUnicode(msg) + msg = ss(msg) try: msg = msg % replace_tuple except: try: if isinstance(replace_tuple, tuple): - msg = msg % tuple([self.toUnicode(x).encode(self.Env.get('encoding')) for x in list(replace_tuple)]) + msg = msg % tuple([ss(x) for x in list(replace_tuple)]) else: - msg = msg % self.toUnicode(replace_tuple).encode(self.Env.get('encoding')) + msg = msg % ss(replace_tuple) except: self.error('Failed encoding stuff to log: %s' % traceback.format_exc()) - if not self.Env.get('dev'): + if not Env.get('dev'): for replace in self.replace_private: msg = re.sub('(%s=)[^\&]+' % replace, '%s=xxx' % replace, msg) # Replace api key try: - api_key = self.Env.setting('api_key') + api_key = Env.setting('api_key') if api_key: msg = msg.replace(api_key, 'API_KEY') except: diff --git a/couchpotato/core/plugins/scanner/main.py b/couchpotato/core/plugins/scanner/main.py index 5e6e02f..04e7516 100644 --- a/couchpotato/core/plugins/scanner/main.py +++ b/couchpotato/core/plugins/scanner/main.py @@ -1,11 +1,10 @@ from couchpotato import get_session from couchpotato.core.event import fireEvent, addEvent -from couchpotato.core.helpers.encoding import toUnicode, simplifyString +from couchpotato.core.helpers.encoding import toUnicode, simplifyString, ss from couchpotato.core.helpers.variable import getExt, getImdb, tryInt from couchpotato.core.logger import CPLog from couchpotato.core.plugins.base import Plugin from couchpotato.core.settings.model import File, Movie -from couchpotato.environment import Env from enzyme.exceptions import NoParserError, ParseError from guessit import guess_movie_info from subliminal.videos import Video @@ -133,7 +132,7 @@ class Scanner(Plugin): def scan(self, folder = None, files = [], simple = False, newer_than = 0): - folder = os.path.normpath(folder) + folder = ss(os.path.normpath(folder)) if not folder or not os.path.isdir(folder): log.error('Folder doesn\'t exists: %s', folder) @@ -147,19 +146,11 @@ class Scanner(Plugin): if len(files) == 0: try: files = [] - for root, dirs, walk_files in os.walk(toUnicode(folder)): + for root, dirs, walk_files in os.walk(folder): for filename in walk_files: files.append(os.path.join(root, filename)) except: - try: - files = [] - folder = toUnicode(folder).encode(Env.get('encoding')) - log.info('Trying to convert unicode to str path: %s, %s', (folder, type(folder))) - for root, dirs, walk_files in os.walk(folder): - for filename in walk_files: - files.append(os.path.join(root, filename)) - except: - log.error('Failed getting files from %s: %s', (folder, traceback.format_exc())) + log.error('Failed getting files from %s: %s', (folder, traceback.format_exc())) db = get_session()