Browse Source

Fix encoding on all UTF8 Systems

pull/5749/head
firsttris 10 years ago
parent
commit
fd366c0dfb
  1. 4
      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

4
couchpotato/core/helpers/encoding.py

@ -36,6 +36,10 @@ def toUnicode(original, *args):
return six.text_type(original, *args) return six.text_type(original, *args)
except: except:
try: try:
from couchpotato.environment import Env
return original.decode(Env.get("encoding"))
except:
try:
detected = detect(original) detected = detect(original)
try: try:
if detected.get('confidence') > 0.8: if detected.get('confidence') > 0.8:

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