def SECSCENE(murl): if murl == 'movies': main.GA(prettyName, "Movies") main.addDir('All Movies', 'http://www.scenesource.me/category/films/', 389, art + '/scenesource.png') main.addDir('BDRip', 'http://www.scenesource.me/category/films/bdrip/', 389, art + '/scenesource.png') main.addDir('BluRay', 'http://www.scenesource.me/category/films/bluray/', 389, art + '/scenesource.png') main.addDir('DVDRip', 'http://www.scenesource.me/category/films/dvdrip/', 389, art + '/scenesource.png') main.addDir('DVDSCR', 'http://www.scenesource.me/category/films/dvdscr/', 389, art + '/scenesource.png') main.addDir('CAM', 'http://www.scenesource.me/category/films/cam/', 389, art + '/scenesource.png') main.addDir('R5', 'http://www.scenesource.me/category/films/r5/', 389, art + '/scenesource.png') elif murl == 'tvshows': main.GA(prettyName, "Tv") main.addDir('All TV Shows', 'http://www.scenesource.me/category/tv/', 391, art + '/scenesource.png') main.addDir('DVD', 'http://www.scenesource.me/category/tv/dvd/', 389, art + '/scenesource.png') main.addDir('Sports', 'http://www.scenesource.me/category/tv/sports-tv/', 391, art + '/scenesource.png') main.addDir('PREAIR', 'http://www.scenesource.me/category/tv/preair/', 391, art + '/scenesource.png') main.VIEWSB2()
def LISTICE(murl, index=False): link = main.OPENURL(IceURL + murl) link = cleanHex(link) if '/tv/' in murl: match = re.compile( '<a name=i id=(\d+)></a><img class=star><a href=(/tv[^<]+?)>([^<]+?)</a>(.)*?<br>', re.DOTALL).findall(link) main.GA("TV", "IceFilms") else: main.addDir('Search for Movies', 'Movies', 286, art + '/search.png') match = re.compile( '<a name=i id=(\d+)></a><img class=star><a href=(/ip[^>]+?)>([^<]+?)</a>(.)*?<br>', re.DOTALL).findall(link) main.GA("HD", "IceFilms") dialogWait = xbmcgui.DialogProgress() ret = dialogWait.create('Please wait until Movie/Show list is cached.') totalLinks = len(match) loadedLinks = 0 remaining_display = 'Movies/Shows 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 imdb, url, title, hd in match: if hd: title += ' [COLOR red]HD[/COLOR]' title = re.sub('\s\s+', ' ', title) if '/tv/' in murl: main.addDirT(title.strip(), IceURL + url, 289, '', '', '', '', '', '', index=index) else: if index == 'True': main.addDirM(title.strip(), IceURL + url, 21, '', '', '', '', '', '', imdb) else: main.addDirM(title.strip(), IceURL + url, 283, '', '', '', '', '', '', imdb) loadedLinks += 1 percent = (loadedLinks * 100) / totalLinks remaining_display = 'Movies/Shows loaded :: [B]' + str( loadedLinks) + ' / ' + str(totalLinks) + '[/B].' dialogWait.update(percent, '[B]Will load instantly from now on[/B]', remaining_display) if dialogWait.iscanceled(): break dialogWait.close() del dialogWait main.VIEWS()
def LISTMov(murl): link = aflamOPENURL(murl) link = link.replace('\r', '').replace('\n', '').replace('\t', '').replace( ' ', '').replace('»', '') match = re.compile( """<a href="([^"]+)"><img src="([^"]+)" class=".+?alt="([^"]+)" />""", re.DOTALL).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 url, thumb, name in match: name = main.unescapes(name) main.addPlayM(name, url, 338, thumb, '', '', '', '', '') 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 paginate = re.compile( '''<a class="nextpostslink" href="([^"]+)">»</a>''').findall(link) if len(paginate) > 0: main.addDir('Next', paginate[0], 341, art + '/next2.png') main.GA("Aflam1", "List")
def COUNTRIESList(mname, murl): main.GA("Countries-" + mname, "Watched") link = main.OPENURL(murl) link = link.replace('\r', '').replace('\n', '').replace('\t', '').replace( ' ', '').replace( 'type=playlistname=Sorted by user-assigned order', '').replace( 'name=Sorted [COLOR=FF00FF00]by user-assigned order[/COLOR]', '').replace('name=Live Tv Channels Twothumb', '') match = re.compile( '<title>([^<]+)</title.+?link>(.+?)</link.+?thumbnail>([^<]+)</thumbnail>', re.DOTALL).findall(link) for name, url, thumb in sorted(match): main.addPlayL(name, url, 204, thumb, '', '', '', '', '', secName='By Country', secIcon=art + '/countrysec.png') main.VIEWSB()
def GLOBALBC(): main.GA("Plugin", "GlobalBC") #main.addDir('Search Global BC','gbc',170,art+'/search.png') main.addDir('Latest Local Video', 'http://globalnews.ca/bc/videos/', 166, art + '/globalbc.png') main.addDir('Latest National Video', 'http://globalnews.ca/national/videos/', 166, art + '/globalbc.png') main.addLink('[COLOR red]Programs[/COLOR]', '', '') main.addDir('BC1', 'bc1', 169, art + '/globalbc.png') main.addDir('News Hour', 'newshour', 169, art + '/globalbc.png') main.addDir('Noon News Hour', 'http://globalnews.ca/bc/videos/program/noon-news-hour-bc/', 166, art + '/globalbc.png') main.addDir('Morning News', 'morningnews', 169, art + '/globalbc.png') main.addDir('Global National', 'globalnat', 169, art + '/globalbc.png') main.addDir( 'Global National Mandarin', 'http://globalnews.ca/national/videos/program/global-national-mandarin/', 166, art + '/globalbc.png') main.addDir('16x9', '16x9', 169, art + '/globalbc.png') main.addDir( 'The West Block', 'http://globalnews.ca/national/videos/program/the-west-block/', 166, art + '/globalbc.png') main.addDir( 'The Morning Show', 'http://globalnews.ca/national/videos/program/the-morning-show/', 166, art + '/globalbc.png')
def VIPplaylists(murl): 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' match = re.compile( '<name>(.+?)</name><link>(.+?)</link><thumbnail>(.+?)</thumbnail><date>(.+?)</date>' ).findall(link) for name, url, thumb, date in match: main.addDirc(name + ' [COLOR red] Updated ' + date + '[/COLOR]', url, 182, thumb, '', fan, '', '', '') 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, '', '', '', '', '') main.GA("Live", vip + "-Playlists")
def MAINFMA(): main.GA("Plugin","FMA") main.addDir('Search','http://www.fma.com',646,art+'/search.png') main.addDir('All Movies','movies',570,art+'/az.png') main.addDir('Latest','http://www.freemoviesaddict.com/',568,art+'/latest.png') main.addDir('Genre','genre',571,art+'/genre.png') main.addDir('Year','year',571,art+'/year.png')
def SEARCH(): dialog = xbmcgui.Dialog() ret = dialog.select('[COLOR=FF67cc33][B]Choose A Search Type[/COLOR][/B]',['[B][COLOR=FF67cc33]TV Shows[/COLOR][/B]','[B][COLOR=FF67cc33]Movies[/COLOR][/B]']) if ret == -1: return if ret==0: murl='http://api.dramago.com/GetAllShows' keyb = xbmc.Keyboard('', 'Search For Shows') else: murl='http://api.dramago.com/GetAllMovies' keyb = xbmc.Keyboard('', 'Search For Movies') keyb.doModal() if (keyb.isConfirmed()): search = keyb.getText() encode=urllib.quote(search) link=main.OPENURL(murl) field=json.loads(link) for data in field: genre=str(data["genres"]).replace("u'",'').replace("'",'').replace("[",'').replace("]",'') if encode.lower()in(str(data["name"].encode('utf-8'))).lower(): if ret==0: main.addDirT(str(data["name"].encode('utf-8'))+' [COLOR red]'+str(data["rating"])+'/10[/COLOR] [COLOR blue]'+str(data["released"])+'[/COLOR]','http://api.dramago.com/GetDetails/'+str(data["id"]),275,'http://www.dramago.com/images/series/big/'+str(data["id"])+'.jpg',str(data["description"].encode('utf-8')),'','',genre,'') else: main.addDirM(str(data["name"].encode('utf-8'))+' [COLOR red]'+str(data["rating"])+'/10[/COLOR] [COLOR blue]'+str(data["released"])+'[/COLOR]','http://api.dramago.com/GetDetails/'+str(data["id"]),271,'http://www.dramago.com/images/series/big/'+str(data["id"])+'.jpg',str(data["description"].encode('utf-8')),'','',genre,'') else: return main.GA("Dramania","Search")
def LIST2(mname,murl,thumb,desc): main.GA("AnimeFreak","List") link=main.OPENURL(murl) link=main.unescapes(link) match = re.compile("""onClick="javascript:loadParts.?\'(.+?)', \'\'.?" class="multi">(.+?)</a>""").findall(link) if len(match)==0: match = re.compile('<iframe .+?src="(.+?)".+?/iframe>').findall(link) for url in match: host=re.compile("http://(.+?).?/.+?").findall(url) for hname in host: name=hname.replace('www.','').replace('embed.','').replace('.co','').replace('.t','').replace('.e','') main.addPlayc(mname+' [COLOR red]'+name+'[/COLOR]',url,627,thumb,desc,'','','','') else: for url, name in match: match2 = re.compile('<iframe(.+?)/iframe>').findall(url) if len(match2)>=2: for url in match2: match = re.compile('src="(.+?)"').findall(url) if len(match)==0: match = re.compile("src='(.+?)'").findall(url) for url in match: host=re.compile("http://(.+?).?/.+?").findall(url) for hname in host: name=hname.replace('www.','').replace('embed.','').replace('.co','').replace('.t','').replace('.e','') main.addPlayc(mname+' [COLOR red]'+name+'[/COLOR]',url,627,thumb,desc,'','','','') main.addPlayc(mname+' [COLOR red]'+name+'[/COLOR]',url,627,thumb,desc,'','','','')
def LISTTV4(murl): xbmc.executebuiltin( "XBMC.Notification(Please Wait!,Collecting Source Data,10000)") main.addDir('Search Rlsmix', 'rlsmix', 136, art + '/search.png') urllist = main.OPENURL( 'http://www.rlsmix.net/category/tv-shows/') + main.OPENURL( 'http://www.rlsmix.net/category/tv-shows/page/2/') + main.OPENURL( 'http://www.rlsmix.net/category/tv-shows/page/3/' ) + main.OPENURL( 'http://www.rlsmix.net/category/tv-shows/page/4/' ) + main.OPENURL( 'http://www.rlsmix.net/category/tv-shows/page/5/' ) + main.OPENURL( 'http://www.rlsmix.net/category/tv-shows/page/6/' ) + main.OPENURL( 'http://www.rlsmix.net/category/tv-shows/page/7/' ) + main.OPENURL( 'http://www.rlsmix.net/category/tv-shows/page/8/' ) + main.OPENURL( 'http://www.rlsmix.net/category/tv-shows/page/9/' ) + main.OPENURL( 'http://www.rlsmix.net/category/tv-shows/page/10/') if urllist: urllist = main.unescapes(urllist) match = re.compile( '<h1 class="titles"><a href="(.+?)" title="Permanent Link to (.+?)">.+?src="http://uppix.net/(.+?)"' ).findall(urllist) dialogWait = xbmcgui.DialogProgress() ret = dialogWait.create('Please wait until Show list is cached.') totalLinks = len(match) loadedLinks = 0 remaining_display = 'Episodes loaded :: [B]' + str( loadedLinks) + ' / ' + str(totalLinks) + '[/B].' dialogWait.update(0, '[B]Will load instantly from now on[/B]', remaining_display) for url, name, thumb in match: match2 = re.compile('TV Round Up').findall(name) name = name.replace('\xc2\xa0', '').replace('" ', '').replace( ' "', '').replace('"', '').replace("'", "'").replace( "&", "and").replace("’", "'").replace("amp;", "and").replace("#8211;", "-") if len(match2) == 0: main.addDirTE(name, url, 62, 'http://uppix.net/' + thumb, '', '', '', '', '') loadedLinks = loadedLinks + 1 percent = (loadedLinks * 100) / totalLinks remaining_display = 'Episodes 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("TV", "Rlsmix")
def LISTSP3(murl): subpages = 3 if murl == 'HD': page = 1 max = subpages else: try: pages = murl.split(',', 1) page = int(pages[0]) max = int(pages[1]) except: page = 1 url = 'http://rls1click.com/category/movies/1080p/' urls = [] for n in range(subpages): if page + n == 1: urls.append(url) else: urls.append(url + "page/" + str(page + n) + "/") if page + n == max: break page = page + subpages - 1 link = main.batchOPENURL(urls) if re.compile('"maxPages":"(\d+?)"').findall(link): max = int(re.compile('"maxPages":"(\d+?)"').findall(link)[0]) # link=link.replace('\r','').replace('\n','').replace('\t','').replace(' ','').replace('&','&') match = re.compile( '(?sim)<h1 class="post-title"><a href="([^"]+?)">([^<]+?)<.*?<img[^>]+?src="([^"]+?)"' ).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 url, title, thumb in match: url = url.decode('utf-8').encode('ascii', 'ignore') main.addPlayM(title, url, 408, thumb, '', '', '', '', '') loadedLinks = loadedLinks + 1 try: percent = (loadedLinks * 100) / totalLinks except: percent = 100 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(): break if page < max and loadedLinks >= totalLinks: main.addDir( 'Page ' + str(page / subpages) + ' [COLOR blue]Next Page >>>[/COLOR]', str(page + 1) + ',' + str(max), 407, art + '/next2.png') dialogWait.close() del dialogWait main.GA("HD-TV", "Rls1Click") main.VIEWS()
def LINKWATCHS(mname,murl): main.GA("Watchseries","Watched") ok=True playlist = xbmc.PlayList(xbmc.PLAYLIST_VIDEO) playlist.clear() match=re.compile('(.+?)xocx(.+?)xocx').findall(murl) for hurl, durl in match: furl=geturl('http://watchseries.lt'+hurl) xbmc.executebuiltin("XBMC.Notification(Please Wait!,Checking Link,1500)") link=main.OPENURL(durl) link=link.replace('\r','').replace('\n','').replace('\t','').replace(' ','') match2=re.compile('<h1 class=".+?"><a href=".+?">.+?</a> - <a href="(.+?)" title=".+?">.+?</a>').findall(link) for xurl in match2: link2=main.OPENURL('http://watchseries.lt'+xurl) link2=link2.replace('\r','').replace('\n','').replace('\t','').replace(' ','') descr=re.compile('<b>Description :</b>(.+?)<').findall(link2) if len(descr)>0: desc=descr[0] else: desc='' thumbs=re.compile('<td style=".+?"><a href=".+?"><img src="(.+?)"').findall(link2) if len(thumbs)>0: thumb=thumbs[0] else: thumb='' genres=re.compile('<b>Genre: <a href=.+?>(.+?)</a>').findall(link2) if len(genres)>0: genre=genres[0] else: genre='' infoLabels =main.GETMETAEpiT(mname,thumb,desc) video_type='episode' season=infoLabels['season'] episode=infoLabels['episode'] img=infoLabels['cover_url'] fanart =infoLabels['backdrop_url'] imdb_id=infoLabels['imdb_id'] infolabels = { 'supports_meta' : 'true', 'video_type':video_type, 'name':str(infoLabels['title']), 'imdb_id':str(infoLabels['imdb_id']), 'season':str(season), 'episode':str(episode), 'year':str(infoLabels['year']) } media = urlresolver.HostedMediaFile(furl) source = media try: if source: xbmc.executebuiltin("XBMC.Notification(Please Wait!,Resolving Link,4000)") stream_url = source.resolve() else: stream_url = False infoL={'Title': infoLabels['title'], 'Plot': infoLabels['plot'], 'Genre': infoLabels['genre']} # play with bookmark player = playbackengine.PlayWithoutQueueSupport(resolved_url=stream_url, addon_id=addon_id, video_type=video_type, title=str(infoLabels['title']),season=str(season), episode=str(episode), year=str(infoLabels['year']),img=img,infolabels=infoL, watchedCallbackwithParams=main.WatchedCallbackwithParams,imdb_id=imdb_id) #WatchHistory if selfAddon.getSetting("whistory") == "true": wh.add_item(mname+' '+'[COLOR green]WatchSeries[/COLOR]', sys.argv[0]+sys.argv[2], infolabels='', img=thumb, fanart='', is_folder=False) player.KeepAlive() return ok except Exception, e: if stream_url != False: main.ErrorReport(e) return ok
def LISTSHOWWATCHS(murl): main.GA("Watchseries","List") link=main.OPENURL(murl) link=link.replace('\r','').replace('\n','').replace('\t','') match=re.compile('<a title="(.+?)" href="(.+?)">.+?<span class="epnum">(.+?)</span></a>').findall(link) for name, url, year in match: main.addDirT(name,'http://watchseries.lt'+url,578,'','','','','','')
def LIST(murl): main.GA("DocumentaryWire", "List") link = main.OPENURL(murl) link = main.unescapes(link) r = re.findall( """<div class="loop-content switchable-view grid-small" data-view="grid-small">(.+?)<div class=\'wp-pagenavi\'>""", link) if r: match = re.compile( '<div class="thumb"><a class=".+?" data-id=".+?" title="(.+?)" href="(.+?)"><span class=".+?"><img src="(.+?)" alt=".+?" />.+?<p class="desc">(.+?)</p>' ).findall(r[0]) else: match = re.compile( '<div class="thumb"><a class=".+?" data-id=".+?" title="(.+?)" href="(.+?)"><span class=".+?"><img src="(.+?)" alt=".+?" />.+?<p class="desc">(.+?)</p>' ).findall(link) for name, url, thumb, desc in match: main.addPlayMs(name, url, 228, thumb, desc, '', '', '', '') paginate = re.compile( """'extend'>...</span><a href=\'(.+?)\' class="next">Next.+?</a>""" ).findall(link) if (len(paginate) == 0): paginate = re.compile( """<div class='wp-pagenavi'>.+?class='page larger'>[^\&]+</a><a href=\'([^\&]+)\' class="next">Next.+?</a>""" ).findall(link) if (len(paginate) > 0): for purl in paginate: main.addDir('[COLOR blue]Next[/COLOR]', purl, 227, art + '/next2.png')
def PLAYLINK(mname, murl, thumb): ok = True main.GA("Live", "SportsAccess") stream_url = get_link(murl) playlist = xbmc.PlayList(xbmc.PLAYLIST_VIDEO) playlist.clear() listitem = xbmcgui.ListItem(thumbnailImage=thumb) infoL = {'Title': mname, 'Genre': 'Live'} from resources.universal import playbackengine, watchhistory player = playbackengine.PlayWithoutQueueSupport( resolved_url=stream_url, addon_id=addon_id, video_type='movie', title=mname, season='', episode='', year='', img=thumb, infolabels=infoL, watchedCallbackwithParams='', imdb_id='') wh = watchhistory.WatchHistory('plugin.video.movie25') #WatchHistory if selfAddon.getSetting("whistory") == "true": wh.add_item(mname + ' ' + '[COLOR green]' + prettyName + '[/COLOR]', sys.argv[0] + sys.argv[2], infolabels='', img=thumb, fanart='', is_folder=False) return ok
def SKYSPORTSList2(murl): main.GA("SkySports", "List") link = main.OPENURL(murl) link = link.replace('\r', '').replace('\n', '').replace('\t', '').replace(' ', '') page = re.compile('data-current-page=".+?" data-pattern="(.+?)">').findall( link) if len(page) > 0: for durl in page: durl = durl.replace('{currentPage}', '1').replace('/12/', '/75/') link2 = main.OPENURL('http://www1.skysports.com' + durl) link2 = link2.replace('\r', '').replace('\n', '').replace('\t', '').replace( ' ', '') match = re.compile( '<a href="([^"]+)" class=".+?data-src="([^"]+)" class=".+?<h4 class=".+?">([^<]+)</h4>.+?">([^<]+)</p>.+?">([^<]+)</button>' ).findall(link) for url, thumb, name, date, typ in match: thumb = thumb.replace('16-9/#{30}', '384x216') if name != 'Sky Sports News Report': if typ == 'Watch Now': main.addPlayMs(name + ' [COLOR red]' + date + '[/COLOR]', url, 174, thumb, '', '', '', '', '') else: main.addPlayMs( '[COLOR red]' + name + '[/COLOR]' + ' ' + date, url, 177, thumb, '', '', '', '', '') else: xbmc.executebuiltin( "XBMC.Notification(Sorry!,No Video's to list,3000)")
def SKYSPORTSLink(mname, murl): main.GA("SkySports", "Watched") xbmc.executebuiltin("XBMC.Notification(Please Wait!,Playing Video,1500)") ok = True link = main.OPENURL(murl) link = link.replace('\r', '').replace('\n', '').replace('\t', '').replace(' ', '') match = re.compile('data-video-id="([^"]+?)"').findall(link) vlink = 'http://cf.c.ooyala.com/' + match[0] + '/' + match[0] + '_1.f4m' desc = re.compile('<meta name="description" content="(.+?)"/>').findall( link) thumb = re.compile("<link rel='image_src' href='([^']+?)' />").findall( link)[0] print infoL = {"Title": mname, "Plot": desc[0]} from resources.universal import F4mProxy player = F4mProxy.f4mProxyHelper() proxy = None use_proxy_for_chunks = False player.playF4mLink(vlink, mname, proxy, use_proxy_for_chunks, '', thumb) if selfAddon.getSetting("whistory") == "true": from resources.universal import watchhistory wh = watchhistory.WatchHistory(addon_id) wh.add_item(mname + ' ' + '[COLOR green]SkySports[/COLOR]', sys.argv[0] + sys.argv[2], infolabels=infoL, img=thumb, fanart='', is_folder=False)
def LISTNG2(murl): MainUrl = 'http://video.nationalgeographic.com' link = main.OPENURL(murl) match2 = re.compile( 'http://video.nationalgeographic.com/video/animals').findall(murl) match3 = re.compile( 'http://video.nationalgeographic.com/video/kids').findall(murl) match = re.compile( '<a href="(.+?)" title="(.+?)"><img src="(.+?)"></a>').findall(link) for url, name, thumb in match: name = name.replace("'", "'").replace('<i>', '').replace( '</i>', '').replace('"', '"').replace('&quot;', '"').replace('&', '&') if (len(match2) == 0) and (len(match3) == 0): main.addPlayMs(name, MainUrl + url, 74, MainUrl + thumb, '', '', '', '', '') else: main.addPlayMs(name, MainUrl + url, 75, MainUrl + thumb, '', '', '', '', '') paginate = re.compile( """\n if ((.+?) === (.+?)) .+?\n .+?<li><a href="(.+?)">Next »</a></li>""" ).findall(link) if (len(paginate) > 0): for pges, pg, pgtot, purl in paginate: pg = pg.replace('(', '') pgtot = pgtot.replace(')', '') if pgtot != pg: main.addDir('Page ' + str(int(pg) + 1), MainUrl + purl + pg + '/', 73, art + '/next2.png') main.GA("NG-Show", "List")
def LIST(murl): link=main.OPENURL(murl) field=json.loads(link) dialogWait = xbmcgui.DialogProgress() ret = dialogWait.create('Please wait until Movie list is cached.') totalLinks = len(field) loadedLinks = 0 remaining_display = 'Movies/Shows 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 data in field: genre=str(data["genres"]).replace("u'",'').replace("'",'').replace("[",'').replace("]",'') if 'Movies' in murl: try: desc=str(data["description"].encode('utf-8')) except: desc =' ' main.addDirM(str(data["name"].encode('utf-8'))+' [COLOR red]'+str(round(data["rating"],2)).rstrip('0').rstrip('.')+'/10[/COLOR] [COLOR blue]'+str(data["released"])+'[/COLOR]','http://api.dramago.com/GetDetails/'+str(data["id"]),271,'http://www.dramago.com/images/series/big/'+str(data["id"])+'.jpg',desc,'','',genre,'') else: main.addDirT(str(data["name"].encode('utf-8'))+' [COLOR red]'+str(round(data["rating"],2)).rstrip('0').rstrip('.')+'/10[/COLOR] [COLOR blue]'+str(data["released"])+'[/COLOR]','http://api.dramago.com/GetDetails/'+str(data["id"]),275,'http://www.dramago.com/images/series/big/'+str(data["id"])+'.jpg',str(data["description"].encode('utf-8')),'','',genre,'') loadedLinks = loadedLinks + 1 percent = (loadedLinks * 100)/totalLinks remaining_display = 'Movies/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 main.GA("Dramania","List")
def SEARCHEXTRA(murl): seapath = os.path.join(main.datapath, 'Search') SeaFile = os.path.join(seapath, 'SearchHistory25') try: os.makedirs(seapath) except: pass if murl == 'extra': keyb = xbmc.Keyboard('', 'Search Movies') keyb.doModal() if (keyb.isConfirmed()): search = keyb.getText() encode = urllib.quote(search) surl = 'http://www.watching-now.com/search?q=' + encode + '&x=-911&y=-656' if not os.path.exists(SeaFile) and encode != '': open(SeaFile, 'w').write('search="%s",' % encode) else: if encode != '': open(SeaFile, 'a').write('search="%s",' % encode) searchis = re.compile('search="(.+?)",').findall( open(SeaFile, 'r').read()) for seahis in reversed(searchis): continue if len(searchis) >= 10: searchis.remove(searchis[0]) os.remove(SeaFile) for seahis in searchis: try: open(SeaFile, 'a').write('search="%s",' % seahis) except: pass else: encode = murl surl = 'http://www.watching-now.com/search?q=' + encode + '&x=-911&y=-656' link = main.OPENURL(surl) link = link.replace('\xc2\xa0', '').replace('\n', '') match = re.compile( """<h3 class='post-title entry-title'><a href='([^<]+)'>(.+?)</a>.+?src="(.+?)".+?""", re.DOTALL).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 url, name, thumb in match: main.addPlayM(name, url, 536, thumb, '', '', '', '', '') 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("Watching Now", "Search")
def LISTFMA(murl): link=main.OPENURL(murl) link=link.replace('\r','').replace('\n','').replace('\t','').replace(' ','') match=re.compile('<img class=\'.+?\' src=\'(.+?)\' alt=\'.+?\' />.+?<a class=\'.+?\' href=\'/(.+?)\'>(.+?)</a>.+?<a href=\'/movies/year/.+?\'>(.+?)</a>.+?<a href=\'/movies/genre/.+?\'>(.+?)</a>.+?</span><span class=".+?">(.+?)</span>').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 thumb,url,name, year, gen, desc in match: main.addPlayM(name,'http://www.freemoviesaddict.com/'+url,569,thumb,desc,'','',gen,year) 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 paginate = re.compile('<span class="pagination_next"><a class="pagination_link" href="(.+?)">').findall(link) if len(paginate)>0: main.addDir('Next','http://www.freemoviesaddict.com/'+paginate[0],568,art+'/next2.png') main.GA("FMA","list") xbmcplugin.setContent(int(sys.argv[1]), 'Movies') main.VIEWS()
def LISTEXrecent(murl): link = main.OPENURL(murl) link = link.replace('\r', '').replace('\n', '').replace('\t', '').replace( ' ', '').replace('\xc2\xa0', '') match = re.compile( """<h3 class='post-title entry-title'><a href='([^<]+)'>(.+?)</a>.+?src="(.+?)".+?""", re.DOTALL).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 url, name, thumb in match: main.addPlayM(name, url, 536, thumb, '', '', '', '', '') 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 paginate = re.compile( "<a class='blog-pager-older-link' href='(.+?)' id='.+?' title='Next Movie Page'>Next Page.+?</a>" ).findall(link) if len(paginate) > 0 and len(match) == 20: main.addDir('Next', paginate[0], 532, art + '/next2.png') main.GA("Watching Now", "Recent")
def CHANNELCList(murl): link = main.OPENURL(murl) match = re.compile('<li>(.+?): <a href="(.+?)">(.+?)</a> </li>').findall( link) dialogWait = xbmcgui.DialogProgress() ret = dialogWait.create('Please wait until Show list is cached.') totalLinks = len(match) loadedLinks = 0 remaining_display = 'Episodes loaded :: [B]' + str( loadedLinks) + ' / ' + str(totalLinks) + '[/B].' dialogWait.update(0, '[B]Will load instantly from now on[/B]', remaining_display) for date, url, name in match: main.addPlayTE(name + ' [COLOR red]' + date + '[/COLOR]', url, 547, '', '', '', '', '', '') loadedLinks = loadedLinks + 1 percent = (loadedLinks * 100) / totalLinks remaining_display = 'Episodes 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("TV", "CC/Tv4")
def WILDTV(murl): main.GA("Sports", "Wildtv") link = main.OPENURL(murl) match = re.compile('<option value="(.+?)">(.+?)</option>').findall(link) for idnum, name in match: url = 'https://www.wildtv.ca/show/' + idnum main.addDir(name, url, 93, art + '/wildtv.png')
def LISTPFTV(murl,index=False): main.GA(prettyName,"List") link=main.OPENURL(murl) link=link.replace('\r','').replace('\n','').replace('\t','') match=re.compile('''class="mnlcategorylist"><a href="([^"]+?)"><b>([^<]+?)<span style='.+?'>\((.+?)\)''').findall(link) dialogWait = xbmcgui.DialogProgress() ret = dialogWait.create('Please wait until Show list is cached.') totalLinks = len(match) loadedLinks = 0 remaining_display = 'Episodes loaded :: [B]'+str(loadedLinks)+' / '+str(totalLinks)+'[/B].' dialogWait.update(0,'[B]Will load instantly from now on[/B]',remaining_display) for url, name, count in match: name=re.sub('\((\d+)x(\d+)\)','',name,re.I) episode = re.search('Seas(on)?\.? (\d+).*?Ep(isode)?\.? (\d+)',name, re.I) if(episode): e = str(episode.group(4)) if(len(e)==1): e = "0" + e s = episode.group(2) if(len(s)==1): s = "0" + s name = re.sub('Seas(on)?\.? (\d+).*?Ep(isode)?\.? (\d+)','',name,re.I) name = name.strip() + " " + "S" + s + "E" + e if index == 'True': main.addDirTE(name,BASE_URL+url,21,'','','','','','') else: main.addDirTE(name,BASE_URL+url,461,'','','','','','') loadedLinks = loadedLinks + 1 percent = (loadedLinks * 100)/totalLinks remaining_display = 'Episodes 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
def iWatchLISTMOVIES(murl): main.GA("Movies","List") link=main.OPENURL(murl) link=link.replace('\r','').replace('\n','').replace('\t','').replace(' ','') match=re.compile('<li.+?<a.+?href=\"(.+?)\".+?<img.+?src=\"(.+?)\".+?<div class=\"title.+?>(.+?)<div').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 url,thumb,name in match: main.addDirIWO(name,url,588,thumb,'','','','','') 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 if len(match)==25: paginate=re.compile('([^<]+)start=([^<]+)').findall(murl) for purl,page in paginate: i=int(page)+25 pg=(int(page)/25)+2 if pg >2: main.addDir('[COLOR red]Home[/COLOR]','',2000,art+'/home.png') main.addDir('[COLOR blue]Page '+ str(pg)+'[/COLOR]',purl+'start='+str(i),587,art+'/next2.png') main.addDir('[COLOR red]Enter Page #[/COLOR]',murl,654,art+'/gotopage.png') xbmcplugin.setContent(int(sys.argv[1]), 'Movies') main.VIEWS()
def LISTSP3(murl): if murl == 'HD': url = 'http://board.dailyflix.net/index.php?/forum/196-hd-movies-2012-2013/page__sort_key__last_post__sort_by__Z-A' link = main.OPENURL(url) link = link.replace('\r', '').replace('\n', '').replace('\t', '').replace( ' ', '').replace('&', '&') match = re.compile( '<a itemprop=".+?" id=".+?" href="([^<]+)" title=.+? class=.+?><span itemprop="name">(.+?)</span>' ).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 url, name in match: url = url.decode('utf-8').encode('ascii', 'ignore') name = main.unescapes(name) main.addPlayM(name, url, 54, '', '', '', '', '', '') 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("HD-TV", "Dailyfix") main.VIEWS()
def FOXSOCLink(mname,entry): main.GA("FoxSoccer","Watched") ok= True low=re.compile('<videoFile formatCode="102".+?<uri>([^<]+)</uri></videoFile>').findall(entry) med=re.compile('<videoFile formatCode="103".+?<uri>([^<]+)</uri></videoFile>').findall(entry) high=re.compile('<videoFile formatCode="104".+?<uri>([^<]+)</uri></videoFile>').findall(entry) if selfAddon.getSetting("tsn-qua") == "0": if len(high)>0: stream_url=high[0] else: stream_url=low[0] if selfAddon.getSetting("tsn-qua") == "1": if len(med)>0: stream_url=med[0] else: stream_url=low[0] if selfAddon.getSetting("tsn-qua") == "2": if len(low)>0: stream_url=low[0] else: stream_url=med[0] desc=re.compile('<description>([^<]+)</description>').findall(entry) thumb=re.compile('<file formatCode="2001".+?<uri>([^<]+)</uri></file>').findall(entry) infoL={ "Title": mname, "Plot": desc[0]} # play with bookmark player = playbackengine.PlayWithoutQueueSupport(resolved_url=stream_url, addon_id=addon_id, video_type='', title=mname,season='', episode='', year='',img=thumb[0],infolabels=infoL, watchedCallbackwithParams=main.WatchedCallbackwithParams,imdb_id='') #WatchHistory if selfAddon.getSetting("whistory") == "true": wh.add_item(mname+' '+'[COLOR green]Fox Soccer[/COLOR]', sys.argv[0]+sys.argv[2], infolabels='', img=thumb[0], fanart='', is_folder=False) player.KeepAlive() return ok
def MAINAFLAM(): main.addDir('Search (بحث)', 'aflam', 342, art + '/search.png') main.addDir('Home (الرئيسية)', 'http://www.aflam1.com/', 336, art + '/aflam1.png') main.addDir( 'Egyptian Series (مسلسلات مصرية)', 'http://www.aflam1.com/%d9%85%d8%b3%d9%84%d8%b3%d9%84%d8%a7%d8%aa/%d9%85%d8%b3%d9%84%d8%b3%d9%84%d8%a7%d8%aa-%d9%85%d8%b5%d8%b1%d9%8a%d8%a9/', 339, art + '/aflam1.png') main.addDir( 'Syria Series (مسلسلات سورية)', 'http://www.aflam1.com/%d9%85%d8%b3%d9%84%d8%b3%d9%84%d8%a7%d8%aa/%d9%85%d8%b3%d9%84%d8%b3%d9%84%d8%a7%d8%aa-%d8%b3%d9%88%d8%b1%d9%8a%d8%a9/', 339, art + '/aflam1.png') main.addDir( 'Turkish Series (مسلسلات تركية)', 'http://www.aflam1.com/%d9%85%d8%b3%d9%84%d8%b3%d9%84%d8%a7%d8%aa/%d9%85%d8%b3%d9%84%d8%b3%d9%84%d8%a7%d8%aa-%d8%aa%d8%b1%d9%83%d9%8a%d8%a9/', 339, art + '/aflam1.png') main.addDir( 'Series foreign (مسلسلات أجنبية)', 'http://www.aflam1.com/%d9%85%d8%b3%d9%84%d8%b3%d9%84%d8%a7%d8%aa/%d9%85%d8%b3%d9%84%d8%b3%d9%84%d8%a7%d8%aa-%d8%a3%d8%ac%d9%86%d8%a8%d9%8a%d8%a9/', 339, art + '/aflam1.png') main.addDir( 'Movies (أفلام)', 'http://www.aflam1.com/%d8%a3%d9%81%d9%84%d8%a7%d9%85/%d8%a3%d9%81%d9%84%d8%a7%d9%85-%d8%a3%d8%ac%d9%86%d8%a8%d9%8a%d8%a9/', 341, art + '/aflam1.png') main.addDir( 'Egyptian New Movies (أفلام مصرية جديدة)', 'http://www.aflam1.com/%d8%a3%d9%81%d9%84%d8%a7%d9%85/%d8%a3%d9%81%d9%84%d8%a7%d9%85-%d9%85%d8%b5%d8%b1%d9%8a%d8%a9-%d8%ac%d8%af%d9%8a%d8%af%d8%a9/', 341, art + '/aflam1.png') main.addDir( 'Films Ancient Egyptian (أفلام مصرية قديمة)', 'http://www.aflam1.com/%d8%a3%d9%81%d9%84%d8%a7%d9%85/%d8%a3%d9%81%d9%84%d8%a7%d9%85-%d9%85%d8%b5%d8%b1%d9%8a%d8%a9-%d9%82%d8%af%d9%8a%d9%85%d8%a9/', 341, art + '/aflam1.png') main.GA("Plugin", "Aflam1")
def LINKINT(mname, url): main.GA("Einthusan", "Watched") ok = True MainUrl = "http://www.einthusan.com/movies/" link = main.OPENURL(url) try: match = re.compile("'hd-2': { 'file': '(.+?)'").findall(link) thumb = re.compile('<img src="(../images.+?)"').findall(link) infoLabels = main.GETMETAT(mname, '', '', thumb[0]) video_type = 'movie' season = '' episode = '' img = infoLabels['cover_url'] fanart = infoLabels['backdrop_url'] imdb_id = infoLabels['imdb_id'] infolabels = { 'supports_meta': 'true', 'video_type': video_type, 'name': str(infoLabels['title']), 'imdb_id': str(infoLabels['imdb_id']), 'season': str(season), 'episode': str(episode), 'year': str(infoLabels['year']) } desc = ' ' for stream_url in match: continue infoL = { 'Title': infoLabels['title'], 'Plot': infoLabels['plot'], 'Genre': infoLabels['genre'] } # play with bookmark player = playbackengine.PlayWithoutQueueSupport( resolved_url=stream_url, addon_id=addon_id, video_type=video_type, title=infoLabels['title'], season=season, episode=episode, year=str(infoLabels['year']), img=img, infolabels=infoL, watchedCallbackwithParams=main.WatchedCallbackwithParams, imdb_id=imdb_id) #WatchHistory if selfAddon.getSetting("whistory") == "true": wh.add_item(mname + ' ' + '[COLOR green]Einthusan[/COLOR]', sys.argv[0] + sys.argv[2], infolabels='', img=MainUrl + thumb[0], fanart='', is_folder=False) player.KeepAlive() return ok except Exception, e: if stream_url != False: main.ErrorReport(e) return ok