def LIST(murl): link=main.OPENURL(murl) link=link.replace('\r','').replace('\n','').replace('\t','').replace(' ','') match=re.compile('(?sim)<img src="([^"]+?)" alt="([^"]+?)" /></div>.+?<a href="([^"]+?)"><span>views</span>(.+?)</a>').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 thumb,name,url,views in match: main.addPlayM(name+' [COLOR red]('+views+')[/COLOR]',url,436,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(): break dialogWait.close() del dialogWait paginate = re.compile('Total Pages: (.+?)</li>',re.DOTALL).findall(link) if paginate: paginate=paginate[0] main.addDir('[COLOR red]Enter Page #[/COLOR]',murl,437,art+'/gotopage.png') page = re.compile('/page/(\d+)/',re.DOTALL).findall(murl)[0] nextpage=int(page)+1 finalpage=re.sub('page/\d+?/', 'page/'+str(nextpage) + '/',murl) main.addDir('Page ' + str(page) + ' [COLOR blue]Next Page >>>[/COLOR]',finalpage,435,art+'/next2.png') main.GA(prettyName,"List") main.VIEWS()
def AZLISTNB(murl): nrDomain = GetNewUrl() if selfAddon.getSetting("hide-download-instructions") != "true": main.addLink( "[COLOR red]For Download Options, Bring up Context Menu Over Selected Link.[/COLOR]", '', art + '/link.png') match = re.compile("href='(.+?)'>(.+?)</a>").findall(murl) 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: name = fix_title(main.unescapes(name)) url = nrDomain + url loadedLinks += 1 name = name.decode('iso-8859-1').encode('utf8') main.addDown3(name, url, 58, '', '', loadedLinks) 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("Noobroom", "List") 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 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 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 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 INDEX2(url): html = main.OPENURL2(url) if html == None: return pattern = 'title="Watch online: ([^"]*)" href="/([^"]*)"><img border="0" alt=".+?" src="([^"]*)"></a>' r = re.findall(r''+pattern+'', html, re.M|re.DOTALL) dialogWait = xbmcgui.DialogProgress() ret = dialogWait.create('Please wait until list is cached.') totalLinks = len(r) loadedLinks = 0 remaining_display = 'Media loaded :: [B]'+str(loadedLinks)+' / '+str(totalLinks)+'[/B].' dialogWait.update(0,'[B]Will load instantly from now on[/B]',remaining_display) for name, nurl,thumb in r: loadedLinks = loadedLinks + 1 percent = (loadedLinks * 100)/totalLinks remaining_display = 'Media loaded :: [B]'+str(loadedLinks)+' / '+str(totalLinks)+'[/B].' dialogWait.update(percent,'[B]Will load instantly from now on[/B]',remaining_display) url = BASE_URL+nurl main.addDirM(name,url,1026,'http://www.tubeplus.me'+thumb,'','','','','') if (dialogWait.iscanceled()): return False if re.findall(r'<div id="paging">', html): r = re.findall('\<li title="Page (\d+)"\>.+?"\>(\d+)(?=\<\/a\>\<\/li\>\<li title="Next Page"\>\<a href="/(.+?)")',html) for current, total, npurl in r: name = '[COLOR=FF67cc33]Page '+current+' of '+total+', Next Page >>>[/COLOR]' main.addDir(name, BASE_URL+npurl, 1048, art+'/nextpage.png') url = url+':'+total name = '[COLOR=FF67cc33]Goto Page[/COLOR]' main.addDir(name, url, 1028, art+'/gotopagetr.png') main.VIEWS() dialogWait.close()
def iWatchLISTSHOWS(murl, index=False): main.GA("Tvshows", "List") link = main.OPENURL(murl) link = link.replace('\r', '').replace('\n', '').replace('\t', '').replace(' ', '') videos = re.search('<ul class="thumbnails">(.+?)</ul>', link) if videos: videos = videos.group(1) match = re.compile( '<li.+?<a[^>]+?href=\"([^"]+?)\".+?<img[^>]+?src=\"([^"]+?)\".+?<div class=\"title[^>]+?>([^>]+?)<div' ).findall(videos) for url, thumb, name in match: main.addDirT(name, url, 590, thumb, '', '', '', '', '', index=index) if len(match) == 25: paginate = re.compile('([^<]+)&p=([^<]+)').findall(murl) for purl, page in paginate: i = int(page) + 25 main.addDir('[COLOR blue]Next[/COLOR]', purl + '&p=' + str(i), 589, art + '/next2.png', index=index) xbmcplugin.setContent(int(sys.argv[1]), 'Movies') main.VIEWS()
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 iWatchLISTMOVIES(murl, index=False): main.GA("Movies", "List") link = main.OPENURL(murl) link = link.replace('\r', '').replace('\n', '').replace('\t', '').replace(' ', '') videos = re.search('<ul class="thumbnails">(.+?)</ul>', link) if videos: videos = videos.group(1) match = re.compile( '<li.+?<a.+?href=\"(.+?)\".+?<img.+?src=\"(.+?)\".+?<div class=\"title.+?>(.+?)<div' ).findall(videos) 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 url, thumb, name in match: if index == 'True': main.addDirIWO(name, url, 21, thumb, '', '', '', '', '') else: 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()): break dialogWait.close() del dialogWait if len(match) == 25 and loadedLinks == 25: print "poooooooooooooop" + murl paginate = re.compile('(http://.+?&)p=(\d+)').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 red]Enter Page #[/COLOR]', murl, 654, art + '/gotopage.png', index=index) main.addDir('[COLOR blue]Page ' + str(pg) + '[/COLOR]', purl + 'p=' + str(i), 587, art + '/next2.png', index=index) xbmcplugin.setContent(int(sys.argv[1]), 'Movies') main.VIEWS()
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 LISTSP2(murl): if murl=='3D': xbmc.executebuiltin("XBMC.Notification(Please Wait!,Collecting Source Data,5000)") main.addDir('Search Newmyvideolinks','movieNEW',102,art+'/search.png') check=main.OPENURL('http://www.myvideolinks.eu/category/movies/3-d-movies/') match=re.compile('<p><a href=".+?" >Next Page »</a></p>').findall(check) if len(match)>0: urllist=main.OPENURL('http://www.myvideolinks.eu/category/movies/3-d-movies/')+main.OPENURL('http://www.myvideolinks.eu/category/movies/3-d-movies/page/2/') else: urllist=main.OPENURL('http://www.myvideolinks.eu/category/movies/3-d-movies/') elif murl=='TV': xbmc.executebuiltin("XBMC.Notification(Please Wait!,Collecting Source Data,10000)") main.addDir('Search Newmyvideolinks','tvNEW',102,art+'/search.png') urllist=main.OPENURL('http://www.myvideolinks.eu/category/tv-shows/')+main.OPENURL('http://www.myvideolinks.eu/category/tv-shows/page/2/')+main.OPENURL('http://www.myvideolinks.eu/category/tv-shows/page/3/')+main.OPENURL('http://www.myvideolinks.eu/category/tv-shows/page/4/')+main.OPENURL('http://www.myvideolinks.eu/category/tv-shows/page/5/')+main.OPENURL('http://www.myvideolinks.eu/category/tv-shows/page/6/')+main.OPENURL('http://www.myvideolinks.eu/category/tv-shows/page/7/')+main.OPENURL('http://www.myvideolinks.eu/category/tv-shows/page/8/')+main.OPENURL('http://www.myvideolinks.eu/category/tv-shows/page/9/')+main.OPENURL('http://www.myvideolinks.eu/category/tv-shows/page/10/') else: xbmc.executebuiltin("XBMC.Notification(Please Wait!,Collecting Source Data,10000)") main.addDir('Search Newmyvideolinks','movieNEW',102,art+'/search.png') urllist=main.OPENURL('http://www.myvideolinks.eu/category/movies/bluray/')+main.OPENURL('http://www.myvideolinks.eu/category/movies/bluray/page/2/')+main.OPENURL('http://www.myvideolinks.eu/category/movies/bluray/page/3/')+main.OPENURL('http://www.myvideolinks.eu/category/movies/bluray/page/4/')+main.OPENURL('http://www.myvideolinks.eu/category/movies/bluray/page/5/')+main.OPENURL('http://www.myvideolinks.eu/category/movies/bluray/page/6/')+main.OPENURL('http://www.myvideolinks.eu/category/movies/bluray/page/7/')+main.OPENURL('http://www.myvideolinks.eu/category/movies/bluray/page/8/') if urllist: urllist=main.unescapes(urllist) #link=main.OPENURL(xurl) match=re.compile("""<a href=".+?" rel=".+?" title=".+?"> <img src="(.+?)" width=".+?" height=".+?" title="(.+?)" class=".+?"></a><h4><a href="(.+?)" rel""").findall(urllist) dialogWait = xbmcgui.DialogProgress() ret = dialogWait.create('Please wait until Movie list is cached.') totalLinks = len(match) loadedLinks = 0 remaining_display = 'Movies/Episodes Cached :: [B]'+str(loadedLinks)+' / '+str(totalLinks)+'[/B].' dialogWait.update(0,'[B]Will load instantly from now on[/B]',remaining_display) if len(match)>0: for thumb,name,url in match: if murl=='TV': match=re.compile('720p').findall(name) if (len(match)>0): main.addDirTE(name,url,35,thumb,'','','','','') else: main.addDirM(name,url,35,thumb,'','','','','') xbmcplugin.setContent(int(sys.argv[1]), 'Movies') 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 dialogWait.close() del dialogWait main.GA("HD-3D-HDTV","Newmyvideolinks") main.VIEWS()
def ListSceneLogItems(murl, quality='all'): if murl.startswith('Movies'): main.addDir('Search SceneLog', 'Movies', 659, art + '/search.png') subpages = 5 category = "movies" elif murl.startswith('TV'): main.addDir('Search SceneLog', 'TV', 659, art + '/search.png') subpages = 5 category = "tv-shows" parts = murl.split('-', 1) max = subpages try: pages = parts[1].split(',', 1) page = int(pages[0]) max = int(pages[1]) murl = parts[0] except: page = 0 page = page * subpages html = '' urls = [] for n in range(subpages): if page + n + 1 > max: break urls.append('http://scnlog.eu/' + category + '/page/' + str(page + n + 1) + '/') cached_path = os.path.join( os.path.join(main.datapath, 'Temp'), filename + '_' + murl + "-" + str(page) + '.cache') cached = main.getFile(cached_path) if cached: xbmc.executebuiltin("XBMC.Dialog.Close(busydialog,true)") html = cached else: html = main.batchOPENURL(urls) main.setFile(cached_path, html) hasNextPage = re.compile('<strong>»</strong>').findall(html) if len(hasNextPage) < subpages: page = None hasMax = re.compile('page/(\d+)/">Last »').findall(html) if hasMax: max = hasMax[0] if html: ShowSceneLogItems(html, murl, quality) if not page is None: main.addDir('Page ' + str(page / subpages + 1) + ', Next Page >>>', murl + "-" + str(page / subpages + 1) + "," + max, 657, art + '/next2.png') main.GA("Movies-TV", "SceneLog") main.VIEWS()
def iWatchLISTSHOWS(murl): main.GA("Tvshows","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) for url,thumb,name in match: main.addDirT(name,url,590,thumb,'','','','','') print len(match) if len(match)==25: paginate=re.compile('([^<]+)start=([^<]+)').findall(murl) for purl,page in paginate: i=int(page)+25 main.addDir('[COLOR blue]Next[/COLOR]',purl+'start='+str(i),589,art+'/next2.png') xbmcplugin.setContent(int(sys.argv[1]), 'Movies') main.VIEWS()
def LISTSHOWS(murl, channel, CachePath, index=False): cacheFilePath = os.path.join(CachePath, cacheFileName) channel = channel.replace('[COLOR red]', '').replace(' Past Shows[/COLOR]', '') label = 'TV Show' if re.search('movie', murl, re.I): label = 'Movies' if checkCache(murl, channel, cacheFilePath): buildCache(murl, channel, cacheFilePath, index) loadFromCache(murl, channel, cacheFilePath) else: loadFromCache(murl, channel, cacheFilePath) xbmcplugin.setContent(int(sys.argv[1]), label) if label == 'Movies': main.setSeasonView() else: main.VIEWS()
def LIST(mname,murl): main.GA("SominalTv","List") if mname=='Hindi': main.addDir('Hindi English Subtitled','http://www.sominaltvfilms.com/category/hindi-movies-english-subtitles',620,art+'/subtitled.png') main.addDir('Hindi BluRay','http://www.sominaltvfilms.com/category/hindi-blurays',620,art+'/bluray.png') elif mname=='Telugu': main.addDir('Telugu English Subtitled','http://www.sominaltvfilms.com/category/telugu-movies-english-subtitles',620,art+'/subtitled.png') main.addDir('Telugu BluRay','http://www.sominaltvfilms.com/category/telugu-blurays',620,art+'/bluray.png') elif mname=='Tamil': main.addDir('Tamil English Subtitled','http://www.sominaltvfilms.com/category/tamil-movies-english-subtitles',620,art+'/subtitled.png') main.addDir('Tamil BluRay','http://www.sominaltvfilms.com/category/tamil-blurays',620,art+'/bluray.png') elif mname=='Malayalam': main.addDir('Malayalam English Subtitled','http://www.sominaltvfilms.com/category/malayalam-movies-english-subtitles',620,art+'/subtitled.png') elif mname=='Punjabi': main.addDir('Punjabi English Subtitled','http://www.sominaltvfilms.com/category/punjabi-movies-english-subtitles',620,art+'/subtitled.png') elif mname=='All Hindi Dubbed Movies': main.addDir('Dubbed BluRay','http://www.sominaltvfilms.com/category/hindi-dubbed-blurays',620,art+'/bluray.png') link=main.OPENURL(murl) link=link.replace('\r','').replace('\n','').replace('\t','').replace(' ','') match=re.compile("""<a href="([^<]+)"><img src="(.+?)" alt="(.+?)"/>.+?<div class='description'>.+?<p>(.+?)</p>""").findall(link) dialogWait = xbmcgui.DialogProgress() ret = dialogWait.create('Please wait until Show 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,desc in match: desc=desc.replace(' ','') name=main.unescapes(name) main.addDirM(name,url,621,thumb,desc,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],620,art+'/next2.png') main.VIEWS()
def LISTSP5(murl): nrDomain = GetNewUrl() murl = nrDomain + '/latest.php' lurl = nrDomain + '/login2.php' log_in = net().http_POST(lurl, {'email': user, 'password': passw}).content link = net().http_GET(murl).content r = re.findall('Membership by invitation only', link) if r: xbmc.executebuiltin( "XBMC.Notification(Sorry!,Email or Password Incorrect,10000," + smalllogo + ")") match = re.compile("<br>(.+?) - <a[^>]+?href='(.+?)'>(.+?)</a>").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) id = totalLinks for year, url, name in match: name = main.unescapes(name) if (year == '0'): year = '0000' url = nrDomain + url main.addDown3(name + ' [COLOR red](' + year + ')[/COLOR]', url, 58, '', '', id) id -= 1 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", "Starplay") main.VIEWS()
def LISTMOVIES(murl): main.GA(prettyName, "List") link = main.OPENURL(murl) link = link.replace('\r', '').replace('\n', '').replace('\t', '').replace( ' ', '').replace('\\', '') match = re.compile( '''<a href="([^<]+)" rel="bookmark" title=".+?">(.+?)</a></h2><div.+?<img.+?src="(.+?)".*?http://www.imdb.com/title/([t\d]+?)[/"']''', 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) xbmc.executebuiltin("XBMC.Dialog.Close(busydialog,true)") for url, name, thumb, imdb in match: name = main.CleanTitle(name) if re.findall('\ss(\d+)\s', name, re.I): main.addPlayT(name, url, 390, thumb, '', '', '', '', '') else: main.addPlayM(name, url, 390, 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(): break dialogWait.close() del dialogWait paginate = re.compile( '<a class="nextpostslink"[^>]+?href="([^"]+)"').findall(link) if paginate and loadedLinks >= totalLinks: main.addDir('Next', paginate[0], 389, art + '/next2.png') main.VIEWS()
def LISTSP3(murl): subpages = 5 if murl == 'HD': page = 1 max = 100 else: try: pages = murl.split(',', 1 ); page = int(pages[0]) max = int(pages[1]) except: page = 1 # http://www.filestube.to/query.html?q=1080p+bluray+-esubs+-msubs+-subs&hosting=85&select=mkv&sizefrom=6000&sizeto=20000&sort=dd&page=1 hosts = "" possiblehosts = ( ["lumfile.com","85"], ["turbobit.net","40"], # ["fileom.com","106"], # ["letitbit.net","25"], ) for h,n in possiblehosts: if main.supportedHost(h): hosts += n+"%2C" hosts = hosts.rstrip("%2C") url='http://www.filestube.to/query.html?q=1080p+bluray+-esubs&hosting='+hosts+'&select=mkv&sizefrom=5000&sizeto=20000&sort=dd' urls = [] for n in range(subpages): urls.append(url+"&page="+str(page+n)) if page+n == max: break page = page + subpages - 1 link=main.batchOPENURL(urls) # print link next = len(re.compile('>►</a>').findall(link)) == subpages link=link.replace('\r','').replace('\n','').replace('\t','').replace(' ','').replace('&','&') match=re.compile('(?sim)<a href="([^"]+?)"[^>]*?class="rL"[^>]*?>(.+?)</a>.*?class="eT.*?<b>([^>]*?)<').findall(link) dialogWait = xbmcgui.DialogProgress() ret = dialogWait.create('Please wait until Movie list is cached.') match1 = [] for url, name, hostsite in match: name = name.replace('<b>','').replace('</b>','') name=main.unescapes(name) if not re.search('(?i)(\\bsubs\\b|\\msubs\\b|fetish)',name) and re.search('(?i)(20\d\d|19\d\d)',name): match1.append((url,name,hostsite)) match = match1 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, hostsite in match: url = url.decode('utf-8').encode('ascii', 'ignore') url = 'http://www.filestube.to' + url main.addPlayM(name.strip() + " [COLOR red]" + hostsite + "[/COLOR]",url,406,'','','','','','') 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(): break if next and loadedLinks >= totalLinks: main.addDir('Page ' + str(page/subpages) + ' [COLOR blue]Next Page >>>[/COLOR]',str(page+1)+','+str(max),405,art+'/next2.png') dialogWait.close() del dialogWait main.GA("HD-TV","FilesTube") main.VIEWS()
def LISTSP3(murl): subpages = 5 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://dl4free.me/forumdisplay.php?fid=42' urls = [] for n in range(subpages): urls.append(url + "&page=" + str(page + n)) if page + n == max: break page = page + subpages - 1 link = main.batchOPENURL(urls) if re.compile('class="pagination_last">(\d+?)</a>').findall(link): max = int( re.compile('class="pagination_last">(\d+?)</a>').findall(link)[0]) link = link.replace('\r', '').replace('\n', '').replace('\t', '').replace( ' ', '').replace('&', '&') match = re.compile( '(?sim)<a href="([^"]+?)" class="[^"]+?" id="[^"]+?">([^<]+?)</a></span>\s*?<div class="author smalltext"><a href="[^"]+?">(wroser|BollyCorner)</a></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, name, user in match: url = url.decode('utf-8').encode('ascii', 'ignore') url = 'http://dl4free.me/' + url name = main.unescapes(name) if not re.search('(?i)avc', name) and re.search('(?i)1080p?', name): main.addPlayM(name, url, 408, '', '', '', '', '', '') loadedLinks = loadedLinks + 1 else: totalLinks -= 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()): return False if page < max: 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", "DL4Free") main.VIEWS()
def INDEX(url): types = [] SearchType = None if '!' in url: r = url.rpartition('!') print r url = r[0] SearchType = r[2] else: url = url if 'cat=TV' in url: types = 'tv' elif 'cat=Movies' in url: types = 'movie' html = GETHTML(url) if html == None: return pattern = '<tr><td[^>]*?><a [^>]*?>([^<]*?)</a></td><td[^>]*?><a href=\'([^\']*?)\'[^>]*?>([^<]*?)<' r = re.findall(pattern, html, re.I | re.M | re.DOTALL) dialogWait = xbmcgui.DialogProgress() ret = dialogWait.create('Please wait until list is cached.') totalLinks = len(r) loadedLinks = 0 remaining_display = 'Media loaded :: [B]' + str(loadedLinks) + ' / ' + str( totalLinks) + '[/B].' dialogWait.update(0, '[B]Will load instantly from now on[/B]', remaining_display) for tag, url, name in r: if re.search('(?i)WEB-DL', name): tag = tag.strip() + " WEB-DL" if re.findall('\d{4}p', name): r = re.findall('(.+?)\s(\d+p)', name) for name, quality in r: tag = tag.replace('720p', quality) pass if re.findall('\ss\d+e\d+\s', name, re.I | re.DOTALL): r = re.findall('(.+?)\ss(\d+)e(\d+)\s', name, re.I) for name, season, episode in r: name = name + ' S' + season + 'E' + episode elif re.findall('\s\d{4}\s\d{2}\s\d{2}\s', name): r = re.findall('(.+?)\s(\d{4})\s(\d{2})\s(\d{2})\s', name) for name, year, month, day in r: name = name + ' ' + year + ' ' + month + ' ' + day elif re.findall('\shdtv\sx', name, re.I): r = re.findall('(.+?)\shdtv\sx', name, re.I) for name in r: pass name = re.sub('\s\s+', ' ', name).strip() name = name + ' [COLOR red]' + re.sub('(?sim)^(TV-|Movies-)(.*)', '\\2', tag) + '[/COLOR]' if SearchType == None: if 'TV' in tag: main.addDirTE(main.CleanTitle(name), url, 1003, '', '', '', '', '', '') elif 'Movies' in tag: if re.findall('\s\d+\s', name): r = name.rpartition('\s\d{4}\s') main.addDirM(main.CleanTitle(name), url, 1003, '', '', '', '', '', '') elif SearchType == 'tv' and 'TV' in tag: main.addDirTE(main.CleanTitle(name), url, 1003, '', '', '', '', '', '') elif SearchType == 'movie' and 'Movies' in tag: r = name.rpartition('\s\d{4}\s') main.addDirM(main.CleanTitle(name), url, 1003, '', '', '', '', '', '') loadedLinks = loadedLinks + 1 percent = (loadedLinks * 100) / totalLinks remaining_display = 'Media 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 if "<div class='zmg_pn'" in html and loadedLinks >= totalLinks: r = re.findall( """<span class='zmg_pn_current'>(\d+?)</span>[^<]*?<span class='zmg_pn_standar'><a href="([^"]+?)">""", html, re.I | re.DOTALL | re.M) total = re.findall('">(\d+)</a></span>', html) if total: total = total[-1] else: total = "1" for current, url in r: name = 'Page ' + current + ' of ' + total + ' [COLOR green]Next Page >>>[/COLOR]' main.addDir('[COLOR green]Go to Page[/COLOR]', url + ':' + total, 1002, art + '/gotopagetr.png') main.addDir(name, url.replace('%5C', ''), 1001, art + '/nextpage.png') main.VIEWS()
def GENRES(url): Curl = url html = main.OPENURL2(url) if html == None: return r = re.findall(r'{value:1, te(.+?)var selected_genre', html, re.M) pattern = 'xt: "(.+?)"' r = re.findall(r''+pattern+'', str(r), re.I|re.DOTALL) res_genre = [] res_url = [] for genre in r: res_genre.append(genre.encode('utf8')) res_url.append(genre.encode('utf8')) dialog = xbmcgui.Dialog() ret = dialog.select('Choose Genre', res_genre) if ret == -1: return elif ret >= 0: genre = res_url [ret - 0] url = url+genre+'/ALL/' try: html = main.OPENURL2(url) #html = html.replace('xc2\x92', "'") if html == None: print 'html None' return except:#Mash can you add your error calling function pass#remove the pass and add call to your error routine r = re.findall(r'Alphabetically \[\<b\>'+genre+', ALL\<\/b\>\]\<\/div\>(.+?)\<div id=\"list_footer\"\>\<\/div\>', html, re.I|re.M|re.DOTALL) pattern = 'title="Watch online: ([^"]*)" href="/([^"]*)"><img border="0" alt=".+?" src="([^"]*)"></a>' r = re.findall(pattern, str(r), re.I|re.M|re.DOTALL) dialogWait = xbmcgui.DialogProgress() ret = dialogWait.create('Please wait until list is cached.') totalLinks = len(r) loadedLinks = 0 remaining_display = 'Media 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 r: url = BASE_URL+url if 'tv-shows' in Curl: main.addDir(name,url,1049,'http://www.tubeplus.me'+thumb) else: name = name.replace('\\','').replace('xc2x92','') main.addDirM(name,url,1026,'http://www.tubeplus.me'+thumb,'','','','','') loadedLinks = loadedLinks + 1 percent = (loadedLinks * 100)/totalLinks remaining_display = 'Media 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() if re.findall(r'<div id="paging">', html): r = re.findall('\<li title="Page (\d+)"\>.+?"\>(\d+)(?=\<\/a\>\<\/li\>\<li title="Next Page"\>\<a href="/(.+?)")',html) for current, total, npurl in r: name = '[COLOR=FF67cc33]Page '+current+' of '+total+', Next Page >>>[/COLOR]' main.addDir(name, BASE_URL+npurl, 1048, art+'/nextpage.png') url = url+':'+total name = '[COLOR=FF67cc33]Goto Page[/COLOR]' main.addDir(name, url, 1028, art+'/gotopagetr.png') main.VIEWS()
def LISTSCEPER(name, murl): main.GA("Sceper", "List") link = main.OPENURL(murl, timeout=10, cookie="sceper") if "setCookie(" in link: import time from cookielib import Cookie cookieList = [] t = time.time() + 259200 c = Cookie(version=False, name='hasVisitedSite', value='Yes', port=None, port_specified=False, domain='', domain_specified=False, domain_initial_dot=False, path='/', path_specified=True, secure=False, expires=t, discard=True, comment=None, comment_url=None, rest={}, rfc2109=False) cookieList.append(c) link = main.OPENURL(murl, timeout=10, cookie="sceper", setCookie=cookieList) i = 0 audiolist = [] desclist = [] genrelist = [] link = link.replace('\xc2\xa0', '').replace('\n', '') audio = re.compile('>Audio:</.+?>([^<]+?)<').findall(link) if len(audio) > 0: for aud in audio: audiolist.append(aud) else: audiolist.append('Audio Unknown') descr = re.compile('>Release Description</div><p>([^<]+?)</p>').findall( link) if len(descr) > 0: for desc in descr: desc = desc.replace('</span><span style="font-family: arial"> ', '').replace('<span style="color: #ff0000;">', '').replace('</span>', '') desclist.append(desc) else: desclist.append('Description Unavailable') genre = re.compile('>Genre:</span>([^<]+?)<br').findall(link) if len(genre) > 0: for gen in genre: gen = gen.replace('</span><span style="font-family: arial"> ', '').replace('<span style="color: #ff0000;">', '').replace('</span>', '') genrelist.append(gen) else: genrelist.append('Genre Unknown') match = re.compile( '<a href="([^<]+)">([^<]+)</a></h2>\t\t<div class="[^"]+?">\t\t\t\t<div class="[^"]+?">Release Info</div><p><a href="([^"]+?)"' ).findall(link) if match: main.addDir('Search', 's', 543, art + '/search.png') 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: if len(audiolist) < 8: audiolist.append('Audio Unknown') if len(desclist) < 8: desclist.append('Description Unavailable') if len(genrelist) < 8: genrelist.append('Genre Unknown') sname = name data = re.findall('([^<]+)\s\(?(\d{4})\)?\s([^<]+)', sname) for title, date, quality in data: sname = processTitle(title, quality) name = title + ' (' + date + ') ' + sname main.addPlayM( name.strip() + ' [COLOR blue]' + audiolist[i].strip() + '[/COLOR]', url, 544, thumb, desclist[i], '', '', genrelist[i], '') i = i + 1 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(): break dialogWait.close() del dialogWait paginate = re.compile( '<a class="nextpostslink" rel="next" href="([^"]+)">').findall(link) if paginate and loadedLinks >= totalLinks: main.addDir('Next', paginate[0], 541, art + '/next2.png') main.VIEWS()
def INDEX(url): types = [] SearchType = None if '!' in url: r = url.rpartition('!') print r url = r[0] SearchType = r[2] else: url = url if '/tvshows/' in url: types = 'tv' elif '/movies/' in url: types = 'movie' html = GETHTML(url) if html == None: return pattern = 'tag">(.+?)</a>.+?text-align:left.+?a href="(.+?)"><b><font size="\d+px">(.+?)</font>' r = re.findall(pattern, html, re.I|re.M|re.DOTALL) dialogWait = xbmcgui.DialogProgress() ret = dialogWait.create('Please wait until list is cached.') totalLinks = len(r) loadedLinks = 0 remaining_display = 'Media loaded :: [B]'+str(loadedLinks)+' / '+str(totalLinks)+'[/B].' dialogWait.update(0,'[B]Will load instantly from now on[/B]',remaining_display) for tag, url, name in r: if re.findall('\ss\d+e\d+\s', name, re.I|re.DOTALL): r = re.findall('(.+?)\ss(\d+)e(\d+)\s', name, re.I) for name, season, episode in r: name = name+' Season '+season+' Episode '+episode+' ('+season+'x'+episode+')' elif re.findall('\s\d{4}\s\d{2}\s\d{2}\s', name): r = re.findall('(.+?)\s(\d{4})\s(\d{2})\s(\d{2})\s',name) for name, year, month, day in r: name = name+' '+year+' '+month+' '+day elif re.findall('\d+p\s', name): r = re.findall('(.+?)\s\d+p\s', name) for name in r: pass elif re.findall('\shdtv\sx', name, re.I): r = re.findall('(.+?)\shdtv\sx',name, re.I) for name in r: pass name = name+' [COLOR blue]'+tag+'[/COLOR]' if SearchType == None: if 'TV' in tag: main.addDirTE(name,url,1003,'','','','','','') elif 'Movies' in tag: if re.findall('\s\d+\s',name): r = name.rpartition('\s\d{4}\s') main.addDirM(name,url,1003,'','','','','','') elif SearchType == 'tv' and 'TV' in tag: main.addDirTE(name,url,1003,'','','','','','') elif SearchType == 'movie' and 'Movies' in tag: r = name.rpartition('\s\d{4}\s') main.addDirM(name,url,1003,'','','','','','') loadedLinks = loadedLinks + 1 percent = (loadedLinks * 100)/totalLinks remaining_display = 'Media 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 '<!-- Zamango Pagebar 1.3 -->' in html: r = re.findall('<span class=\'zmg_pn_current\'>(\d+)</span>\n<span class=\'zmg_pn_standar\'><a href=\'(http://tv-release.net/category/.+?/\d+)\' title=\'Page \d+ of (\d+)\'>\d+</a>',html, re.I|re.DOTALL|re.M) if len(r) == 0: r = re.findall('<span class=\'zmg_pn_current\'>(\d+)</span>\n<span class=\'zmg_pn_standar\'><a href=\'(http://tv-release.net/page/\d+\?.+?)\' title=\'Page \d+ of (\d+)\'>\d+</a>', html, re.I|re.DOTALL|re.M) for current, url, total in r: name = '[COLOR green]Page '+current+' of '+total+', Next Page >>>[/COLOR]' main.addDir(name, url.replace('%5C',''), 1001, art+'/nextpage.png') url = url+':'+total name = '[COLOR green]Goto Page[/COLOR]' main.addDir(name, url, 1002, art+'/gotopagetr.png') main.VIEWS()
def LISTSP5(xurl, retries=1): try: nrDomain = GetNewUrl() murl = nrDomain + xurl setCookie(nrDomain) response = net().http_GET(murl) except: xbmc.executebuiltin( "XBMC.Notification(Sorry!,Noobroom website is down,5000," + smalllogo + ")") return link = response.content link = link.decode('iso-8859-1').encode('utf8') if response.get_url() != murl or murl + '?ckattempt' in link: if os.path.exists(cookie_file): try: os.remove(cookie_file) except: pass if murl + '?ckattempt' in link: if retries: retries -= 1 return LISTSP5('retry', retries) else: xbmc.executebuiltin( "XBMC.Notification(Sorry!,Email or Password Incorrect,10000," + smalllogo + ")") if selfAddon.getSetting("hide-download-instructions") != "true": main.addLink( "[COLOR red]For Download Options, Bring up Context Menu Over Selected Link.[/COLOR]", '', art + '/link.png') match = re.compile("<br>(.+?) - <a[^>]+?href='(.+?)'>(.+?)</a>").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 year, url, name in match: name = fix_title(main.unescapes(name)) try: year = year.split('</b> - ')[1] except: pass if (year == '0'): year = '0000' url = nrDomain + url loadedLinks += 1 main.addDown3(name + ' [COLOR red](' + year + ')[/COLOR]', url, 58, '', '', loadedLinks) 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(): break dialogWait.close() del dialogWait main.GA("Noobroom", "List") main.VIEWS()
def LISTSP2(murl): if murl.startswith('3D'): main.addDir('Search Newmyvideolinks', 'movieNEW', 102, art + '/search.png') subpages = 2 max = 9 category = "3-d-movies" elif murl.startswith('TV'): main.addDir('Search Newmyvideolinks', 'tvNEW', 102, art + '/search.png') subpages = 3 max = 50 category = "tv-shows" else: main.addDir('Search Newmyvideolinks', 'movieNEW', 102, art + '/search.png') subpages = 5 max = 250 category = "bluray" parts = murl.split('-', 1) try: pages = parts[1].split(',', 1) page = int(pages[0]) max = int(pages[1]) murl = parts[0] except: page = 0 page = page * subpages urllist = '' urls = [] for n in range(subpages): if page + n + 1 > max: break if category == "tv-shows": urls.append('http://tv.myvideolinks.eu/page/' + str(page + n + 1)) else: urls.append('http://www.myvideolinks.me/category/movies/' + category + '/page/' + str(page + n + 1)) urllist = main.batchOPENURL(urls) hasNextPage = re.compile('>›</a>').findall(urllist) if category != "3-d-movies" and len( hasNextPage ) < subpages or category == "3-d-movies" and subpages * page > max: page = None else: hasMax = re.compile("page/(\d+?)/'>»</a>").findall(urllist) if hasMax: max = hasMax[0] if urllist: urllist = main.unescapes(urllist) #link=main.OPENURL(xurl) match = re.compile(pattern).findall(urllist) # if not match: # match=re.compile('<h3><a href="()([^"]+?)"[^>]+?title="([^"]+?)"').findall(urllist) if match: dialogWait = xbmcgui.DialogProgress() ret = dialogWait.create('Please wait until Movie list is cached.') totalLinks = len(match) loadedLinks = 0 remaining_display = 'Movies/Episodes Cached :: [B]' + str( loadedLinks) + ' / ' + str(totalLinks) + '[/B].' dialogWait.update(0, '[B]Will load instantly from now on[/B]', remaining_display) for url, thumb, title in match: if murl == 'TV': # if re.compile('720p').findall(title): title = main.CleanTitle(title) main.addDirTE(title, url, 35, thumb, '', '', '', '', '') else: title = main.CleanTitle(title) main.addDirM(title, url, 35, thumb, '', '', '', '', '') xbmcplugin.setContent(int(sys.argv[1]), 'Movies') 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(): break if not page is None and loadedLinks >= totalLinks: main.addDir( 'Page ' + str(page / subpages + 1) + ' [COLOR blue]Next Page >>>[/COLOR]', murl + "-" + str(page / subpages + 1) + "," + str(max), 34, art + '/next2.png') dialogWait.close() del dialogWait main.GA("HD-3D-HDTV", "Newmyvideolinks") main.VIEWS()
def LIST(murl, subp=False): global subpages if subp: subpages = subp parts = murl.partition('%%%') murl = parts[0] page = re.search('(?i)page\/(\d+?)\/', murl) if page: page = int(page.group(1)) else: page = 1 max = page * subpages if parts[-1]: parts = parts[-1].partition('$$$') max = int(parts[0]) if parts[-1]: subpages = int(parts[-1]) urls = [] for n in range(subpages): if page + n > max: break if re.search('[^\d]\/$', murl): urls.append(murl + 'page/' + str(page + n) + '/') elif re.search('movies\/\?', murl): urls.append( murl.replace('movies/?', 'movies/page/' + str(page + n) + '/?')) else: urls.append( re.sub('page\/\d+?\/', 'page/' + str(page + n) + '/', murl)) link = main.batchOPENURL(urls).replace('\\/', '/') link = link.replace('\r', '').replace('\n', '').replace('\t', '') match = re.compile( '{"ID":.+?,"title":"(.*?)","link":"(.*?)","post_content":"(.*?)","image":"(.*?)","slidercap":"(.*?)","year":"(.*?)","genre":"(.*?)","director":".+?}', 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) xbmc.executebuiltin("XBMC.Dialog.Close(busydialog,true)") for name, url, desc, thumb, fan, year, genre in match: main.addPlayM(name + ' [COLOR red](' + year + ')[/COLOR]', url, 423, thumb, desc, fan, '', genre, 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(): break dialogWait.close() del dialogWait paginate = re.compile( '''<a class="nextpostslink" href="([^<]+)">.+?</a>''', re.DOTALL).findall(link) if len(paginate) == subpages and loadedLinks >= totalLinks: last = re.search( '(?i)<a class="last" href="[^"]+?/page/(\d+)/[^"]*?">Last', link) if last: last = int(last.group(1)) else: last = re.findall( '(?i)<a class="page larger" href="[^"]+?/page/(\d+)/[^"]*?">', link) if last: last = int(last[-1]) else: last = page + subpages main.addDir('[COLOR red]Enter Page #[/COLOR]', paginate[0] + '%%%' + str(subpages), 427, art + '/gotopage.png') main.addDir( 'Page ' + str(page / subpages + 1) + ' [COLOR blue]Next Page >>>[/COLOR]', re.sub('page\/\d+?\/', 'page/' + str(page + subpages) + '/', paginate[0]) + '%%%' + str(last) + '$$$' + str(subpages), 422, art + '/next2.png') main.GA("Yify", "List") main.VIEWS()