diff --git a/Anteoloader.py b/Anteoloader.py
index e37bd64..eea16b0 100644
--- a/Anteoloader.py
+++ b/Anteoloader.py
@@ -29,7 +29,7 @@ import xbmcgui
import xbmcvfs
import xbmcaddon
import Localization
-from functions import file_encode, isSubtitle, DownloadDB, log, debug, is_writable, unquote, file_url
+from functions import localize_path, isSubtitle, is_writable, file_url
import os
@@ -261,7 +261,7 @@ class AnteoLoader:
class AnteoPlayer(xbmc.Player):
__plugin__ = sys.modules["__main__"].__plugin__
__settings__ = sys.modules["__main__"].__settings__
- ROOT = sys.modules["__main__"].__root__ # .decode('utf-8').encode(sys.getfilesystemencoding())
+ ROOT = sys.modules["__main__"].__root__
USERAGENT = "Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.0"
torrentFilesDirectory = 'torrents'
debug = __settings__.getSetting('debug') == 'true'
@@ -318,7 +318,6 @@ class AnteoPlayer(xbmc.Player):
break
except Exception, e:
import traceback
- log('['+author+'Player]: ' + str(e))
log(traceback.format_exc())
finally:
self.engine.close()
@@ -621,7 +620,7 @@ class AnteoPlayer(xbmc.Player):
def _get_status_lines(self, s, f):
return [
- self.display_name,
+ localize_path(self.display_name),
"%.2f%% %s" % (f.progress * 100, self.localize(STATE_STRS[s.state]).decode('utf-8')),
"D:%.2f%s U:%.2f%s S:%d P:%d" % (s.download_rate, self.localize('kb/s').decode('utf-8'),
s.upload_rate, self.localize('kb/s').decode('utf-8'),
diff --git a/Core.py b/Core.py
index 36360cb..e1843ce 100644
--- a/Core.py
+++ b/Core.py
@@ -31,8 +31,8 @@ from functions import *
class Core:
__plugin__ = sys.modules["__main__"].__plugin__
__settings__ = sys.modules["__main__"].__settings__
- ROOT = sys.modules["__main__"].__root__ #.decode('utf-8').encode(sys.getfilesystemencoding())
- userStorageDirectory = file_encode(__settings__.getSetting("storage"))
+ ROOT = sys.modules["__main__"].__root__
+ userStorageDirectory = localize_path(__settings__.getSetting("storage"))#file_encode(__settings__.getSetting("storage"))
torrentFilesDirectory = 'torrents'
debug = __settings__.getSetting('debug') == 'true'
torrent_player = __settings__.getSetting("torrent_player")
diff --git a/Libtorrent.py b/Libtorrent.py
index 1f22f38..a89cda0 100644
--- a/Libtorrent.py
+++ b/Libtorrent.py
@@ -31,7 +31,8 @@ import xbmc
import xbmcgui
import xbmcvfs
import Localization
-from functions import file_encode, isSubtitle, DownloadDB, log, debug, is_writable, vista_check, windows_check
+from functions import isSubtitle, DownloadDB, log, debug, is_writable,\
+ vista_check, windows_check, localize_path
from platform_pulsar import get_platform
class Libtorrent:
@@ -127,7 +128,7 @@ class Libtorrent:
log('Exception: ' + str(e))
xbmcvfs.delete(torrentFile)
return
- baseName = file_encode(os.path.basename(self.getFilePath()))
+ baseName = localize_path(os.path.basename(self.getFilePath()))
if not xbmcvfs.exists(self.torrentFilesPath):
xbmcvfs.mkdirs(self.torrentFilesPath)
newFile = self.torrentFilesPath + self.md5(baseName) + '.' + self.md5(
@@ -240,7 +241,7 @@ class Libtorrent:
def getContentList(self):
filelist = []
for contentId, contentFile in enumerate(self.torrentFileInfo.files()):
- stringdata = {"title": contentFile.path, "size": contentFile.size, "ind": int(contentId),
+ stringdata = {"title": localize_path(contentFile.path), "size": contentFile.size, "ind": int(contentId),
'offset': contentFile.offset}
filelist.append(stringdata)
return filelist
diff --git a/Player.py b/Player.py
index 1509f23..4376657 100644
--- a/Player.py
+++ b/Player.py
@@ -124,7 +124,6 @@ class OverlayText(object):
class TorrentPlayer(xbmc.Player):
__plugin__ = sys.modules["__main__"].__plugin__
__settings__ = sys.modules["__main__"].__settings__
- ROOT = sys.modules["__main__"].__root__ # .decode('utf-8').encode(sys.getfilesystemencoding())
USERAGENT = "Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.0"
torrentFilesDirectory = 'torrents'
debug = __settings__.getSetting('debug') == 'true'
@@ -466,7 +465,7 @@ class TorrentPlayer(xbmc.Player):
def _get_status_lines(self, s):
return [
- self.display_name.decode('utf-8')+'; '+self.torrent.get_debug_info('dht_state'),
+ self.display_name+'; '+self.torrent.get_debug_info('dht_state'),
"%.2f%% %s; %s" % (s.progress * 100, self.localize(STATE_STRS[s.state]).decode('utf-8'), self.torrent.get_debug_info('trackers_sum')),
"D:%.2f%s U:%.2f%s S:%d P:%d" % (s.download_rate / 1024, self.localize('kb/s').decode('utf-8'),
s.upload_rate / 1024, self.localize('kb/s').decode('utf-8'),
diff --git a/addon.xml b/addon.xml
index 44d7a5d..f034a23 100644
--- a/addon.xml
+++ b/addon.xml
@@ -7,6 +7,7 @@
+
video
diff --git a/functions.py b/functions.py
index 8026f0d..2e66cbe 100644
--- a/functions.py
+++ b/functions.py
@@ -2000,8 +2000,8 @@ def ensure_str(string, encoding='utf-8'):
def file_url(torrentFile):
import urlparse
- if not re.match("^file\:.+$", torrentFile) and os.path.exists(torrentFile):
- torrentFile = urlparse.urljoin('file:', urllib.pathname2url(ensure_str(torrentFile)))
+ if not re.match("^file\:.+$", torrentFile) and xbmcvfs.exists(torrentFile):
+ torrentFile = urlparse.urljoin('file:', urllib.pathname2url(torrentFile))
return torrentFile
def dump(obj):
@@ -2031,4 +2031,32 @@ def foldername(path):
foldername = path.split('\\')[0]
else:
foldername = ''
- return foldername
\ No newline at end of file
+ return foldername
+
+def uri2path(uri):
+ import urlparse
+ if uri[1] == ':' and sys.platform.startswith('win'):
+ uri = 'file:///' + uri
+ fileUri = urlparse.urlparse(uri)
+ if fileUri.scheme == 'file':
+ uriPath = fileUri.path
+ if uriPath != '' and sys.platform.startswith('win') and (os.path.sep == uriPath[0] or uriPath[0] == '/'):
+ uriPath = uriPath[1:]
+ absPath = os.path.abspath(urllib.unquote(uriPath))
+ return localize_path(absPath)
+
+def normalize_msg(tmpl, *args):
+ import chardet
+ msg = isinstance(tmpl, unicode) and tmpl or tmpl.decode(chardet.detect(tmpl)['encoding'])
+ arg_ = []
+ for a in args:
+ if not isinstance(a, unicode): arg_.append(a.decode(chardet.detect(a)['encoding']))
+ return msg % tuple(arg_)
+
+
+def localize_path(path):
+ import chardet
+ if not isinstance(path, unicode): path = path.decode(chardet.detect(path)['encoding'])
+ if not sys.platform.startswith('win'):
+ path = path.encode(True and sys.getfilesystemencoding() or 'utf-8')
+ return path
\ No newline at end of file