Browse Source

Fix encoding on all UTF8 Systems

pull/5749/head
firsttris 10 years ago
parent
commit
fd366c0dfb
  1. 20
      couchpotato/core/helpers/encoding.py
  2. 10
      couchpotato/core/helpers/variable.py
  3. 8
      couchpotato/core/media/movie/providers/metadata/base.py
  4. 2
      couchpotato/core/plugins/renamer.py
  5. 2
      couchpotato/core/plugins/scanner.py

20
couchpotato/core/helpers/encoding.py

@ -36,16 +36,20 @@ def toUnicode(original, *args):
return six.text_type(original, *args) return six.text_type(original, *args)
except: except:
try: try:
detected = detect(original) from couchpotato.environment import Env
return original.decode(Env.get("encoding"))
except:
try: try:
if detected.get('confidence') > 0.8: detected = detect(original)
return original.decode(detected.get('encoding')) try:
if detected.get('confidence') > 0.8:
return original.decode(detected.get('encoding'))
except:
pass
return ek(original, *args)
except: except:
pass raise
return ek(original, *args)
except:
raise
except: except:
log.error('Unable to decode value "%s..." : %s ', (repr(original)[:20], traceback.format_exc())) log.error('Unable to decode value "%s..." : %s ', (repr(original)[:20], traceback.format_exc()))
return 'ERROR DECODING STRING' return 'ERROR DECODING STRING'

10
couchpotato/core/helpers/variable.py

@ -9,7 +9,7 @@ import string
import sys import sys
import traceback import traceback
from couchpotato.core.helpers.encoding import simplifyString, toSafeString, ss, sp from couchpotato.core.helpers.encoding import simplifyString, toSafeString, ss, sp, toUnicode
from couchpotato.core.logger import CPLog from couchpotato.core.logger import CPLog
import six import six
from six.moves import map, zip, filter from six.moves import map, zip, filter
@ -25,17 +25,17 @@ def fnEscape(pattern):
def link(src, dst): def link(src, dst):
if os.name == 'nt': if os.name == 'nt':
import ctypes import ctypes
if ctypes.windll.kernel32.CreateHardLinkW(six.text_type(dst), six.text_type(src), 0) == 0: raise ctypes.WinError() if ctypes.windll.kernel32.CreateHardLinkW(toUnicode(dst), toUnicode(src), 0) == 0: raise ctypes.WinError()
else: else:
os.link(src, dst) os.link(toUnicode(src), toUnicode(dst))
def symlink(src, dst): def symlink(src, dst):
if os.name == 'nt': if os.name == 'nt':
import ctypes import ctypes
if ctypes.windll.kernel32.CreateSymbolicLinkW(six.text_type(dst), six.text_type(src), 1 if os.path.isdir(src) else 0) in [0, 1280]: raise ctypes.WinError() if ctypes.windll.kernel32.CreateSymbolicLinkW(toUnicode(dst), toUnicode(src), 1 if os.path.isdir(src) else 0) in [0, 1280]: raise ctypes.WinError()
else: else:
os.symlink(src, dst) os.link(toUnicode(src), toUnicode(dst))
def getUserDir(): def getUserDir():

8
couchpotato/core/media/movie/providers/metadata/base.py

@ -3,7 +3,7 @@ import shutil
import traceback import traceback
from couchpotato.core.event import addEvent, fireEvent from couchpotato.core.event import addEvent, fireEvent
from couchpotato.core.helpers.encoding import sp from couchpotato.core.helpers.encoding import sp, toUnicode
from couchpotato.core.helpers.variable import getIdentifier, underscoreToCamel from couchpotato.core.helpers.variable import getIdentifier, underscoreToCamel
from couchpotato.core.logger import CPLog from couchpotato.core.logger import CPLog
from couchpotato.core.media._base.providers.metadata.base import MetaDataBase from couchpotato.core.media._base.providers.metadata.base import MetaDataBase
@ -32,9 +32,9 @@ class MovieMetaData(MetaDataBase):
except: except:
log.error('Failed to update movie, before creating metadata: %s', traceback.format_exc()) log.error('Failed to update movie, before creating metadata: %s', traceback.format_exc())
root_name = self.getRootName(group) root_name = toUnicode(self.getRootName(group))
meta_name = os.path.basename(root_name) meta_name = toUnicode(os.path.basename(root_name))
root = os.path.dirname(root_name) root = toUnicode(os.path.dirname(root_name))
movie_info = group['media'].get('info') movie_info = group['media'].get('info')

2
couchpotato/core/plugins/renamer.py

@ -655,7 +655,7 @@ class Renamer(Plugin):
group_folder = media_folder group_folder = media_folder
else: else:
# Delete the first empty subfolder in the tree relative to the 'from' folder # Delete the first empty subfolder in the tree relative to the 'from' folder
group_folder = sp(os.path.join(base_folder, os.path.relpath(group['parentdir'], base_folder).split(os.path.sep)[0])) group_folder = sp(os.path.join(base_folder, toUnicode(os.path.relpath(group['parentdir'], base_folder)).split(os.path.sep)[0]))
try: try:
if self.conf('cleanup') or self.conf('move_leftover'): if self.conf('cleanup') or self.conf('move_leftover'):

2
couchpotato/core/plugins/scanner.py

@ -569,7 +569,7 @@ class Scanner(Plugin):
scan_result = [] scan_result = []
for p in paths: for p in paths:
if not group['is_dvd']: if not group['is_dvd']:
video = Video.from_path(sp(p)) video = Video.from_path(toUnicode(sp(p)))
video_result = [(video, video.scan())] video_result = [(video, video.scan())]
scan_result.extend(video_result) scan_result.extend(video_result)

Loading…
Cancel
Save