Skip to content

Commit 41f79f7

Browse files
committed
Fix unicode on Linux
1 parent d9494bf commit 41f79f7

File tree

5 files changed

+29
-16
lines changed

5 files changed

+29
-16
lines changed

resources/lib/taskABC.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -84,14 +84,14 @@ def processUserargs(self, kwargs):
8484
ret = ret.replace(u'%_', u",")
8585
ret = ret.replace(u'{@literal%@}', ur'%')
8686
if self.tasktype == 'script' or self.tasktype == 'python':
87-
ret2 = ret.split(u'{@originaldelim@}') # need to split first to avoid unicode error
88-
if self.tasktype == 'script':
89-
fse = sys.getfilesystemencoding()
90-
ret = []
91-
for r in ret2:
92-
ret.append(r.encode(fse))
93-
else:
94-
ret = ret2
87+
ret = ret.split(u'{@originaldelim@}') # need to split first to avoid unicode error
88+
# if self.tasktype == 'script':
89+
# fse = sys.getfilesystemencoding()
90+
# ret = []
91+
# for r in ret2:
92+
# ret.append(r.encode(fse))
93+
# else:
94+
# ret = ret2
9595
return ret
9696

9797
@staticmethod

resources/lib/tasks/taskPython.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,16 @@ def run(self):
8888
if sys.platform.lower().startswith('win'):
8989
if fn.encode('utf-8') != fn.encode(fse):
9090
fn = fsencode(fn)
91+
else:
92+
fn = fn.encode(fse)
9193
try:
9294
if len(self.runtimeargs) > 0:
9395
if useImport is False:
94-
args = ' %s' % ' '.join(args)
95-
args = args.encode('ascii', errors='replace')
96+
args = u' %s' % ' '.join(args)
97+
try:
98+
args = args.encode(fse)
99+
except UnicodeEncodeError:
100+
msg += 'Unicode Encode Error for "%s" Encoder: %s' % (args, fse)
96101
result = xbmc.executebuiltin('XBMC.RunScript(%s, %s)' % (fn, args))
97102
else:
98103
directory, module_name = os.path.split(self.taskKwargs['pythonfile'])
@@ -106,7 +111,7 @@ def run(self):
106111
sys.path[:] = path
107112
else:
108113
if useImport is False:
109-
result = xbmc.executebuiltin('XBMC.RunScript(%s)' % fn)
114+
result = xbmc.executebuiltin(u'XBMC.RunScript(%s)' % fn)
110115
else:
111116

112117
directory, module_name = os.path.split(fn)

resources/lib/tasks/taskScript.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,10 @@ def run(self):
132132

133133
args = []
134134
for arg in argsu:
135-
args.append(arg.encode(fse))
135+
try:
136+
args.append(arg.encode(fse))
137+
except UnicodeEncodeError:
138+
msg += u'Unicode Encode Error for: "%s" Encoder: %s' % (arg, fse)
136139
if needs_shell:
137140
args = ' '.join(args)
138141
err = False

resources/lib/utils/debugger.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#
1919
import os
2020
import sys
21+
import xbmc
2122

2223
class pydevd_dummy(object):
2324
@staticmethod
@@ -31,11 +32,15 @@ def startdebugger():
3132
elif sys.platform.lower().startswith('darwin'):
3233
debugegg = '/Applications/PyCharm.app/Contents/debug-eggs/pycharm-debug.egg'
3334
elif sys.platform.lower().startswith('linux'):
34-
debugegg = os.path.expandvars(os.path.expanduser('~/PyCharm 2016.1/debug-eggs/pycharm-debug.egg'))
35+
debugegg = os.path.expandvars(os.path.expanduser('~/Applications/pycharm-2016.1.4/debug-eggs/pycharm-debug.egg'))
3536
if os.path.exists(debugegg):
3637
sys.path.append(debugegg)
3738
try:
3839
import pydevd
3940
except ImportError:
41+
xbmc.log(msg = 'Debugger import error @: "%s"' % debugegg)
4042
pydevd = pydevd_dummy
41-
pydevd.settrace('localhost', port=51234, stdoutToServer=True, stderrToServer=True, suspend=False)
43+
pydevd.settrace('localhost', port=51234, stdoutToServer=True, stderrToServer=True, suspend=False)
44+
else:
45+
xbmc.log(msg='Debugger not found @: "%s"' % debugegg)
46+

resources/lib/utils/kodipathtools.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,8 @@ def translatepath(path):
9797
if path.startswith('/'):
9898
ret = u'/%s' % ret
9999

100-
if not os.path.supports_unicode_filenames:
101-
ret = ret.decode('utf-8')
100+
# if not os.path.supports_unicode_filenames:
101+
# ret = ret.decode('utf-8')
102102

103103
ret = secure_filename(ret)
104104
return ret

0 commit comments

Comments
 (0)