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)
except:
try:
from couchpotato.environment import Env
return original.decode(Env.get("encoding"))
except:
try:
detected = detect(original)
try:
if detected.get('confidence') > 0.8:

10
couchpotato/core/helpers/variable.py

@ -9,7 +9,7 @@ import string
import sys
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
import six
from six.moves import map, zip, filter
@ -25,17 +25,17 @@ def fnEscape(pattern):
def link(src, dst):
if os.name == 'nt':
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:
os.link(src, dst)
os.link(toUnicode(src), toUnicode(dst))
def symlink(src, dst):
if os.name == 'nt':
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:
os.symlink(src, dst)
os.link(toUnicode(src), toUnicode(dst))
def getUserDir():

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

@ -3,7 +3,7 @@ import shutil
import traceback
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.logger import CPLog
from couchpotato.core.media._base.providers.metadata.base import MetaDataBase
@ -32,9 +32,9 @@ class MovieMetaData(MetaDataBase):
except:
log.error('Failed to update movie, before creating metadata: %s', traceback.format_exc())
root_name = self.getRootName(group)
meta_name = os.path.basename(root_name)
root = os.path.dirname(root_name)
root_name = toUnicode(self.getRootName(group))
meta_name = toUnicode(os.path.basename(root_name))
root = toUnicode(os.path.dirname(root_name))
movie_info = group['media'].get('info')

2
couchpotato/core/plugins/renamer.py

@ -655,7 +655,7 @@ class Renamer(Plugin):
group_folder = media_folder
else:
# 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:
if self.conf('cleanup') or self.conf('move_leftover'):

2
couchpotato/core/plugins/scanner.py

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

Loading…
Cancel
Save