Unicode os.walk as backup
This commit is contained in:
@@ -5,6 +5,7 @@ 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
|
||||
from couchpotato.environment import Env
|
||||
from enzyme.exceptions import NoParserError, ParseError
|
||||
import enzyme
|
||||
import logging
|
||||
@@ -143,10 +144,21 @@ class Scanner(Plugin):
|
||||
|
||||
# Scan all files of the folder if no files are set
|
||||
if len(files) == 0:
|
||||
files = []
|
||||
for root, dirs, walk_files in os.walk(toUnicode(folder)):
|
||||
for filename in walk_files:
|
||||
files.append(os.path.join(root, filename))
|
||||
try:
|
||||
files = []
|
||||
for root, dirs, walk_files in os.walk(toUnicode(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()))
|
||||
|
||||
for file_path in files:
|
||||
|
||||
@@ -287,9 +299,9 @@ class Scanner(Plugin):
|
||||
break
|
||||
|
||||
# Leftover "sorted" files
|
||||
for type in group['files']:
|
||||
if not type is 'leftover':
|
||||
group['files']['leftover'] -= set(group['files'][type])
|
||||
for file_type in group['files']:
|
||||
if not file_type is 'leftover':
|
||||
group['files']['leftover'] -= set(group['files'][file_type])
|
||||
|
||||
# Delete the unsorted list
|
||||
del group['unsorted_files']
|
||||
|
||||
@@ -91,7 +91,7 @@ class Settings(object):
|
||||
return tryInt(self.p.get(section, option))
|
||||
|
||||
def getUnicode(self, section, option):
|
||||
value = self.p.get(section, option)
|
||||
value = self.p.get(section, option).decode('unicode_escape')
|
||||
return toUnicode(value).strip()
|
||||
|
||||
def getValues(self):
|
||||
@@ -153,7 +153,7 @@ class Settings(object):
|
||||
# See if a value handler is attached, use that as value
|
||||
new_value = fireEvent('setting.save.%s.%s' % (section, option), value, single = True)
|
||||
|
||||
self.set(section, option, new_value if new_value else value)
|
||||
self.set(section, option, (new_value if new_value else value).encode('unicode_escape'))
|
||||
self.save()
|
||||
|
||||
return jsonified({
|
||||
|
||||
Reference in New Issue
Block a user