playSTRM choose file
parent
03a8ac71bc
commit
c63401533c
85
Core.py
85
Core.py
|
@ -42,23 +42,6 @@ class Core:
|
|||
history_bool = __settings__.getSetting('history') == 'true'
|
||||
open_option = int(__settings__.getSetting('open_option'))
|
||||
language = {0: 'en', 1: 'ru', 2: 'ru'}.get(int(__settings__.getSetting("language")))
|
||||
htmlCodes = (
|
||||
('&', '&'),
|
||||
('<', '<'),
|
||||
('>', '>'),
|
||||
('"', '"'),
|
||||
("'", '''),
|
||||
)
|
||||
stripPairs = (
|
||||
('<p>', '\n'),
|
||||
('<li>', '\n'),
|
||||
('<br>', '\n'),
|
||||
('<.+?>', ' '),
|
||||
('</.+?>', ' '),
|
||||
(' ', ' '),
|
||||
('«', '"'),
|
||||
('»', '"'),
|
||||
)
|
||||
scrapperDB_ver = {'en':'1.1', 'ru':'1.3'}
|
||||
|
||||
print 'SYS ARGV: ' + str(sys.argv)
|
||||
|
@ -1044,16 +1027,6 @@ class Core:
|
|||
commands[name] = value
|
||||
return commands
|
||||
|
||||
def unescape(self, string):
|
||||
for (symbol, code) in self.htmlCodes:
|
||||
string = re.sub(code, symbol, string)
|
||||
return string
|
||||
|
||||
def stripHtml(self, string):
|
||||
for (html, replacement) in self.stripPairs:
|
||||
string = re.sub(html, replacement, string)
|
||||
return string
|
||||
|
||||
def executeAction(self, params={}):
|
||||
get = params.get
|
||||
if hasattr(self, get("action")):
|
||||
|
@ -1230,9 +1203,9 @@ class Core:
|
|||
showMessage(self.localize('Error'), self.localize('Not a magnet-link!'))
|
||||
return
|
||||
elif keyboard.isConfirmed():
|
||||
params["url"] = urllib.quote_plus(self.unescape(urllib.unquote_plus(query)))
|
||||
params["url"] = urllib.quote_plus(unescape(urllib.unquote_plus(query)))
|
||||
else:
|
||||
params["url"] = urllib.quote_plus(self.unescape(urllib.unquote_plus(defaultKeyword)))
|
||||
params["url"] = urllib.quote_plus(unescape(urllib.unquote_plus(defaultKeyword)))
|
||||
#print str(params)
|
||||
self.torrentPlayer(params)
|
||||
|
||||
|
@ -1258,7 +1231,7 @@ class Core:
|
|||
fileTitle = filedict.get('title')
|
||||
if filedict.get('size'):
|
||||
fileTitle += ' [%d MB]' % (filedict.get('size') / 1024 / 1024)
|
||||
contentList.append((self.unescape(fileTitle), str(filedict.get('ind'))))
|
||||
contentList.append((unescape(fileTitle), str(filedict.get('ind'))))
|
||||
contentList = sorted(contentList, key=lambda x: x[0])
|
||||
|
||||
#print str(contentList)
|
||||
|
@ -1375,16 +1348,9 @@ class Core:
|
|||
self.__settings__.setSetting("lastTorrentUrl", url)
|
||||
torrent = Downloader.Torrent(self.userStorageDirectory, torrentFilesDirectory=self.torrentFilesDirectory)
|
||||
self.__settings__.setSetting("lastTorrent", torrent.saveTorrent(url))
|
||||
contentList = []
|
||||
for filedict in torrent.getContentList():
|
||||
fileTitle = filedict.get('title')
|
||||
if filedict.get('size'):
|
||||
fileTitle += ' [%d MB]' % (filedict.get('size') / 1024 / 1024)
|
||||
contentList.append((filedict.get('size'), self.unescape(fileTitle), str(filedict.get('ind'))))
|
||||
if len(contentList)>0:
|
||||
contentList = sorted(contentList, key=lambda x: x[0], reverse=True)
|
||||
#self.playTorrent({'url':contentList[0][2]})
|
||||
xbmc.executebuiltin('xbmc.RunPlugin("plugin://plugin.video.torrenter/?action=playTorrent&url='+contentList[0][2]+'")')
|
||||
fileIndex = chooseFile(torrent.getContentList())
|
||||
if fileIndex:
|
||||
xbmc.executebuiltin('xbmc.RunPlugin("plugin://plugin.video.torrenter/?action=playTorrent&url='+fileIndex+'")')
|
||||
|
||||
def openTorrent(self, params={}):
|
||||
get = params.get
|
||||
|
@ -1413,47 +1379,16 @@ class Core:
|
|||
self.__settings__.setSetting("lastTorrent", torrent.saveTorrent(url))
|
||||
if silent != 'true':
|
||||
if external:
|
||||
myshows_items, myshows_files, contentList, myshows_sizes = [], [], [], {}
|
||||
for filedict in torrent.getContentList():
|
||||
fileTitle = ''
|
||||
if filedict.get('size'):
|
||||
myshows_sizes[str(filedict.get('ind'))]='[%d MB] ' % (filedict.get('size') / 1024 / 1024)
|
||||
title = filedict.get('title')
|
||||
fileTitle = fileTitle + '[%s]%s' % (title[len(title) - 3:], title)
|
||||
contentList.append((self.unescape(fileTitle), str(filedict.get('ind'))))
|
||||
contentList = sorted(contentList, key=lambda x: x[0])
|
||||
for title, identifier in contentList:
|
||||
try:
|
||||
if title.split('.')[-1].lower() in ['avi','mp4','mkv','flv','mov','vob','wmv','ogm','asx','mpg','mpeg','avc','vp3','fli','flc','m4v','iso','mp3']:
|
||||
myshows_items.append(title)
|
||||
myshows_files.append(identifier)
|
||||
except:
|
||||
pass
|
||||
if len(myshows_items) > 1:
|
||||
if len(myshows_sizes)==0:
|
||||
myshows_items = cutFileNames(myshows_items)
|
||||
else:
|
||||
myshows_cut = cutFileNames(myshows_items)
|
||||
myshows_items=[]
|
||||
x=-1
|
||||
for i in myshows_files:
|
||||
x=x+1
|
||||
fileTitle=myshows_sizes[str(i)]+myshows_cut[x]
|
||||
myshows_items.append(fileTitle)
|
||||
dialog = xbmcgui.Dialog()
|
||||
if len(myshows_items) == 1:
|
||||
ret = 0
|
||||
else:
|
||||
ret = dialog.select(self.localize('Search results:'), myshows_items)
|
||||
if ret > -1:
|
||||
xbmc.executebuiltin('xbmc.RunPlugin("plugin://plugin.video.torrenter/?action=playTorrent&url=' + myshows_files[ret] + '")')
|
||||
fileIndex = chooseFile(torrent.getContentList())
|
||||
if fileIndex:
|
||||
xbmc.executebuiltin('xbmc.RunPlugin("plugin://plugin.video.torrenter/?action=playTorrent&url=' + fileIndex + '")')
|
||||
else:
|
||||
contentList = []
|
||||
for filedict in torrent.getContentList():
|
||||
fileTitle = filedict.get('title')
|
||||
if filedict.get('size'):
|
||||
fileTitle += ' [%d MB]' % (filedict.get('size') / 1024 / 1024)
|
||||
contentList.append((self.unescape(fileTitle), str(filedict.get('ind'))))
|
||||
contentList.append((unescape(fileTitle), str(filedict.get('ind'))))
|
||||
contentList = sorted(contentList, key=lambda x: x[0])
|
||||
|
||||
dirList, contentListNew = cutFolder(contentList, tdir)
|
||||
|
|
|
@ -154,8 +154,8 @@ class Libtorrent:
|
|||
'save_path': self.storageDirectory,
|
||||
'storage_mode': self.lt.storage_mode_t(0),
|
||||
'paused': True,
|
||||
'auto_managed': True,
|
||||
'duplicate_is_error': True
|
||||
#'auto_managed': True,
|
||||
#'duplicate_is_error': True
|
||||
}
|
||||
progressBar = xbmcgui.DialogProgress()
|
||||
progressBar.create(Localization.localize('Please Wait'), Localization.localize('Magnet-link is converting'))
|
||||
|
@ -180,21 +180,25 @@ class Libtorrent:
|
|||
self.magnetLink = magnet
|
||||
self.initSession()
|
||||
torrentInfo = self.getMagnetInfo()
|
||||
try:
|
||||
torrentFile = self.lt.create_torrent(torrentInfo)
|
||||
baseName = os.path.basename(self.storageDirectory + os.sep + torrentInfo.files()[0].path)
|
||||
if not xbmcvfs.exists(self.torrentFilesPath):
|
||||
xbmcvfs.mkdirs(self.torrentFilesPath)
|
||||
self.torrentFile = self.torrentFilesPath + self.md5(baseName) + '.torrent'
|
||||
torentFileHandler = xbmcvfs.File(self.torrentFile, "w+b")
|
||||
torentFileHandler.write(self.lt.bencode(torrentFile.generate()))
|
||||
torentFileHandler.close()
|
||||
e=self.lt.bdecode(xbmcvfs.File(self.torrentFile,'rb').read())
|
||||
self.torrentFileInfo = self.lt.torrent_info(e)
|
||||
except:
|
||||
xbmc.executebuiltin("Notification(%s, %s, 7500)" % (Localization.localize('Error'), Localization.localize(
|
||||
'Can\'t download torrent, probably no seeds available.')))
|
||||
self.torrentFileInfo = torrentInfo
|
||||
if torrentInfo:
|
||||
try:
|
||||
torrentFile = self.lt.create_torrent(torrentInfo)
|
||||
baseName = os.path.basename(self.storageDirectory + os.sep + torrentInfo.files()[0].path)
|
||||
if not xbmcvfs.exists(self.torrentFilesPath):
|
||||
xbmcvfs.mkdirs(self.torrentFilesPath)
|
||||
self.torrentFile = self.torrentFilesPath + self.md5(baseName) + '.torrent'
|
||||
torentFileHandler = xbmcvfs.File(self.torrentFile, "w+b")
|
||||
torentFileHandler.write(self.lt.bencode(torrentFile.generate()))
|
||||
torentFileHandler.close()
|
||||
e=self.lt.bdecode(xbmcvfs.File(self.torrentFile,'rb').read())
|
||||
self.torrentFileInfo = self.lt.torrent_info(e)
|
||||
except:
|
||||
xbmc.executebuiltin("Notification(%s, %s, 7500)" % (Localization.localize('Error'), Localization.localize(
|
||||
'Can\'t download torrent, probably no seeds available.')))
|
||||
self.torrentFileInfo = torrentInfo
|
||||
finally:
|
||||
self.session.remove_torrent(self.torrentHandle)
|
||||
self.torrentHandle = None
|
||||
|
||||
def getUploadRate(self):
|
||||
if None == self.torrentHandle:
|
||||
|
@ -538,7 +542,7 @@ class Libtorrent:
|
|||
try:
|
||||
nodes=self.session.dht_state().get('nodes')
|
||||
except:
|
||||
nodes=None
|
||||
nodes=self.session.status().get('nodes_num')
|
||||
nodes=len(nodes) if nodes else 0
|
||||
result='DHT: %s (%d)' % (is_dht_running, nodes)
|
||||
return result
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
English changelog at http://bit.ly/1MfSVUP
|
||||
|
||||
[B]Version 2.3.6[/B]
|
||||
[+] Оптимизация импорта
|
||||
[+] Новый Проигрыватель BTclient (https://github.com/izderadicka/btclient) в тестовом режиме.
|
||||
[+] Оптимизация импорта, ускорена работа меню
|
||||
[+] Новый Проигрыватель [url=https://github.com/izderadicka/btclient]BTclient[/url] в тестовом режиме, требует python-libtorrent >=1.0.4.
|
||||
|
||||
[B]Version 2.3.5[/B]
|
||||
[+] Проигрыватель: Уменьшена просадка после загрузки буфера
|
||||
|
|
Loading…
Reference in New Issue