From 3e935395ddcb94d203bebb17d080f26a97f7d33c Mon Sep 17 00:00:00 2001 From: DiMartinoXBMC Date: Tue, 1 Mar 2016 19:58:39 +0300 Subject: [PATCH] API update --- Anteoloader.py | 12 ++++++-- Core.py | 74 ++++++++++++++++++++++++++++++++++++++++--------- Localization.py | 6 ++-- Player.py | 8 ++++++ 4 files changed, 80 insertions(+), 20 deletions(-) diff --git a/Anteoloader.py b/Anteoloader.py index 252ab99..0f27282 100644 --- a/Anteoloader.py +++ b/Anteoloader.py @@ -506,10 +506,16 @@ class AnteoPlayer(xbmc.Player): player.play(url, listitem) xbmc.sleep(2000) # very important, do not edit this, podavan + i = 0 + while not xbmc.abortRequested or not self.isPlaying() or i < 50: + xbmc.sleep(200) + i += 1 + + log('[AnteoPlayer]: self.isPlaying() = %s, i = %d, xbmc.abortRequested - %s' % (str(self.isPlaying()), i, str(xbmc.abortRequested))) + if not self.isPlaying() or xbmc.abortRequested: + return False + if self.seek > 0: - while not self.isPlaying(): - xbmc.sleep(200) - log('seekTime') log('[AnteoPlayer]: seekTime - '+str(self.seek)) self.seekTime(self.seek) diff --git a/Core.py b/Core.py index b1c562c..4b3c69b 100644 --- a/Core.py +++ b/Core.py @@ -1652,25 +1652,29 @@ class Core: silent = get("silent") thumbnail = unquote(get("thumbnail"),'') save_folder = unquote(get("save_folder"),'') + back_url = unquote(get("back_url"),'') + return_url = unquote(get("return_url"),'') + return_name = unquote(get("return_name"),'') + sdata = unquote(get("sdata"),'{}') + log(str(filesList)) if external and not get('from_searcher'): try: #if 1==1: - sdata = json.loads(json.loads(urllib.unquote_plus(get("sdata")))) + sdata = json.loads(sdata) if len(filesList) < 1: xbmcplugin.endOfDirectory(handle=int(sys.argv[1]), succeeded=True) if not silent: xbmc.executebuiltin( - 'XBMC.ActivateWindow(%s)' % 'Videos,plugin://plugin.video.myshows/?mode=3013') + 'XBMC.ActivateWindow(%s)' % 'Videos,%s' % return_url) else: showMessage(self.localize('Information'), self.localize('Torrent list is empty.')) return if silent: order, seeds, leechers, size, title, link, image = filesList[0] + sdata['filename'] = link xbmc.executebuiltin('XBMC.RunPlugin(%s)' % ( - 'plugin://plugin.video.myshows/?mode=3010&sort=activate&action=silent&stringdata=' + urllib.quote_plus( - '{"filename":"%s", "stype":%s, "showId":%s, "seasonId":%s, "id":%s, "episodeId":%s}' % ( - link, jstr(sdata['stype']), jstr(sdata['showId']), jstr(sdata['seasonId']), jstr(sdata['id']), - jstr(sdata['episodeId']))))) + back_url+'silent&stringdata=' + urllib.quote_plus( + json.dumps(sdata)))) return else: for (order, seeds, leechers, size, title, link, image) in filesList: @@ -1679,18 +1683,23 @@ class Core: for key in link_dict.keys(): if link_dict.get(key): link_url = '%s&%s=%s' % (link_url, key, urllib.quote_plus(link_dict.get(key))) + sdata['filename'] = link contextMenu = [ - (self.localize('Add to MyShows.ru'), + #(self.localize('Add to MyShows.ru'), + # 'XBMC.RunPlugin(%s)' % ( + # 'plugin://plugin.video.myshows/?mode=3010&sort=activate&stringdata=' + urllib.quote_plus( + # '{"filename":"%s", "stype":%s, "showId":%s, "seasonId":%s, "id":%s, "episodeId":%s}' % ( + # link, jstr(sdata['stype']), jstr(sdata['showId']), jstr(sdata['seasonId']), jstr(sdata['id']), + # jstr(sdata['episodeId']))))), + (self.localize('Add to %s') % return_name, 'XBMC.RunPlugin(%s)' % ( - 'plugin://plugin.video.myshows/?mode=3010&sort=activate&stringdata=' + urllib.quote_plus( - '{"filename":"%s", "stype":%s, "showId":%s, "seasonId":%s, "id":%s, "episodeId":%s}' % ( - link, jstr(sdata['stype']), jstr(sdata['showId']), jstr(sdata['seasonId']), jstr(sdata['id']), - jstr(sdata['episodeId']))))), + back_url+'&stringdata=' + urllib.quote_plus( + json.dumps(sdata)))), (self.localize('Open (no return)'), 'XBMC.ActivateWindow(Videos,%s)' % ('%s?action=%s%s') % ( sys.argv[0], 'openTorrent', link_url)), - (self.localize('Return to MyShows.ru'), - 'XBMC.ActivateWindow(%s)' % ('Videos,plugin://plugin.video.myshows/?mode=3013')), + (self.localize('Return to %s') % return_name, + 'XBMC.ActivateWindow(%s)' % ('Videos,%s' % return_url)), ] title = self.titleMake(seeds, leechers, size, title) self.drawItem(title, 'context', link, image, contextMenu=contextMenu) @@ -1934,3 +1943,42 @@ class Core: return 'qbittorrent.png' else: return 'torrent-client.png' + + def callback(self, params={}): + get = params.get + + external = unquote(get("external"), None) + subaction = unquote(get("subaction"), None) + url = unquote(get("url"),'') + sdata = json.loads(urllib.unquote_plus(get("sdata"))) + back_url = unquote(get("back_url"),'') + + self.__settings__.setSetting("lastTorrentUrl", url) + + classMatch = re.search('(\w+)::(.+)', url) + if classMatch: + searcher = classMatch.group(1) + url = Searchers().downloadWithSearcher(classMatch.group(2), searcher) + + + torrent = Downloader.Torrent(self.userStorageDirectory, torrentFilesDirectory=self.torrentFilesDirectory) + if not torrent: torrent = Downloader.Torrent(self.userStorageDirectory, + torrentFilesDirectory=self.torrentFilesDirectory) + torrentFile = torrent.saveTorrent(url) + if torrentFile: url = torrentFile + self.__settings__.setSetting("lastTorrent", url) + + if subaction == 'download': + if re.match("^http.+$", url): + torrentFile = self.saveUrlTorrent(url) + if torrentFile: url = torrentFile + self.__settings__.setSetting("lastTorrent", url) + + elif subaction == 'play': + fileIndex = chooseFile(torrent.getContentList()) + if fileIndex: + xbmc.executebuiltin('xbmc.RunPlugin("plugin://plugin.video.torrenter/?action=playTorrent&url=' + fileIndex + '")') + return + + sdata['filename'] = url + xbmc.executebuiltin('xbmc.RunPlugin("' + back_url + '&stringdata=' + json.dumps(sdata) + '")') diff --git a/Localization.py b/Localization.py index 5a16cb8..f6d47a0 100644 --- a/Localization.py +++ b/Localization.py @@ -492,8 +492,7 @@ def localize(text): 'Keyboard':'Клавиатура', 'Copy Files in Root':'Скопировать файлы в Корень', 'Copied %d files!':'Скопировано %d файлов!', - 'Add to MyShows.ru':'Добавить в MyShows.ru', - 'Return to MyShows.ru':'Вернуться в MyShows.ru', + 'Return to %s':'Вернуться в %s', 'Search results:':'Результаты поиска:', 'by Seeders':'по Сидам', 'by Date':'по Дате', @@ -751,8 +750,7 @@ def localize(text): 'Keyboard':'Клавіатура', 'Copy Files in Root':'Зкопіювати файли в корінь', 'Copied %d files!':'Зкопійовано %d файлів!', - 'Add to MyShows.ru':'Додати в MyShows.ru', - 'Return to MyShows.ru':'Повернутись в MyShows.ru', + 'Return to %s':'Повернутись в %s', 'Search results:':'Результати пошуку:', 'by Seeders':'по сідам', 'by Date':'по даті', diff --git a/Player.py b/Player.py index 0634b3b..1c85aed 100644 --- a/Player.py +++ b/Player.py @@ -346,6 +346,14 @@ class TorrentPlayer(xbmc.Player): #xbmc.Player().play(playlist) xbmc.sleep(2000) # very important, do not edit this, podavan + i = 0 + while not xbmc.abortRequested or not self.isPlaying() or i < 50: + xbmc.sleep(200) + i += 1 + + log('[TorrentPlayer]: self.isPlaying() = %s, i = %d, xbmc.abortRequested - %s' % (str(self.isPlaying()), i, str(xbmc.abortRequested))) + if not self.isPlaying() or xbmc.abortRequested: + return False return True def setup_subs(self, label, path):