def EPISODES(mname, murl): sea = re.findall("\sSeason\s(\d+)", mname, re.DOTALL)[0] getepi = apibase + "/api/serials/es/?id=" + murl + "&season=" + sea link = main.OPENURL(getepi, ua=useragent) match = re.findall('"(\d+)":"([^"]+?)"', link, re.DOTALL) dialogWait = xbmcgui.DialogProgress() ret = dialogWait.create("Please wait until Episodes list is cached.") totalLinks = len(match) loadedLinks = 0 remaining_display = "Episodes Cached :: [B]" + str(loadedLinks) + " / " + str(totalLinks) + "[/B]." dialogWait.update(0, "[B]Will load instantly from now on[/B]", remaining_display) xbmc.executebuiltin("XBMC.Dialog.Close(busydialog,true)") for epinum, thumb in match: main.addDown4( mname + " Episode " + epinum, apibase + "/api/serials/e?h=" + murl + "&u=" + sea + "&y=" + epinum, 279, thumb.replace("\/", "/"), "", "", "", "", "", ) loadedLinks = loadedLinks + 1 percent = (loadedLinks * 100) / totalLinks remaining_display = "Episodes Cached :: [B]" + str(loadedLinks) + " / " + str(totalLinks) + "[/B]." dialogWait.update(percent, "[B]Will load instantly from now on[/B]", remaining_display) if dialogWait.iscanceled(): return False
def LIST(type): path = os.path.join(profile, type.replace('25', '') + '_lite.json') f = open(path) field = json.loads(f.read()) dialogWait = xbmcgui.DialogProgress() ret = dialogWait.create('Please wait until Content list is cached.') if '25movies' in type: totalLinks = 25 else: totalLinks = len(field) loadedLinks = 0 remaining_display = 'Content Cached :: [B]' + str( loadedLinks) + ' / ' + str(totalLinks) + '[/B].' dialogWait.update(0, '[B]Will load instantly from now on[/B]', remaining_display) xbmc.executebuiltin("XBMC.Dialog.Close(busydialog,true)") field = sorted(field, key=lambda x: x['poster'], reverse=True) try: updates = '' if 'movies' in type or '25movies' in type: path = os.path.join(profile, 'news_movies.json') else: path = os.path.join(profile, 'news_tv.json') updates = open(path).read() field = sorted(field, key=lambda word: negtopos( updates.find('"id":' + word['id'] + ','))) except: pass if '25movies' in type: field = field[0:25] for data in field: #genre=str(data["genres"]).replace("u'",'').replace("'",'').replace("[",'').replace("]",'') if data['active'] == '1': thumb = str(data["poster"]).replace("\/'", '/') if 'movies' in type or '25movies' in type: main.addDown4( str(data["title"].encode('utf-8')) + ' (' + str(data["year"]) + ')', apibase + '/api/serials/get_movie_data?id=' + str(data["id"]), 279, thumb, '', '', '', '', '') elif 'music' in type: main.addDirMs( str(data["title"].encode('utf-8')), apibase + '/api/serials/get_artist_data/?id=' + str(data["id"]) + '&type=1', 302, thumb, '', '', '', '', '') else: main.addDirT(str(data["title"].encode('utf-8')), data["id"] + 'xoxe' + data["seasons"], 280, thumb, '', '', '', '', '') loadedLinks = loadedLinks + 1 percent = (loadedLinks * 100) / totalLinks remaining_display = 'Content Cached :: [B]' + str( loadedLinks) + ' / ' + str(totalLinks) + '[/B].' dialogWait.update(percent, '[B]Will load instantly from now on[/B]', remaining_display) if dialogWait.iscanceled(): break main.GA("Mbox", "List") main.VIEWS()
def EPISODES(mname, murl): sea = re.findall('\sSeason\s(\d+)', mname, re.DOTALL)[0] getepi = apibase + '/api/serials/es/?id=' + murl + '&season=' + sea link = main.OPENURL(getepi, ua=useragent) match = re.findall('"(\d+)":"([^"]+?)"', link, re.DOTALL) dialogWait = xbmcgui.DialogProgress() ret = dialogWait.create('Please wait until Episodes list is cached.') totalLinks = len(match) loadedLinks = 0 remaining_display = 'Episodes Cached :: [B]' + str( loadedLinks) + ' / ' + str(totalLinks) + '[/B].' dialogWait.update(0, '[B]Will load instantly from now on[/B]', remaining_display) xbmc.executebuiltin("XBMC.Dialog.Close(busydialog,true)") for epinum, thumb in match: main.addDown4( mname + ' Episode ' + epinum, apibase + '/api/serials/e?h=' + murl + '&u=' + sea + '&y=' + epinum, 279, thumb.replace('\/', '/'), '', '', '', '', '') loadedLinks = loadedLinks + 1 percent = (loadedLinks * 100) / totalLinks remaining_display = 'Episodes Cached :: [B]' + str( loadedLinks) + ' / ' + str(totalLinks) + '[/B].' dialogWait.update(percent, '[B]Will load instantly from now on[/B]', remaining_display) if dialogWait.iscanceled(): return False
def LIST(type): path=os.path.join(profile,type.replace('25','')+'_lite.json') f = open(path) field=json.loads(f.read()) dialogWait = xbmcgui.DialogProgress() ret = dialogWait.create('Please wait until Content list is cached.') if '25movies'in type: totalLinks = 25 else: totalLinks = len(field) loadedLinks = 0 remaining_display = 'Content Cached :: [B]'+str(loadedLinks)+' / '+str(totalLinks)+'[/B].' dialogWait.update(0,'[B]Will load instantly from now on[/B]',remaining_display) xbmc.executebuiltin("XBMC.Dialog.Close(busydialog,true)") field = sorted(field,key=lambda x:x['poster'],reverse=True) try: updates = '' if 'movies'in type or '25movies'in type: path = os.path.join(profile,'news_movies.json') else: path = os.path.join(profile,'news_tv.json') updates = open(path).read() field = sorted(field,key=lambda word: negtopos(updates.find('"id":'+word['id']+','))) except: pass if '25movies'in type: field=field[0:25] for data in field: #genre=str(data["genres"]).replace("u'",'').replace("'",'').replace("[",'').replace("]",'') if data['active'] == '1': thumb=str(data["poster"]).replace("\/'",'/') if 'movies'in type or '25movies'in type: main.addDown4(main.unescapes(str(data["title"].encode('utf-8')))+' ('+str(data["year"])+')',apibase+'/api/serials/get_movie_data?id='+str(data["id"]),279,thumb,'','','','','') elif 'music' in type: main.addDirMs(main.unescapes(str(data["title"].encode('utf-8'))),apibase+'/api/serials/get_artist_data/?id='+str(data["id"])+'&type=1',302,thumb,'','','','','') else: main.addDirT(main.unescapes(str(data["title"].encode('utf-8'))),data["id"]+'xoxe'+data["seasons"],280,thumb,'','','','','') loadedLinks = loadedLinks + 1 percent = (loadedLinks * 100)/totalLinks remaining_display = 'Content Cached :: [B]'+str(loadedLinks)+' / '+str(totalLinks)+'[/B].' dialogWait.update(percent,'[B]Will load instantly from now on[/B]',remaining_display) if dialogWait.iscanceled(): break main.VIEWS()
def MList(mname, murl): mname = mname.split('[C')[0] link = main.OPENURL(murl) link = link.replace('\r', '').replace('\n', '').replace('\t', '').replace(' ', '') r = re.findall('<poster>(.+?)</poster>', link) if r: vip = r[0] else: vip = 'Unknown' f = re.findall('<fanart>(.+?)</fanart>', link) if f: fan = f[0] else: fan = art + '/fanart2.jpg' info = re.findall( '<info><message>(.+?)</message><thumbnail>(.+?)</thumbnail></info>', link) if info: for msg, pic in info: main.addLink(msg, '', pic) popup = re.compile( '<popup><name>([^<]+)</name.+?popImage>([^<]+)</popImage.+?thumbnail>([^<]+)</thumbnail></popup>' ).findall(link) for name, image, thumb in popup: main.addPlayc(name, image, 244, thumb, '', '', '', '', '') directory = re.compile( '<dir><name>([^<]+)</name.+?link>([^<]+)</link.+?thumbnail>([^<]+)</thumbnail></dir>' ).findall(link) for name, url, thumb in directory: main.addDir(name, url, 246, thumb) match = re.compile( '<subchannel><name>(.+?)</name.+?fanart>(.+?)</fanart.+?thumbnail>(.+?)</thumbnail.+?link>(.+?)</link></subchannel>' ).findall(link) dialogWait = xbmcgui.DialogProgress() ret = dialogWait.create('Please wait until Movie list is cached.') totalLinks = len(match) loadedLinks = 0 remaining_display = 'Movies loaded :: [B]' + str( loadedLinks) + ' / ' + str(totalLinks) + '[/B].' dialogWait.update(0, '[B]Will load instantly from now on[/B]', remaining_display) for name, fan, thumb, url in match: main.addDown4(name + ' [COLOR blue]' + vip + '[/COLOR]', url, 247, thumb, '', fan, '', '', '') loadedLinks = loadedLinks + 1 percent = (loadedLinks * 100) / totalLinks remaining_display = 'Movies loaded :: [B]' + str( loadedLinks) + ' / ' + str(totalLinks) + '[/B].' dialogWait.update(percent, '[B]Will load instantly from now on[/B]', remaining_display) if (dialogWait.iscanceled()): return False dialogWait.close() del dialogWait main.GA(vip + "-Directory", vip + "-Playlist")
def MList(mname,murl): mname = mname.split('[C')[0] link=main.OPENURL(murl) link=link.replace('\r','').replace('\n','').replace('\t','').replace(' ','') r=re.findall('<poster>(.+?)</poster>',link) if r: vip=r[0] else: vip='Unknown' f=re.findall('<fanart>(.+?)</fanart>',link) if f: fan=f[0] else: fan=art+'/fanart2.jpg' info=re.findall('<info><message>(.+?)</message><thumbnail>(.+?)</thumbnail></info>',link) if info: for msg,pic in info: main.addLink(msg,'',pic) popup=re.compile('<popup><name>([^<]+)</name.+?popImage>([^<]+)</popImage.+?thumbnail>([^<]+)</thumbnail></popup>').findall(link) for name,image,thumb in popup: main.addPlayc(name,image,244,thumb,'',fan,'','','') directory=re.compile('<dir><name>([^<]+)</name.+?link>([^<]+)</link.+?thumbnail>([^<]+)</thumbnail></dir>').findall(link) for name,url,thumb in directory: main.addDirb(name,url,236,thumb,fan) match=re.compile('<title>([^<]+)</title.+?link>(.+?)</link.+?thumbnail>([^<]+)</thumbnail>').findall(link) dialogWait = xbmcgui.DialogProgress() ret = dialogWait.create('Please wait until Movie list is cached.') totalLinks = len(match) loadedLinks = 0 remaining_display = 'Movies loaded :: [B]'+str(loadedLinks)+' / '+str(totalLinks)+'[/B].' dialogWait.update(0,'[B]Will load instantly from now on[/B]',remaining_display) for name,url,thumb in match: if '</sublink>' in url: main.addDown4(name+' [COLOR blue]'+vip+'[/COLOR]',url,249,thumb,'',fan,'','','') else: main.addDown4(name+' [COLOR blue]'+vip+'[/COLOR]',url,237,thumb,'',fan,'','','') loadedLinks = loadedLinks + 1 percent = (loadedLinks * 100)/totalLinks remaining_display = 'Movies loaded :: [B]'+str(loadedLinks)+' / '+str(totalLinks)+'[/B].' dialogWait.update(percent,'[B]Will load instantly from now on[/B]',remaining_display) if (dialogWait.iscanceled()): return False dialogWait.close() del dialogWait main.GA(vip+"-Directory",vip+"-Playlist")
def EPISODES(mname,murl): sea=re.findall('\sSeason\s(\d+)',mname,re.DOTALL)[0] getepi=apibase+'/api/serials/es/?id='+murl+'&season='+sea link=main.OPENURL(getepi,ua=useragent) match=re.findall('"(\d+)":"([^"]+?)"',link,re.DOTALL) dialogWait = xbmcgui.DialogProgress() ret = dialogWait.create('Please wait until Episodes list is cached.') totalLinks = len(match) loadedLinks = 0 remaining_display = 'Episodes Cached :: [B]'+str(loadedLinks)+' / '+str(totalLinks)+'[/B].' dialogWait.update(0,'[B]Will load instantly from now on[/B]',remaining_display) xbmc.executebuiltin("XBMC.Dialog.Close(busydialog,true)") for epinum,thumb in match: main.addDown4(mname+' Episode '+epinum,apibase+'/api/serials/e?h='+murl+'&u='+sea+'&y='+epinum,279,thumb.replace('\/','/'),'','','','','') loadedLinks = loadedLinks + 1 percent = (loadedLinks * 100)/totalLinks remaining_display = 'Episodes Cached :: [B]'+str(loadedLinks)+' / '+str(totalLinks)+'[/B].' dialogWait.update(percent,'[B]Will load instantly from now on[/B]',remaining_display) if dialogWait.iscanceled(): return False
def MList(mname, murl): mname = mname.split("[C")[0] link = main.OPENURL(murl) link = link.replace("\r", "").replace("\n", "").replace("\t", "").replace(" ", "") r = re.findall("<poster>(.+?)</poster>", link) if r: vip = r[0] else: vip = "Unknown" f = re.findall("<fanart>(.+?)</fanart>", link) if f: fan = f[0] else: fan = art + "/fanart2.jpg" info = re.findall("<info><message>(.+?)</message><thumbnail>(.+?)</thumbnail></info>", link) if info: for msg, pic in info: main.addLink(msg, "", pic) popup = re.compile( "<popup><name>([^<]+)</name.+?popImage>([^<]+)</popImage.+?thumbnail>([^<]+)</thumbnail></popup>" ).findall(link) for name, image, thumb in popup: main.addPlayc(name, image, 244, thumb, "", fan, "", "", "") directory = re.compile( "<dir><name>([^<]+)</name.+?link>([^<]+)</link.+?thumbnail>([^<]+)</thumbnail></dir>" ).findall(link) for name, url, thumb in directory: main.addDirb(name, url, 236, thumb, fan) match = re.compile("<title>([^<]+)</title.+?link>(.+?)</link.+?thumbnail>([^<]+)</thumbnail>").findall(link) dialogWait = xbmcgui.DialogProgress() ret = dialogWait.create("Please wait until Movie list is cached.") totalLinks = len(match) loadedLinks = 0 remaining_display = "Movies loaded :: [B]" + str(loadedLinks) + " / " + str(totalLinks) + "[/B]." dialogWait.update(0, "[B]Will load instantly from now on[/B]", remaining_display) for name, url, thumb in match: if "</sublink>" in url: main.addDown4(name + " [COLOR blue]" + vip + "[/COLOR]", url, 249, thumb, "", fan, "", "", "") elif "</referer>" in url: main.addDown4(name + " [COLOR blue]" + vip + "[/COLOR]", url, 259, thumb, "", fan, "", "", "") else: main.addDown4(name + " [COLOR blue]" + vip + "[/COLOR]", url, 237, thumb, "", fan, "", "", "") loadedLinks = loadedLinks + 1 percent = (loadedLinks * 100) / totalLinks remaining_display = "Movies loaded :: [B]" + str(loadedLinks) + " / " + str(totalLinks) + "[/B]." dialogWait.update(percent, "[B]Will load instantly from now on[/B]", remaining_display) if dialogWait.iscanceled(): return False dialogWait.close() del dialogWait main.GA(vip + "-Directory", vip + "-Playlist")
def MList(mname, murl): mname = mname.split('[C')[0] link = main.OPENURL(murl) link = link.replace('\r', '').replace('\n', '').replace('\t', '').replace(' ', '') r = re.findall('<poster>(.+?)</poster>', link) if r: vip = r[0] else: vip = 'Unknown' f = re.findall('<fanart>(.+?)</fanart>', link) if f: fan = f[0] else: fan = art + '/fanart2.jpg' info = re.findall( '<info><message>(.+?)</message><thumbnail>(.+?)</thumbnail></info>', link) if info: for msg, pic in info: main.addLink(msg, '', pic) popup = re.compile( '<popup><name>([^<]+)</name.+?popImage>([^<]+)</popImage.+?thumbnail>([^<]+)</thumbnail></popup>' ).findall(link) for name, image, thumb in popup: main.addPlayc(name, image, 244, thumb, '', fan, '', '', '') directory = re.compile( '<dir><name>([^<]+)</name.+?link>([^<]+)</link.+?thumbnail>([^<]+)</thumbnail></dir>' ).findall(link) for name, url, thumb in directory: main.addDirb(name, url, 236, thumb, fan) match = re.compile( '<title>([^<]+)</title.+?link>(.+?)</link.+?thumbnail>([^<]+)</thumbnail>' ).findall(link) dialogWait = xbmcgui.DialogProgress() ret = dialogWait.create('Please wait until Movie list is cached.') totalLinks = len(match) loadedLinks = 0 remaining_display = 'Movies loaded :: [B]' + str( loadedLinks) + ' / ' + str(totalLinks) + '[/B].' dialogWait.update(0, '[B]Will load instantly from now on[/B]', remaining_display) xbmc.executebuiltin("XBMC.Dialog.Close(busydialog,true)") for name, url, thumb in match: if '</sublink>' in url: if '<SuperSearchThis!!!>' in link: main.addDown4(name + ' [COLOR blue]' + vip + '[/COLOR]', url, 21, thumb, '', fan, '', '', '') else: main.addDown4(name + ' [COLOR blue]' + vip + '[/COLOR]', url, 249, thumb, '', fan, '', '', '') elif '</referer>' in url: if '<SuperSearchThis!!!>' in link: main.addDown4(name + ' [COLOR blue]' + vip + '[/COLOR]', url, 21, thumb, '', fan, '', '', '') else: main.addDown4(name + ' [COLOR blue]' + vip + '[/COLOR]', url, 259, thumb, '', fan, '', '', '') elif '</dirlist>' in url: xurl = re.findall('<dirlist>(.+?)</dirlist>', url)[0] main.addDirb(name, xurl, 236, thumb, fan) elif '</noMeta>' in url: xurl = re.findall('<noMeta>(.+?)</noMeta>', url)[0] if '<SuperSearchThis!!!>' in link: main.addPlayc(name + ' [COLOR blue]' + vip + '[/COLOR]', xurl, 21, thumb, '', fan, '', '', '') else: main.addPlayc(name + ' [COLOR blue]' + vip + '[/COLOR]', xurl, 237, thumb, '', fan, '', '', '') else: if '<SuperSearchThis!!!>' in link: main.addDown4(name + ' [COLOR blue]' + vip + '[/COLOR]', url, 21, thumb, '', fan, '', '', '') else: main.addDown4(name + ' [COLOR blue]' + vip + '[/COLOR]', url, 237, thumb, '', fan, '', '', '') loadedLinks = loadedLinks + 1 percent = (loadedLinks * 100) / totalLinks remaining_display = 'Movies loaded :: [B]' + str( loadedLinks) + ' / ' + str(totalLinks) + '[/B].' dialogWait.update(percent, '[B]Will load instantly from now on[/B]', remaining_display) if (dialogWait.iscanceled()): return False dialogWait.close() del dialogWait main.GA(vip + "-Directory", vip + "-Playlist")
def LIST(type): path = os.path.join(profile, type.replace("25", "") + "_lite.json") f = open(path) field = json.loads(f.read()) dialogWait = xbmcgui.DialogProgress() ret = dialogWait.create("Please wait until Content list is cached.") if "25movies" in type: totalLinks = 25 else: totalLinks = len(field) loadedLinks = 0 remaining_display = "Content Cached :: [B]" + str(loadedLinks) + " / " + str(totalLinks) + "[/B]." dialogWait.update(0, "[B]Will load instantly from now on[/B]", remaining_display) xbmc.executebuiltin("XBMC.Dialog.Close(busydialog,true)") field = sorted(field, key=lambda x: x["poster"], reverse=True) try: updates = "" if "movies" in type or "25movies" in type: path = os.path.join(profile, "news_movies.json") else: path = os.path.join(profile, "news_tv.json") updates = open(path).read() field = sorted(field, key=lambda word: negtopos(updates.find('"id":' + word["id"] + ","))) except: pass if "25movies" in type: field = field[0:25] for data in field: # genre=str(data["genres"]).replace("u'",'').replace("'",'').replace("[",'').replace("]",'') if data["active"] == "1": thumb = str(data["poster"]).replace("\/'", "/") if "movies" in type or "25movies" in type: main.addDown4( main.unescapes(str(data["title"].encode("utf-8"))) + " (" + str(data["year"]) + ")", apibase + "/api/serials/get_movie_data?id=" + str(data["id"]), 279, thumb, "", "", "", "", "", ) elif "music" in type: main.addDirMs( main.unescapes(str(data["title"].encode("utf-8"))), apibase + "/api/serials/get_artist_data/?id=" + str(data["id"]) + "&type=1", 302, thumb, "", "", "", "", "", ) else: main.addDirT( main.unescapes(str(data["title"].encode("utf-8"))), data["id"] + "xoxe" + data["seasons"], 280, thumb, "", "", "", "", "", ) loadedLinks = loadedLinks + 1 percent = (loadedLinks * 100) / totalLinks remaining_display = "Content Cached :: [B]" + str(loadedLinks) + " / " + str(totalLinks) + "[/B]." dialogWait.update(percent, "[B]Will load instantly from now on[/B]", remaining_display) if dialogWait.iscanceled(): break main.GA("Mbox", "List") main.VIEWS()