diff --git a/Core.py b/Core.py
index 541a1d6..9278334 100644
--- a/Core.py
+++ b/Core.py
@@ -1101,11 +1101,13 @@ class Core:
view_style('searchOption')
xbmcplugin.endOfDirectory(handle=int(sys.argv[1]), succeeded=True)
- def drawItem(self, title, action, link='', image='', isFolder=True, contextMenu=None, replaceMenu=True, action2='',
+ def drawItem(self, title, action, link='', image='', isFolder=True, contextMenu=None, replaceMenu=True, action2='', fileSize=0L,
info={}):
listitem = xbmcgui.ListItem(title, iconImage=image, thumbnailImage=image)
#log('[drawItem]:'+str((title, action, image, isFolder, contextMenu, replaceMenu, action2, info)))
if not info: info = {"Title": title, "plot": title}
+ if not isFolder and fileSize:
+ info['size'] = fileSize
if isinstance(link, dict):
link_url = ''
for key in link.keys():
@@ -1465,14 +1467,19 @@ class Core:
if not torrent: torrent = Downloader.Torrent(self.userStorageDirectory,
torrentFilesDirectory=self.torrentFilesDirectory)
self.__settings__.setSetting("lastTorrent", torrent.saveTorrent(url))
-
+
+ append_filesize = self.__settings__.getSetting("append_filesize") == 'true'
+ hasSize = False
contentList = []
for filedict in torrent.getContentList():
fileTitle = filedict.get('title')
- if filedict.get('size'):
- fileTitle += ' [%d MB]' % (filedict.get('size') / 1024 / 1024)
- contentList.append((unescape(fileTitle), str(filedict.get('ind'))))
- contentList = sorted(contentList, key=lambda x: x[0])
+ size = filedict.get('size')
+ if size:
+ if append_filesize:
+ fileTitle += ' [%d MB]' % (size / 1024 / 1024)
+ hasSize = True
+ contentList.append((unescape(fileTitle), str(filedict.get('ind')), size))
+ #contentList = sorted(contentList, key=lambda x: x[0])
dirList, contentListNew = cutFolder(contentList, tdir)
@@ -1486,7 +1493,7 @@ class Core:
for identifier in ids_video_result:
ids_video = ids_video + str(identifier) + ','
- for title, identifier in contentListNew:
+ for title, identifier, filesize in contentListNew:
contextMenu = [
(self.localize('Download via T-client'),
'XBMC.RunPlugin(%s)' % ('%s?action=%s&ind=%s') % (
@@ -1497,9 +1504,20 @@ class Core:
]
link = {'url': identifier, 'thumbnail': thumbnail, 'save_folder':save_folder}
self.drawItem(title, 'playTorrent', link, image=thumbnail, isFolder=False,
- action2=ids_video.rstrip(','), contextMenu=contextMenu, replaceMenu=False)
+ action2=ids_video.rstrip(','), contextMenu=contextMenu, replaceMenu=False, fileSize=filesize)
view_style('openTorrent')
- xbmcplugin.endOfDirectory(handle=int(sys.argv[1]), succeeded=True)
+ p_handle = int(sys.argv[1])
+ try:
+ xbmcplugin.addSortMethod(p_handle, xbmcplugin.SORT_METHOD_LABEL)
+ if hasSize:
+ xbmcplugin.addSortMethod(p_handle, xbmcplugin.SORT_METHOD_SIZE)
+ xbmc.executebuiltin("Container.SetSortMethod(%s)" % str(1))
+ #xbmc.executebuiltin("Container.SetSortDirection()")
+ except:
+ log(' !!!! >>>> Faild to set sorting method to ' + str(xbmcplugin.SORT_METHOD_SIZE))
+ pass
+
+ xbmcplugin.endOfDirectory(p_handle, succeeded=True)
def openSection(self, params={}):
get = params.get
diff --git a/Libtorrent.py b/Libtorrent.py
index 220e31d..8a6fabc 100644
--- a/Libtorrent.py
+++ b/Libtorrent.py
@@ -96,7 +96,9 @@ class Libtorrent:
torrentUrl) + '.torrent'
try:
if not re.match("^http\:.+$", torrentUrl):
- content = xbmcvfs.File(torrentUrl, "rb").read()
+ contentFile = xbmcvfs.File(torrentUrl, "rb")
+ content = contentFile.read()
+ contentFile.close()
else:
request = urllib2.Request(torrentUrl)
request.add_header('Referer', torrentUrl)
@@ -126,30 +128,7 @@ class Libtorrent:
self.torrentFile = torrentFile
return self.torrentFile
- #baseName = localize_path(os.path.basename(self.getFilePath()))
- #if not xbmcvfs.exists(self.torrentFilesPath):
- # xbmcvfs.mkdirs(self.torrentFilesPath)
- #newFile = self.torrentFilesPath + self.md5(
- # torrentUrl) + '.torrent' #self.md5(baseName) + '.' +
- #if xbmcvfs.exists(newFile):
- # log('saveTorrent: delete file ' + newFile)
- # xbmcvfs.delete(newFile)
- #if not xbmcvfs.exists(newFile):
- # try:
- # renamed = xbmcvfs.rename(torrentFile, newFile)
- # log('saveTorrent: xbmcvfs.rename %s %s to %s' %(torrentFile, newFile, str(renamed)))
- # except Exception, e:
- # log('Unable to rename torrent file from %s to %s in Torrent::renameTorrent. Exception: %s' %
- # (torrentFile, newFile, str(e)))
- # return
- #self.torrentFile = newFile
- #if not self.torrentFileInfo:
- # e=self.lt.bdecode(xbmcvfs.File(self.torrentFile,'rb').read())
- # self.torrentFileInfo = self.lt.torrent_info(e)
- # log('torrentFileInfo (saveTorrent2)=' + str(self.torrentFileInfo))
-
- #return self.torrentFile
-
+
def getMagnetInfo(self):
magnetSettings = {
'url': self.magnetLink,
diff --git a/functions.py b/functions.py
index 45e5801..dc26d3c 100644
--- a/functions.py
+++ b/functions.py
@@ -428,13 +428,16 @@ def cutFolder(contentList, tdir=None):
common_folder = common_folder.split('/')[0]
common = True
- for fileTitle, contentId in contentList:
+ for item in contentList:
+ fileTitle = item[0]
if common_folder not in fileTitle:
common = False
break
# print common_folder
- for fileTitle, contentId in contentList:
+ for item in contentList:
+ fileTitle = item[0]
+ contentId = item[1]
dir = None
if common:
fileTitle = fileTitle[len(common_folder) + 1:]
@@ -446,10 +449,12 @@ def cutFolder(contentList, tdir=None):
elif '/' in fileTitle:
dir = fileTitle.split('/')[0]
elif not tdir:
- contentListNew.append((fileTitle, contentId))
+ contentListNew.append(item)
if tdir and dir == tdir:
- contentListNew.append((fileTitle[len(dir) + 1:], contentId))
+ tupleContent = list(item)
+ tupleContent[0] = fileTitle[len(dir) + 1:]
+ contentListNew.append(tuple(tupleContent))
if not tdir and dir and dir not in dirList:
dirList.append(dir)
@@ -1711,7 +1716,9 @@ def get_ids_video(contentList):
'fli', 'flc', 'm4v', 'iso']
allowed_music_ext = ['mp3', 'flac', 'wma', 'ogg', 'm4a', 'aac', 'm4p', 'rm', 'ra']
for extlist in [allowed_video_ext, allowed_music_ext]:
- for title, identifier in contentList:
+ for item in contentList:
+ title = item[0]
+ identifier = item[1]
try:
ext = title.split('.')[-1]
if ext.lower() in extlist:
diff --git a/resources/language/English/strings.xml b/resources/language/English/strings.xml
index f76c42b..39e3cb3 100644
--- a/resources/language/English/strings.xml
+++ b/resources/language/English/strings.xml
@@ -66,6 +66,7 @@
Confluence (by safonov_ivan)
Aeon Nox (by joyrider)
pyrrent2http (python-libtorrent via http)
+ Append size to file name
Interface
P2P Network
Advanced
diff --git a/resources/language/Russian/strings.xml b/resources/language/Russian/strings.xml
index a4351d8..a6be9a9 100644
--- a/resources/language/Russian/strings.xml
+++ b/resources/language/Russian/strings.xml
@@ -1,4 +1,4 @@
-
+
Язык интерфейса
Удерживать стиль отображения
@@ -66,6 +66,7 @@
Confluence (от safonov_ivan)
Aeon Nox (от joyrider)
pyrrent2http (python-libtorrent по http)
+ Добавлять размер к имени файла
Интерфейс
P2P Сеть
Дополнительные
diff --git a/resources/settings.xml b/resources/settings.xml
index 1dc796b..4c65b91 100644
--- a/resources/settings.xml
+++ b/resources/settings.xml
@@ -6,6 +6,7 @@
+