def getFilmInfo(self, url): print "*** getFilmInfo rot URL %s" % url response = common.fetchPage({"link": url}) entry = common.parseDOM(response["content"], 'div', attrs={'class': 'entry'}) flash_player = common.parseDOM(entry, "object") image = common.parseDOM(entry, 'img', attrs={'class': 'm_pic'}, ret='src')[0] uhash = common.parseDOM(flash_player, "param", attrs={"name": "flashvars"}, ret="pl")[0].split('&')[0] uhash = uhash.replace('"', '') # 1) get encoded URL from playlist/file HASH uppod_url = uppod.decodeSourceURL(uhash) # 2) get source HASH from encoded URL => getDecodedHashFromSourceURL(url, referer) uppod_hash = uppod.getDecodedHashFromSourceURL(uppod_url, 'http://serialu.net/media/stil-nov/uppod.swf') # http://serialu.net/una1.php?s=I.Hear.Your.Voice&md5=5de21a077941aaafd46e803be2a0de89&rand=0.16188193298876286 # 3) get playlist/file from encoded HASH json_playlist = json.loads(uppod.decode(uppod_hash).encode('latin1').decode('utf-8')) playlist = json_playlist['playlist'] if 'playlist' in playlist[0]: print "*** This is a playlist with several seasons" for season in playlist: episods = season['playlist'] for episode in episods: title = episode['comment'] uri = sys.argv[0] + '?mode=play&url=%s' % uppod.decode(episode['file']) info = {'title': title, 'overlay': xbmcgui.ICON_OVERLAY_WATCHED, 'playCount': 0} item = xbmcgui.ListItem(title, thumbnailImage=image) item.setInfo(type='Video', infoLabels=info) item.setProperty('IsPlayable', 'true') xbmcplugin.addDirectoryItem(self.handle, uri, item, False) else: print "*** This is a playlist with one season" for episode in playlist: title = episode['comment'] uri = sys.argv[0] + '?mode=play&url=%s' % uppod.decode(episode['file']) info = {'title': title, 'overlay': xbmcgui.ICON_OVERLAY_WATCHED, 'playCount': 0} item = xbmcgui.ListItem(title, thumbnailImage=image) item.setInfo(type='Video', infoLabels=info) item.setProperty('IsPlayable', 'true') xbmcplugin.addDirectoryItem(self.handle, uri, item, False) xbmc.executebuiltin('Container.SetViewMode(51)') xbmcplugin.endOfDirectory(self.handle, True)
def getFilmInfo(self, url): print "*** getFilmInfo %s" % url response = common.fetchPage({"link": url}) content = common.parseDOM(response["content"], "div", attrs={"id": "dle-content"}) post = common.parseDOM(content, "div", attrs={"class": "post"}) post_content = common.parseDOM(content, "div", attrs={"class": "post_content"}) title = self.encode(common.parseDOM(post, "h1")[0]) image = common.parseDOM(post_content, "img", ret="src")[0] videos = common.parseDOM(post, "div", attrs={"class": "video"}) players = common.parseDOM(videos, "object") for i, player in enumerate(players): uhash = common.parseDOM(player, "param", attrs={"name": "flashvars"}, ret="file")[0].split('&')[0] # get encoded URL from playlist/file HASH uppod_url = uppod.decodeSourceURL(uhash) image = image if 'http' in image else self.url + image uri = sys.argv[0] + '?mode=play&url=%s' % uppod_url info = { 'title': title, 'overlay': xbmcgui.ICON_OVERLAY_WATCHED, 'playCount': 0 } if len(players) > 1: item = xbmcgui.ListItem("%s (source %i)" % (title, i + 1), thumbnailImage=image) else: item = xbmcgui.ListItem("%s" % title, thumbnailImage=image) item.setInfo(type='Video', infoLabels=info) item.setProperty('IsPlayable', 'true') xbmcplugin.addDirectoryItem(self.handle, uri, item, False) xbmc.executebuiltin('Container.SetViewMode(52)') xbmcplugin.endOfDirectory(self.handle, True)
def getFilmInfo(self, url): print "*** getFilmInfo %s" % url response = common.fetchPage({"link": url}) content = common.parseDOM(response["content"], "div", attrs={"id": "dle-content"}) post = common.parseDOM(content, "div", attrs={"class": "post"}) post_content = common.parseDOM(content, "div", attrs={"class": "post_content"}) title = self.encode(common.parseDOM(post, "h1")[0]) image = common.parseDOM(post_content, "img", ret="src")[0] videos = common.parseDOM(post, "div", attrs={"class": "video"}) players = common.parseDOM(videos, "object") for i, player in enumerate(players): uhash = common.parseDOM(player, "param", attrs={"name": "flashvars"}, ret="file")[0].split('&')[0] # get encoded URL from playlist/file HASH uppod_url = uppod.decodeSourceURL(uhash) image = image if 'http' in image else self.url+image uri = sys.argv[0] + '?mode=play&url=%s' % uppod_url info = {'title': title, 'overlay': xbmcgui.ICON_OVERLAY_WATCHED, 'playCount': 0} if len(players) > 1: item = xbmcgui.ListItem("%s (source %i)" % (title, i+1), thumbnailImage=image) else: item = xbmcgui.ListItem("%s" % title, thumbnailImage=image) item.setInfo(type='Video', infoLabels=info) item.setProperty('IsPlayable', 'true') xbmcplugin.addDirectoryItem(self.handle, uri, item, False) xbmc.executebuiltin('Container.SetViewMode(52)') xbmcplugin.endOfDirectory(self.handle, True)