def playlistList6(mname,murl): main.GA("Playlists-"+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('<item><titl[^>]+>([^<]+)</title><link>(.+?)</link><thumbnail>(.+?)</thumbnail></item>').findall(link) for name,url,thumb in sorted(match): main.addLink(name,url,thumb)
def LINKTV4(mname,url): xbmc.executebuiltin("XBMC.Notification(Please Wait!,Collecting Hosts,3000)") link=main.OPENURL(url) link= link.replace('TV Rage','').replace('Homepage','').replace('href="http://www.tvrage.com','').replace('href="http://www.cbs.com','').replace('Torrent Search','').replace('Season Download','').replace('href="http://uppix.net','').replace('href="http://www.torrentz.com','').replace('href="http://directdownload.tv','') ok=True main.addLink("[COLOR red]For Download Options, Bring up Context Menu Over Selected Link.[/COLOR]",'','') match=re.compile('<a href="(.+?)" target="_blank">(.+?)</a>').findall(link) print len(match) for url, host in match: thumb=host.lower() match5=re.compile('Part').findall(host) if len(match5)>0: match6=re.compile('http://(.+?)/.+?').findall(url) for url2 in match6: host2 = url2.replace('www.','').replace('.in','').replace('.net','').replace('.com','').replace('.to','').replace('.org','').replace('.ch','') thumb=host2.lower() match3=re.compile('720p').findall(url) match4=re.compile('mp4').findall(url) if len(match3)>0: host =host+' [COLOR red]HD[/COLOR]' elif len(match4)>0: host =host+' [COLOR green]SD MP4[/COLOR]' else: host =host+' [COLOR blue]SD[/COLOR]' match2=re.compile('rar').findall(url) if len(match2)==0: hosted_media = urlresolver.HostedMediaFile(url=url, title=host) match2=re.compile("{'url': '(.+?)', 'host': '(.+?)', 'media_id': '.+?'}").findall(str(hosted_media)) for murl,name in match2: main.addDown2(mname+' [COLOR blue]'+host+'[/COLOR]',murl,210,art+thumb+".png",art+thumb+".png")
def LINKSP2(mname, url): link = main.OPENURL(url) link = main.unescapes(link) if selfAddon.getSetting("hide-download-instructions") != "true": main.addLink( "[COLOR red]For Download Options, Bring up Context Menu Over Selected Link.[/COLOR]", '', '') match0 = re.compile('<h4>(.+?)</h4>(.+?)</ul>').findall(link) if not match0: match0 = re.compile( 'title="[^"]+?">([^"]+?)</a>.+?</p><ul>(.+?)</ul>').findall(link) for mname, links in reversed(match0): match1 = re.compile( '<li><a href="([^"]+?)"[^>]*?><img [^>]*?alt="([^"]+?)"[^>]*?></a></li>' ).findall(links) match = match1 + re.compile( '<li><a href="([^"]+?)"[^>]*?>([^>]+?)</a></li>').findall(links) filename = False for murl, name in match: fn = re.search('/([^/]+?\.(mkv|avi|mp4))(\.html)?$', murl) if fn: filename = fn.group(1) break for murl, name in match: name = name[0].upper() + name[1:] if main.supportedHost(name): thumb = name.lower() # if re.search('billionuploads',murl) and filename: murl += '#@#' + filename main.addDown2(mname + ' [COLOR blue]' + name + '[/COLOR]', murl, 209, art + '/hosts/' + thumb + ".png", art + '/hosts/' + thumb + ".png")
def LISTTV4(murl): main.addDir('Search Rlsmix','rlsmix',136,"%s/art/search.png"%selfAddon.getAddonInfo("path")) main.addLink('[COLOR red]First turbobit Link could be HD[/COLOR]','',"%s/art/tvb.png"%selfAddon.getAddonInfo("path")) urllist=['http://www.rlsmix.net/category/tv-shows/','http://www.rlsmix.net/category/tv-shows/page/2/','http://www.rlsmix.net/category/tv-shows/page/3/','http://www.rlsmix.net/category/tv-shows/page/4/','http://www.rlsmix.net/category/tv-shows/page/5/','http://www.rlsmix.net/category/tv-shows/page/6/','http://www.rlsmix.net/category/tv-shows/page/7/','http://www.rlsmix.net/category/tv-shows/page/8/','http://www.rlsmix.net/category/tv-shows/page/9/','http://www.rlsmix.net/category/tv-shows/page/10/'] dialogWait = xbmcgui.DialogProgress() ret = dialogWait.create('Please wait until Show list is cached.') totalLinks = 10 loadedLinks = 0 remaining_display = 'Pages loaded :: [B]'+str(loadedLinks)+' / '+str(totalLinks)+'[/B].' dialogWait.update(0,'[B]Will load instantly from now on[/B]',remaining_display) for murl in urllist: link=main.OPENURL(murl) link=link.replace('\r','').replace('\n','').replace('\t','').replace(' ','') match=re.compile('<h1 class="titles"><a href="(.+?)" title="Permanent Link to (.+?)">.+?src="http://uppix.net/(.+?)"').findall(link) 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.addDir(name,url,62,'http://uppix.net/'+thumb) loadedLinks = loadedLinks + 1 percent = (loadedLinks * 100)/totalLinks remaining_display = 'Pages 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 LINKLIST(mname, url): link = main.OPENURL2(url) link = link.replace('<iframe src="http://ads.affbuzzads.com', '') link = main.unescapes(link) if selfAddon.getSetting("hide-download-instructions") != "true": main.addLink( "[COLOR red]For Download Options, Bring up Context Menu Over Selected Link.[/COLOR]", '', '') match = re.compile('<iframe src="(.+?)" frameborder', re.DOTALL).findall(link) for url in match: hostn = re.compile("http://(.+?)/.+?").findall(url) for hname in hostn: host = hname.replace('www.', '').replace('embed.', '').replace( '.es', '').replace('.in', '').replace('.sx', '').replace( '.net', '').replace('.com', '').replace('.to', '').replace( '.org', '').replace('.ch', '').replace('.eu', '').replace('.ES', '') host = host.split('.')[0] if main.supportedHost(host): mname = main.removeColoredText(mname) main.addDown2(mname + ' [COLOR blue]' + host.upper() + ' [/COLOR]', url, 314, art + '/hosts/' + host.lower() + ".png", art + '/hosts/' + host.lower() + ".png")
def POPULARWATCHS(murl): main.GA("Watchseries", "PopularShows") link = main.OPENURL2(murl) link = link.replace('\r', '').replace('\n', '').replace('\t', '').replace(' ', '') match = re.compile('href="([^"]+)" title=".+?">([^<]+)</a><br />').findall( link) main.addLink('[COLOR red]Most Popular Series[/COLOR]', '', art + '/link.png') for url, name in match[0:12]: main.addDirT(name, 'http://watchseries.ag' + url, 578, '', '', '', '', '', '') main.addLink('[COLOR red]Most Popular Cartoons[/COLOR]', '', art + '/link.png') for url, name in match[12:24]: main.addDirT(name, 'http://watchseries.ag' + url, 578, '', '', '', '', '', '') main.addLink('[COLOR red]Most Popular Documentaries[/COLOR]', '', art + '/link.png') for url, name in match[24:36]: main.addDirT(name, 'http://watchseries.ag' + url, 578, '', '', '', '', '', '') main.addLink('[COLOR red]Most Popular Shows[/COLOR]', '', art + '/link.png') for url, name in match[36:48]: main.addDirT(name, 'http://watchseries.ag' + url, 578, '', '', '', '', '', '') main.addLink('[COLOR red]Most Popular Sports[/COLOR]', '', art + '/link.png') for url, name in match[48:60]: main.addDirT(name, 'http://watchseries.ag' + url, 578, '', '', '', '', '', '')
def LINKLIST2(mname,url): if selfAddon.getSetting("hide-download-instructions") != "true": main.addLink("[COLOR red]For Download Options, Bring up Context Menu Over Selected Link.[/COLOR]",'','') match=re.compile('href="(.+?)" target="_blank">(.+?)</a>',re.DOTALL).findall(url) for url,host in match: if main.supportedHost(host): mname=main.removeColoredText(mname) main.addDown2(mname+' [COLOR blue]'+host.upper()+' [/COLOR]',url,314,art+'/hosts/'+host.lower()+".png",art+'/hosts/'+host.lower()+".png")
def LINKLIST(mname, url): link = main.OPENURL(url) link = main.unescapes(link) if selfAddon.getSetting("hide-download-instructions") != "true": main.addLink( "[COLOR red]For Download Options, Bring up Context Menu Over Selected Link.[/COLOR]", '', '') match = re.compile( '<span class="(.+?)">.+?</span></td><td class="tdcalidad">(.+?)</td><td class=".+?<img src=".+?" alt="(.+?)" />.+?</td>.+?title=".+?" href="(.+?)">', re.DOTALL).findall(link) for lang, qua, host, url in match: if 'flag flag_0' in lang: lang = ' [COLOR red]ESP[/COLOR]' if 'flag flag_1' in lang: lang = ' [COLOR yellow]LAT[/COLOR]' if 'flag flag_2' in lang: lang = ' [COLOR purple]ENG[/COLOR]' if 'flag flag_3' in lang: lang = ' [COLOR green]SUB[/COLOR]' if main.supportedHost(host): mname = main.removeColoredText(mname) main.addDown2( mname + ' [COLOR blue]' + host.upper() + ' [/COLOR]' + lang + ' [COLOR aqua]' + qua + '[/COLOR]', url, 67, art + '/hosts/' + host.lower() + ".png", art + '/hosts/' + host.lower() + ".png")
def LINKLIST(mname, url): link = main.OPENURL(url) link = link.replace('\r', '').replace('\n', '').replace('\t', '').replace( '<iframe src="//www.facebook.com/plugins/likebox.php', '').replace('<iframe src="http://creative.rev2pub.com', '') link = main.unescapes(link) if selfAddon.getSetting("hide-download-instructions") != "true": main.addLink( "[COLOR red]For Download Options, Bring up Context Menu Over Selected Link.[/COLOR]", '', '') match = re.compile('<center><iframe.+?src="(.+?)".+?', re.DOTALL | re.IGNORECASE).findall(link) #main.ErrorReport(match) for url in match: hostn = re.compile("http://(.+?)/.+?").findall(url) for hname in hostn: host = hname.replace('www.', '').replace('embed.', '').replace( '.es', '').replace('.in', '').replace('.sx', '').replace( '.net', '').replace('.com', '').replace('.to', '').replace( '.org', '').replace('.ch', '').replace('.eu', '').replace('.ES', '') host = host.split('.')[0] if main.supportedHost(host): mname = main.removeColoredText(mname) main.addDown2(mname + ' [COLOR blue]' + host.upper() + ' [/COLOR]', url, 797, art + '/hosts/' + host.lower() + ".png", art + '/hosts/' + host.lower() + ".png")
def LISTEPISODE(mname, url): link = main.OPENURL(url) link = link.replace('\r', '').replace('\n', '').replace('\t', '') link = main.unescapes(link) if selfAddon.getSetting("hide-download-instructions") != "true": main.addLink( "[COLOR red]For Download Options, Bring up Context Menu Over Selected Link.[/COLOR]", '', '') match = re.compile( '<dd><a href="([^<]+)" class="zoombox.+?" title="([^<]+)">', re.DOTALL).findall(link) for url, name in match: hostn = re.compile("http://(.+?)/.+?").findall(url) for hname in hostn: host = hname.replace('www.', '').replace('embed.', '').replace( '.es', '').replace('.in', '').replace('.sx', '').replace( '.net', '').replace('.com', '').replace('.to', '').replace( '.org', '').replace('.ch', '').replace('.eu', '').replace('.ES', '') host = host.split('.')[0] if main.supportedHost(host): mname = main.removeColoredText(mname) main.addDown2(name + ' [COLOR blue]' + host.upper() + ' [/COLOR]', url, 797, art + '/hosts/' + host.lower() + ".png", art + '/hosts/' + host.lower() + ".png")
def MAINSA(): setCookie('http://hostaccess.org/7-SFE-SZE-HOSTACCESS/') response = net().http_GET('http://hostaccess.org/7-SFE-SZE-HOSTACCESS/') link = response.content link = cleanHex(link) link = link.replace('\r', '').replace('\n', '').replace('\t', '').replace( ' ', '').replace(' ', '') if '<title>Axxess Streams </title>' in link: main.addLink('[COLOR red]Elite Member[/COLOR]', '', '') else: main.addLink('[COLOR red]Free Member[/COLOR]', '', '') main.addDir( '[COLOR blue]Schedule[/COLOR]', 'http://www.sportsaccess.se/forum/calendar.php?action=weekview&calendar=1', 476, art + '/skyaccess.png') main.addDir('Free Streams', 'http://sportsaccess.se/forum/misc.php?page=livestreams', 412, art + '/skyaccess.png') if '<title>Axxess Streams </title>' in link: main.addDir('Elite Streams', link, 410, art + '/skyaccess.png') main.addPlayc( '[COLOR blue]Click here for Subscription Info[/COLOR]', 'https://dl.dropboxusercontent.com/u/35068738/picture%20for%20post/sky.png', 244, art + '/skyaccess.png', '', '', '', '', '') main.GA("Live", "SportsAccess")
def resolveURL(name,url): main.addLink("[COLOR red]For Download Options, Bring up Context Menu Over Selected Link.[/COLOR]",'','') html = main.OPENURL(url) html = main.unescapes(html).replace('IFRAME SRC','iframe src') match = re.findall('<iframe.+?src="([^"]*?)"',html) for url in match: main.addDown2(name.strip(),str(url),2,'.png','.png')
def ListSceneLogLinks(mname,url): html = main.OPENURL(url) html = main.unescapes(html) if selfAddon.getSetting("hide-download-instructions") != "true": main.addLink("[COLOR red]For Download Options, Bring up Context Menu Over Selected Link.[/COLOR]",'','') paragraphs = re.compile('<p>.*?</p>',re.I|re.DOTALL).findall(html) itemsAdded = 0 from urlparse import urlparse for paragraph in paragraphs: links = re.compile('<a[\s]*?href="(.*?)"',re.I|re.DOTALL).findall(paragraph) if len(links) == 1: # if more than 1 links per paragraph, its probably splitted file for url in links: if not re.search('rar',url,re.I): host = urlparse(url).hostname.replace('www.','').partition('.')[0] if main.supportedHost(host): title = mname quality = re.search('(?i)(720p|1080p|HDTV|PDTV|WEB DL|DVDRIP|WS DSR|DSR|BDRip|WEBRiP)',url,re.I) if quality and not quality.group(1).lower() in mname.lower() : title = re.sub('\[COLOR.*?\[/COLOR\]','',title).strip() title += ' [COLOR red]'+quality.group(1).upper()+'[/COLOR]' host = re.sub('^(https?://)?[^/]*?([^/^.]+?)\.\w+?/.*','\\2',url).upper() thumb = host.lower() main.addDown2(title+' [COLOR blue]'+host+'[/COLOR]',url,658,art+'/hosts/'+thumb+".png",art+'/hosts/'+thumb+".png") itemsAdded += 1 if not itemsAdded: xbmcplugin.endOfDirectory(int(sys.argv[1]), False, False) xbmc.executebuiltin("XBMC.Notification(Sorry,No sources found!,3000)")
def MAINNHL(murl): source_media = {} from datetime import datetime datex=datetime.now().strftime('%Y%m%d') xml='http://live.nhl.com/GameData/SeasonSchedule-20142015.json' link=main.OPENURL(xml) link=link.replace('\r','').replace('\n','').replace('\t','').replace(' ','').replace(' ','') main.addDir('[COLOR red]Archived Games[/COLOR]','Archived',394,art+'/nhl.png') if 'Archived' not in murl: main.addLink("[COLOR red]Live Games Windows Only, Requires some modifications to get working visit forum.[/COLOR]",'','') match=re.compile('{"id":(.+?),"est":"(.+?)","a":"(.+?)","h":"(.+?)"}',re.DOTALL).findall(link) for id,timed,ateam,hteam in match: split= re.search('(.+?)\s(\d+:\d+):\d+',timed) split1=str(split.group(1)) split2=str(split.group(2)) if 'Archived' in murl: if int(split1)<=int(datex): dates= re.search('(\d{4})(\d{2})(\d{2})',split1) date=str(dates.group(2))+"/"+str(dates.group(3))+"/"+str(dates.group(1)) timed = time.strftime("%I:%M %p", time.strptime(split2, "%H:%M")) main.addDir(ateam+' at '+hteam+' [COLOR red]('+timed+')[/COLOR] [COLOR blue]('+date+')[/COLOR]',id,395,art+'/nhl.png') else: if datex == split1: dates= re.search('(\d{4})(\d{2})(\d{2})',split1) date=str(dates.group(2))+"/"+str(dates.group(3))+"/"+str(dates.group(1)) timed = time.strftime("%I:%M %p", time.strptime(split2, "%H:%M")) main.addDir(ateam+' at '+hteam+' [COLOR red]('+timed+')[/COLOR] [COLOR blue]('+date+')[/COLOR]',id,395,art+'/nhl.png')
def LINKSP(name,url): link=main.OPENURL(url) putlocker=re.compile('<a href="(.+?)">putlocker.com</a><br />').findall(link) for url in putlocker: match=re.compile('http://pastebin.com/.+?').findall(url) if (len(match) > 0): link=main.OPENURL(url) main.addLink('If list is empty,means the links are downloadable only','','') else: main.addPlayb(name,url,134,"%s/art/put.png"%selfAddon.getAddonInfo("path"),"%s/art/put.png"%selfAddon.getAddonInfo("path")) flashx=re.compile('<a href="(.+?)">flashx.tv</a><br />').findall(link) for url in flashx: main.addPlayb(name,url,134,"%s/art/flash.png"%selfAddon.getAddonInfo("path"),"%s/art/flash.png"%selfAddon.getAddonInfo("path")) nowvideo=re.compile('<a href="(.+?)">nowvideo.eu</a><br />').findall(link) for url in nowvideo: main.addPlayb(name,url,134,"%s/art/nov.png"%selfAddon.getAddonInfo("path"),"%s/art/nov.png"%selfAddon.getAddonInfo("path")) uploadc=re.compile('<a href="(.+?)">uploadc.com</a><br />').findall(link) for url in uploadc: main.addPlayb(name,url,134,"%s/art/uc.png"%selfAddon.getAddonInfo("path"),"%s/art/uc.png"%selfAddon.getAddonInfo("path")) vidxden=re.compile('<a href="(.+?)">vidxden.com</a><br />').findall(link) for url in vidxden: main.addPlayb(name,url,134,"%s/art/vidx.png"%selfAddon.getAddonInfo("path"),"%s/art/vidx.png"%selfAddon.getAddonInfo("path")) vidbux=re.compile('<a href="(.+?)">vidbux.com</a><br />').findall(link) for url in vidbux: main.addPlayb(name,url,134,"%s/art/vidb.png"%selfAddon.getAddonInfo("path"),"%s/art/vidb.png"%selfAddon.getAddonInfo("path"))
def LINKSP2(mname,url): link=main.OPENURL(url) link=main.unescapes(link) if selfAddon.getSetting("hide-download-instructions") != "true": main.addLink("[COLOR red]For Download Options, Bring up Context Menu Over Selected Link.[/COLOR]",'','') match0=re.compile('title="[^"]+?">([^"]+?)</a>.+?</p><ul>(.+?)</ul>').findall(link) if not match0: match0=re.compile('<h4>(.+?)</h4>(.+?)</ul>').findall(link) if not match0: match0=re.compile('<p><img src=".+?" alt="([^"]+?)" /></p>.+?<ul>(.+?)</ul>').findall(link) for mname, links in reversed(match0): match1=re.compile('<li><a href="([^"]+?)"[^>]*?><img [^>]*?alt="([^"]+?)"[^>]*?></a></li>').findall(links) match= match1 + re.compile('<li><a href="([^"]+?)"[^>]*?>([^>]+?)</a></li>').findall(links) filename = False for murl, name in match: fn = re.search('/([^/]+?\.(mkv|avi|mp4))(\.html)?$',murl) if fn: filename = fn.group(1) break for murl, name in match: name = name[0].upper() + name[1:] if main.supportedHost(name): thumb=name.lower() # if re.search('billionuploads',murl) and filename: murl += '#@#' + filename main.addDown2(main.CleanTitle(mname)+' [COLOR blue]'+name+'[/COLOR]',murl,209,art+'/hosts/'+thumb+".png",art+'/hosts/'+thumb+".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 VIPList(mname,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' 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,182,thumb) match=re.compile('<title>([^<]+)</title.+?link>(.+?)</link.+?thumbnail>([^<]+)</thumbnail>').findall(link) for name,url,thumb in sorted(match): main.addPlayL(name+' [COLOR blue]'+vip+'[/COLOR]',url,183,thumb,'',fan,'','','',secName=vip,secIcon=art+'/'+vip.lower()+'.png') main.GA(vip+"-Playlists",mname)
def Mplaylists(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: if "</vip>" in url: main.addDirc(name + " [COLOR red] " + date + "[/COLOR]", url, 260, thumb, "", fan, "", "", "") else: main.addDirc(name + " [COLOR red] " + date + "[/COLOR]", url, 236, 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, "", fan, "", "", "") main.GA("MoviePL", vip + "-Directory")
def LIST(murl): main.addLink('[COLOR red]Not the best source, but some links work in HSBS[/COLOR]','mess',art+'/link.png') main.addLink('[COLOR red]Try to avoid the same Hosts that are in groups of 4, possible rar files[/COLOR]','mess',art+'/link.png') link=main.OPENURL(murl) link=link.replace('\r','').replace('\n','').replace('\t','').replace(' ','') link=main.unescapes(link) match=re.compile('''entry-title'><a href='(.+?)'>.+?<img alt="(.+?)" 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,name,thumb in match: name=name.replace('Download ','').replace('" height="400','') main.addPlayM(name,url,225,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.+?</a>""").findall(link) if (len(paginate)>0): for purl in paginate: main.addDir('[COLOR blue]Next[/COLOR]',purl,224,art+'/next2.png')
def Mplaylists(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: if '</vip>' in url: main.addDirc(name+' [COLOR red] '+date+'[/COLOR]',url,260,thumb,'',fan,'','','') else: main.addDirc(name+' [COLOR red] '+date+'[/COLOR]',url,236,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,'',fan,'','','') main.GA("MoviePL",vip+"-Directory")
def LINKINT2(name,murl): MainUrl = "http://www.dramacrazy.net" sources = [] link=main.OPENURL(murl) match=re.compile('<a class=".+?" href="(.+?)">(.+?)</a>\r\n\t\t\t\t\t\t\t\t<p class=".+?">.+?</p>\r\n\t\t\t\t<div class=".+?"></div>\r\n\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t<div class=".+?">\r\n\t\t\t\t\t\t<div class=".+?">').findall(link) for url, name in match: url =MainUrl+url link=main.OPENURL(url) link = ''.join(link.splitlines()).replace('\t','').replace('\'','"') streamingLinksModule=re.compile('<!-- Small Div alternate streaming mirros -->(.+?)<!--End of alternate streaming mirrors -->').findall(link) streamingLinks=re.compile('<div class="row">(.+?)<div class="clear"></div></div>').findall(streamingLinksModule[0]) for stramingLinkRow in streamingLinks: parts = re.compile('<a (.+?) onclick="return encLink\("/(.+?)"\);" (.+?)>').findall(stramingLinkRow.replace(')"',');"')) streamingName = re.compile('Watch(.+?)\)').findall(stramingLinkRow) streamingName= str(streamingName) streamingName=streamingName.replace('with English Subs ','').replace("[' ","").replace("']","").replace("Speedy Joe","VideoDorm") streamTypeName = streamingName + ')' linkname=streamTypeName.replace("(","").replace(")","") imagename=str(linkname) main.addLink('[COLOR blue]'+linkname+' Links[/COLOR]','',selfAddon.getAddonInfo("path")+'/art/'+imagename+'.png') if re.search('\(Wat\)', streamTypeName): continue matchCount = len(parts) if(matchCount > 1): i = 0 playList = '' for temp1, partLink, temp2 in parts: i = i + 1 print ' - PART: '+str(i)+' PART link = '+partLink partName = streamTypeName + ' - PART: '+str(i) main.addPlay(name+' '+partName,'http://www.dramacrazy.net/' + partLink,42,selfAddon.getAddonInfo("path")+'/art/'+imagename+'.png')
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 LISTHOST(mname,murl,thumb): epi = re.findall('\ss(\d+)e(\d+)\s',mname + " ",re.I) for s,e in epi: pass if e[0:1]=='0': epis=e[1:] else: epis=e CheckNextEpi= int(epis)+1 if(len(str(CheckNextEpi))==1): CheckNextEpi = "0" + str(CheckNextEpi) CheckNextEpi ="S" + str(s) + "E" + str(CheckNextEpi) CurrentEpi = re.search('(?i)(s\d+e\d+)',mname) link=main.OPENURL(murl) link=link.replace('\r','').replace('\n','').replace('\t','') if selfAddon.getSetting("hide-download-instructions") != "true": main.addLink("[COLOR red]For Download Options, Bring up Context Menu Over Selected Link.[/COLOR]",'','') if CheckNextEpi in link: links = re.search('<td class="mnllinklist" align="right"><div class="right">'+CurrentEpi.group(1)+'.+?</div>(.+?)<div class="right">'+CheckNextEpi+'.+?</div>', link) else: links = re.search('<td class="mnllinklist" align="right"><div class="right">'+CurrentEpi.group(1)+'.+?</div>(.+?)<!-- End of the page footer -->', link) if links: links = links.group(1) match=re.compile('''<a onclick='.+?href="([^"]+?)" target=".+?"><div>.+?</div><span>Loading Time: <span class='.+?'>([^<]+?)</span><br/>Host:(.+?)<br/>''', re.DOTALL).findall(links) for url, loadtime, name in match: domain=name name=name.replace(' ','') if name[0:1]=='.': name=name[1:] name=name.split('.')[0] if main.supportedHost(name.strip().lower()): try:mediaID=url.split('?id=')[1] except:mediaID=url.split('http://')[1].split('/')[1] main.addDown2(mname+' [COLOR red](Loading Time: '+loadtime+')[/COLOR]'+' [COLOR blue]'+name.upper()+'[/COLOR]',name.lower().strip()+'x1x8x'+mediaID,462,art+'/hosts/'+name.lower()+'.png',art+'/hosts/'+name.lower()+'.png')
def iWatchLINK(mname, url): link = main.OPENURL(url) movie_content = main.unescapes(link) movie_content = re.sub("\\\"", "\"", movie_content) movie_content = movie_content.replace('\'', '') from resources.universal import _common as univ_common link2 = univ_common.str_conv(decode(movie_content)) if selfAddon.getSetting("hide-download-instructions") != "true": main.addLink( "[COLOR red]For Download Options, Bring up Context Menu Over Selected Link.[/COLOR]", '', '') links = re.search('<tbody>(.+?)</tbody>', link2) if links: links = links.group(1) print links match = re.compile( '<a href="([^"]+?)" target="_blank" rel="nofollow"><img src=".+?> ([^<]+?)</td> <td><img src=".+?</td> <td>.+?</td> <td>([^<]+?)</td>', re.DOTALL).findall(links) for url, name, qua in match: name = name.replace(' ', '') if name[0:1] == '.': name = name[1:] name = name.split('.')[0] if main.supportedHost(name.lower()): main.addDown2( mname + ' [COLOR red](' + qua + ')[/COLOR]' + ' [COLOR blue]' + name.upper() + '[/COLOR]', url, 649, art + '/hosts/' + name.lower() + '.png', art + '/hosts/' + name.lower() + '.png')
def LINKSP4(mname,murl): html = main.OPENURL(murl) html = html.replace('href="http://oneclickmoviez.com/dws/MEGA','') if selfAddon.getSetting("hide-download-instructions") != "true": main.addLink("[COLOR red]For Download Options, Bring up Context Menu Over Selected Link.[/COLOR]",'','') match=re.compile('<a rel="nofollow" href="([^"]+?)"[^>]*?>([^<]+?)</a>\s*?\(Single\)<',re.DOTALL).findall(html) if match: urls = [] exlude = "(BAYFILES|RYUSHARE)" for url, host in match: if not re.search(exlude,host): urls.append(url) if urls: contents = main.batchOPENURL(urls, merge=False) i = 0 for url, host in match: if not re.search('(?i)'+exlude,host): thumb = host.lower() thumb = thumb.replace('www.','').replace('.in','').replace('.net','').replace('.com','').replace('.to','').replace('.org','').replace('.ch','') vlink = getlink(contents[i]) i += 1 archive = re.compile('rar').findall(vlink) if not archive: import urlresolver hosted_media = urlresolver.HostedMediaFile(url=vlink, title=host) match2=re.compile("{'url': '(.+?)', 'host': '(.+?)', 'media_id': '.+?'}").findall(str(hosted_media)) for murl,name in match2: main.addDown2(mname+' [COLOR blue]'+host+'[/COLOR]',murl,211,art+'/hosts/'+thumb+".png",art+'/hosts/'+thumb+".png")
def LINKLISTSS(mname, url): link = main.OPENURL(url) link = link.replace('\r', '').replace('\n', '').replace('\t', '') if selfAddon.getSetting("hide-download-instructions") != "true": main.addLink( "[COLOR red]For Download Options, Bring up Context Menu Over Selected Link.[/COLOR]", '', '') match = re.compile('<p><!--baslik:.+?--><br /><IFRAME SRC="(.+?)"', re.I).findall(link) if match: host = re.compile("http://(.+?)/.+?").findall(match[0]) host = host[0].replace('www.', '') host = host.split('.')[0] if main.supportedHost(host): main.addDown2(mname + ' [COLOR blue]' + host.upper() + ' [/COLOR]', match[0], 327, art + '/hosts/' + host.lower() + ".png", art + '/hosts/' + host.lower() + ".png") match = re.compile('<a href="([^<]+)"><span>(.+?)</span></a>', re.DOTALL).findall(link) for url, host in match: if main.supportedHost(host): main.addDown2(mname + ' [COLOR blue]' + host.upper() + ' [/COLOR]', url, 327, art + '/hosts/' + host.lower() + ".png", art + '/hosts/' + host.lower() + ".png")
def LISTHOST(mname,murl,thumb): epi = re.findall('\ss(\d+)e(\d+)\s',mname + " ",re.I) for s,e in epi: pass if e[0:1]=='0': epis=e[1:] else: epis=e CheckNextEpi= int(epis)+1 if(len(str(CheckNextEpi))==1): CheckNextEpi = "0" + str(CheckNextEpi) CheckNextEpi ="S" + str(s) + "E" + str(CheckNextEpi) CurrentEpi = re.search('(?i)(s\d+e\d+)',mname) link=main.OPENURL(murl) link=link.replace('\r','').replace('\n','').replace('\t','') if selfAddon.getSetting("hide-download-instructions") != "true": main.addLink("[COLOR red]For Download Options, Bring up Context Menu Over Selected Link.[/COLOR]",'','') if CheckNextEpi in link: links = re.search('<td class="mnllinklist" align="right"><div class="right">'+CurrentEpi.group(1)+'.+?</div>(.+?)<div class="right">'+CheckNextEpi+'.+?</div>', link) else: links = re.search('<td class="mnllinklist" align="right"><div class="right">'+CurrentEpi.group(1)+'.+?</div>(.+?)<!-- End of the page footer -->', link) if links: links = links.group(1) match=re.compile('''<a onclick='.+?href="([^"]+?)" target=".+?"><div>.+?</div><span>Loading Time: <span class='.+?'>([^<]+?)</span><br/>Host:(.+?)<br/>''', re.DOTALL).findall(links) for url, loadtime, name in match: domain=name name=name.replace(' ','') if name[0:1]=='.': name=name[1:] name=name.split('.')[0] if main.supportedHost(name.strip().lower()): try:mediaID=url.split('?id=')[1] except:mediaID=url.split('http://')[1].split('/')[1] main.addDown2(mname+' [COLOR red](Loading Time: '+loadtime+')[/COLOR]'+' [COLOR blue]'+name.upper()+'[/COLOR]',name.lower().strip()+'x1x8x'+mediaID,462,art+'/hosts/'+name.lower()+'.png',art+'/hosts/'+name.lower()+'.png')
def LISTHOSTERS(name, url): html = GETHTML(url) if html == None: return if selfAddon.getSetting("hide-download-instructions") != "true": main.addLink( "[COLOR red]For Download Options, Bring up Context Menu Over Selected Link.[/COLOR]", '', '') r = re.findall(r'class="td_cols"><a target=\'_blank\'.+?href=\'(.+?)\'>', html, re.M | re.DOTALL) try: t = re.findall(r'rel="nofollow">((?!.*\.rar).*)</a>', html, re.I) r = r + t except: pass if len(r) == 0: addon.show_ok_dialog([ 'No Playable Streams Found,', 'It Might Be That They Are Still Being Uploaded,', 'Or They Are Unstreamable Archive Files' ], 'MashUP: TV-Release') xbmcplugin.endOfDirectory(int(sys.argv[1]), False, False) return from urlparse import urlparse for url in r: url = url.replace("180upload.nl", "180upload.com") host = urlparse(url).hostname.replace('www.', '').partition('.')[0] if main.supportedHost(host): main.addDown2( name.strip() + " [COLOR blue]" + host.upper() + "[/COLOR]", url, 1005, art + '/hosts/' + host + '.png', art + '/hosts/' + host + '.png')
def LISTSP5(murl): nrDomain = GetNewUrl(); murl=nrDomain+'/latest.php' lurl=nrDomain+'/login2.php' net().http_POST(lurl,{'email':user,'password':passw}) response = net().http_GET(murl) link = response.content if response.get_url() != murl: xbmc.executebuiltin("XBMC.Notification(Sorry!,Email or Password Incorrect,10000,"+smalllogo+")") 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) id = 1; 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 LINKSP4(mname, murl): xbmc.executebuiltin( "XBMC.Notification(Please Wait!,Collecting Hosts,3000)") link = main.OPENURL(murl) ok = True link = link.replace('href="http://oneclickmoviez.com/dws/MEGA', '') main.addLink( "[COLOR red]For Download Options, Bring up Context Menu Over Selected Link.[/COLOR]", '', '') match = re.compile( '<a href="(.+?)" target="_blank">(.+?)</a>.+?</p>').findall(link) for url, host in match: thumb = host.lower() thumb = thumb.replace('www.', '').replace('.in', '').replace( '.net', '').replace('.com', '').replace('.to', '').replace('.org', '').replace('.ch', '') vlink = getlink(url) match2 = re.compile('rar').findall(vlink) if len(match2) == 0: hosted_media = urlresolver.HostedMediaFile(url=vlink, title=host) match2 = re.compile( "{'url': '(.+?)', 'host': '(.+?)', 'media_id': '.+?'}" ).findall(str(hosted_media)) for murl, name in match2: main.addDown2(mname + ' [COLOR blue]' + host + '[/COLOR]', murl, 211, art + '/hosts/' + thumb + ".png", art + '/hosts/' + thumb + ".png")
def History(): main.GA("None","WatchHistory") if selfAddon.getSetting("whistory") == "true": history_items = wh.get_my_watch_history() for item in history_items: item_title = item['title'] item_url = item['url'] item_image = item['image_url'] item_fanart = item['fanart_url'] item_infolabels = item['infolabels'] item_isfolder = item['isfolder'] if item_image =='': item_image= art+'/noimage.png' main.addLink(item_title,item_url,item_image) else: dialog = xbmcgui.Dialog() ok=dialog.ok('[B]MashUp History[/B]', 'Watch history is disabled' ,'To enable go to addon settings','and enable Watch History') history_items = wh.get_my_watch_history() for item in history_items: item_title = item['title'] item_url = item['url'] item_image = item['image_url'] item_fanart = item['fanart_url'] item_infolabels = item['infolabels'] item_isfolder = item['isfolder'] main.addLink(item_title,item_url,item_image)
def LISTHOSTERS(name,url): html = GETHTML(url) if html == None: return main.addLink("[COLOR red]For Download Options, Bring up Context Menu Over Selected Link.[/COLOR]",'','') r = re.findall(r'class="td_cols"><a target=\'_blank\'.+?href=\'(.+?)\'>',html, re.M|re.DOTALL) try: t = re.findall(r'rel="nofollow">((?!.*\.rar).*)</a>', html, re.I) r = r+t except: pass if len(r) == 0: addon.show_ok_dialog(['No Playable Streams Found,','It Might Be That They Are Still Being Uploaded,', 'Or They Are Unstreamable Archive Files'],'MashUP: TV-Release') return sources = [] for url in r: media = urlresolver.HostedMediaFile(url=url) sources.append(media) sources = urlresolver.filter_source_list(sources) r = re.findall(r'\'url\': \'(.+?)\', \'host\': \'(.+?)\'', str(sources), re.M) for url, host in r: r = re.findall(r'(.+?)\.',host) if 'www.real-debrid.com' in host: host = re.findall(r'//(.+?)/', url) host = host[0].replace('www.','') host = host.rpartition('.') host = host[0] else: host = r[0] main.addDown2(name+"[COLOR blue] :"+host.upper()+"[/COLOR]",url,1005,art+'/hosts/'+host+'.png',art+'/hosts/'+host+'.png')
def ListDirectDownloadTVLinks(mname, url): ok = True if selfAddon.getSetting("hide-download-instructions") != "true": main.addLink( "[COLOR red]For Download Options, Bring up Context Menu Over Selected Link.[/COLOR]", '', '') match = re.compile('{"url":"([^"]+?)","hostname":"([^"]+?)"}').findall(url) prev = '' archived = '' for url, host in match: if (host == prev and not host in archived): archived += host prev = host h = 0 for url, host in match: thumb = host.lower() urlExceptions = re.compile('rar').findall(url) if not (urlExceptions or host in archived) and main.supportedHost(host): h += 1 main.addDown2(mname + ' [COLOR blue]' + host.upper() + '[/COLOR]', url, 210, art + "/hosts/" + thumb + ".png", art + "/hosts/" + thumb + ".png") if not h: xbmcplugin.endOfDirectory(int(sys.argv[1]), False, False) xbmc.executebuiltin( "XBMC.Notification(Sorry,No Playable Links Found,2000)")
def playlistList3(mname, murl): main.GA("Playlists-" + 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("name=(.+?)thumb=(.+?)date=.+?URL=(.+?)#").findall(link) for name, thumb, url in match: match2 = re.compile("http://(.+?)URL").findall(thumb) if len(match2) > 0: thumb = "http://" + match2[0] url = url.replace("player=defaultrating=-1.00", "") match3 = re.compile("rtmp").findall(url) match4 = re.compile("timeout").findall(url) if len(match3) > 0 and len(match4) == 0: url = url + " timeout=15" main.addLink(name, url, thumb) match = re.compile("name=(.+?)thumb=(.+?)URL=(.+?)#").findall(link) for name, thumb, url in match: match2 = re.compile("http://(.+?)URL").findall(thumb) if len(match2) > 0: thumb = "http://" + match2[0] url = url.replace("player=defaultrating=-1.00", "").replace("%20", " ").replace("player=default", "") match3 = re.compile("rtmp").findall(url) match4 = re.compile("timeout").findall(url) if len(match3) > 0 and len(match4) == 0: url = url + " timeout=15" main.addLink(name, url, thumb)
def playlistList3(mname, murl): main.GA("Playlists-" + 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('name=(.+?)thumb=(.+?)date=.+?URL=(.+?)#').findall(link) for name, thumb, url in match: match2 = re.compile('http://(.+?)URL').findall(thumb) if len(match2) > 0: thumb = 'http://' + match2[0] url = url.replace('player=defaultrating=-1.00', '') match3 = re.compile('rtmp').findall(url) match4 = re.compile('timeout').findall(url) if len(match3) > 0 and len(match4) == 0: url = url + ' timeout=15' main.addLink(name, url, thumb) match = re.compile('name=(.+?)thumb=(.+?)URL=(.+?)#').findall(link) for name, thumb, url in match: match2 = re.compile('http://(.+?)URL').findall(thumb) if len(match2) > 0: thumb = 'http://' + match2[0] url = url.replace('player=defaultrating=-1.00', '').replace('%20', ' ').replace('player=default', '') match3 = re.compile('rtmp').findall(url) match4 = re.compile('timeout').findall(url) if len(match3) > 0 and len(match4) == 0: url = url + ' timeout=15' main.addLink(name, url, thumb)
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 LIST(murl): main.addLink('[COLOR red]Not the best source, but some links work in HSBS[/COLOR]','mess',art+'/link.png') main.addLink('[COLOR red]Try to avoid the same Hosts that are in groups of 4, possible rar files[/COLOR]','mess',art+'/link.png') link=main.OPENURL(murl) link=link.replace('\r','').replace('\n','').replace('\t','').replace(' ','') link=main.unescapes(link) match=re.compile('''entry-title'><a href='(.+?)'>.+?<img alt="(.+?)" 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,name,thumb in match: name=name.replace('Download ','').replace('" height="400','') main.addPlayM(name,url,225,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.+?</a>""").findall(link) if (len(paginate)>0): for purl in paginate: main.addDir('[COLOR blue]Next[/COLOR]',purl,224,art+'/next2.png')
def History(): whprofile = xbmc.translatePath(selfAddon.getAddonInfo('profile')) whdb=os.path.join(whprofile,'Universal','watch_history.db') if os.path.exists(whdb): main.addPlayc('Clear Watch History',whdb,414,art+'/cleahis.png','','','','','') from resources.universal import watchhistory wh = watchhistory.WatchHistory(addon_id) if selfAddon.getSetting("whistory") == "true": history_items = wh.get_my_watch_history() for item in history_items: item_title = item['title'] item_url = item['url'] item_image = item['image_url'] item_fanart = item['fanart_url'] item_infolabels = item['infolabels'] item_isfolder = item['isfolder'] if item_image =='': item_image= art+'/noimage.png' item_title=item_title.replace('[COLOR green]','[COLOR=FF67cc33]') main.addLink(item_title,item_url,item_image) else: dialog = xbmcgui.Dialog() ok=dialog.ok('[B]Aftershock History[/B]', 'Watch history is disabled' ,'To enable go to addon settings','and enable Watch History') history_items = wh.get_my_watch_history() for item in history_items: item_title = item['title'] item_url = item['url'] item_image = item['image_url'] item_fanart = item['fanart_url'] item_infolabels = item['infolabels'] item_isfolder = item['isfolder'] item_title=item_title.replace('[COLOR green]','[COLOR=FF67cc33]') main.addLink(item_title,item_url,item_image)
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 playlistList3(mname,murl): main.GA("Playlists-"+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('name=(.+?)thumb=(.+?)date=.+?URL=(.+?)#').findall(link) for name,thumb,url in match: match2=re.compile('http://(.+?)URL').findall(thumb) if len(match2)>0: thumb ='http://'+match2[0] url=url.replace('player=defaultrating=-1.00','') match3=re.compile('rtmp').findall(url) match4=re.compile('timeout').findall(url) if len(match3)>0 and len(match4)==0: url=url+' timeout=15' main.addLink(name,url,thumb) match=re.compile('name=(.+?)thumb=(.+?)URL=(.+?)#').findall(link) for name,thumb,url in match: match2=re.compile('http://(.+?)URL').findall(thumb) if len(match2)>0: thumb ='http://'+match2[0] url=url.replace('player=defaultrating=-1.00','').replace('%20',' ').replace('player=default','') match3=re.compile('rtmp').findall(url) match4=re.compile('timeout').findall(url) if len(match3)>0 and len(match4)==0: url=url+' timeout=15' main.addLink(name,url,thumb)
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 MAINSIDE(cacheOnly = False): import time import datetime cached_path = os.path.join(os.path.join(main.datapath,'Cache'), 'Sidereel') cached = main.getFile(cached_path) if (not cached or (cached and time.mktime(datetime.date.today().timetuple()) > os.stat(cached_path).st_mtime) or xbmcgui.Window(10000).getProperty('Refresh_Sidreel')): from t0mm0.common.net import Net as net setCookie(MAINURL) response = net().http_GET(MAINURL) link = response.content link = cleanHex(link) link=link.replace('\r','').replace('\n','').replace('\t','').replace(' ','').replace(' ','') today=re.compile("<li class='current'>[^/]+?<h2 class='[^']*?'><span>(.+?)</span></h2><div(.+?)/div></div></li>",re.DOTALL).findall(link) match=re.compile("<li class=''>[^/]+?<h2 class='[^']+?'><span>(.+?)</span></h2><div(.+?)/div></div></li>",re.DOTALL).findall(link) match = today + match if match: main.setFile(cached_path,str(match),True) if '''<h3 class='sr-header sr-blue font-16'>Login to your account</h3>''' in link: main.addLink('[COLOR red]Login Error Clear Cache & Cookies Below[/COLOR]','TV','') main.addDir('[COLOR blue]Clear Cache & Cookies[/COLOR]','MashCache',416,art+'/maintenance.png') xbmcgui.Window(10000).clearProperty('Refresh_Sidreel') else: match = eval(cached) if cacheOnly: return False main.GA("None","SideReel") main.addDir('Search for Shows','TV',398,art+'/search.png') main.addDir('All Tracked Shows','TV',402,art+'/sidereel.png') import calendar todaytimestamp = calendar.timegm(time.strptime(time.strftime("%b") + " " + time.strftime("%d"), "%b %d")) showsdisplayed = 0 for date,shows in match: print shows if 'data-track-label="Profile"' in shows: s = re.sub('(?i)^.*?,(.*)$','\\1',date).strip() timestamp = calendar.timegm(time.strptime(s, "%b %d")) days = (timestamp - todaytimestamp) / 86400 relative = getRelativeDate(days) main.addLink('[COLOR yellow]'+date+'[/COLOR] [COLOR orange]('+relative+')[/COLOR]','',art+'/link.png') match2=re.compile("""data-track-label="Profile" href=".+?">([^<]+?)</a><div><a class=".+?data-track-label="Profile" href="([^"]+?)">([^<]+?)</a></div>""",re.DOTALL).findall(shows) for showname,seaepi, epiname in match2: se=re.search('season-(\d+)/episode-(\d+)',seaepi) if se: if len(se.group(1))==1: sea='0'+str(se.group(1)) else: sea=str(se.group(1)) if len(se.group(2))==1: epi='0'+str(se.group(2)) else: epi=str(se.group(2)) final= 'S'+sea+'E'+epi else: final='' main.addDir(showname+' '+final+' [COLOR red] "'+epiname+'"[/COLOR]','TV',20,art+'/sidereel.png') showsdisplayed += 1 if not showsdisplayed: main.removeFile(cached_path)
def LINKLIST2(mname,url): if selfAddon.getSetting("hide-download-instructions") != "true": main.addLink("[COLOR red]For Download Options, Bring up Context Menu Over Selected Link.[/COLOR]",'','') match=re.compile('href="(.+?)" target="_blank">(.+?)</a>',re.DOTALL).findall(url) for url,host in match: if main.supportedHost(host): mname=main.removeColoredText(mname) main.addDown2(mname+' [COLOR blue]'+host.upper()+' [/COLOR]',url,789,art+'/hosts/'+host.lower()+".png",art+'/hosts/'+host.lower()+".png")
def LISTBF(murl): main.GA("FitnessBlender","List") link=main.OPENURL(murl) link=link.replace('\r','').replace('\n','').replace('\t','').replace(' ','').replace('–','-') main.addLink("[COLOR red]Body Focus [/COLOR]"+"[COLOR yellow]Calorie Burn [/COLOR]"+"[COLOR blue]Difficulty [/COLOR]"+"[COLOR green]Duration[/COLOR]",'','') match=re.compile('<a class="teaser group" href="(.+?)"><div class=".+?<img id=".+?" class="fit_img.+?data-original="(.+?)" alt="([^"]+)".+?"><p>Calorie Burn:(.+?)</p><p>Minutes:(.+?)</p><p>Difficulty:(.+?)</p><p>Body Focus:(.+?)</p></div>').findall(link) for url,thumb,name,cal,dur,diff,bf in match: main.addPlayMs(name+" [COLOR red]"+bf+"[/COLOR]"+"[COLOR yellow]"+cal+"[/COLOR]"+"[COLOR blue]"+diff+"[/COLOR]"+"[COLOR green]"+dur+"[/COLOR]",'http://www.fitnessblender.com/'+url,203,thumb,'','','','','')
def COUNTRIESList(murl): main.GA("Countries","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>').findall(link) for name,url,thumb in sorted(match): main.addLink(name,url,thumb) main.VIEWSB()
def GlobalFav(): if selfAddon.getSetting("groupfavs") == "true": ListglobalFavALL() else: main.addLink("[COLOR red]Aftershock Fav's can also be favorited under XBMC favorites[/COLOR]",'','') #main.addDir("Downloaded Content",'Aftershock',241,art+'/downloadlog.png') main.addDir("Movie Fav's",'http://www.movie25.so/',641,art+'/fav.png') main.addDir("TV Show Fav's",'http://www.movie25.so/',640,art+'/fav.png')
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: 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,'','','') 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] main.addPlayc(name+' [COLOR blue]'+vip+'[/COLOR]',xurl,237,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 LINKZ(name,url): main.addLink("[COLOR orange]For Download Options, Bring up Context Menu Over Selected Link.[/COLOR]",'','') link=main.OPENURL(url) link=link.replace('\r','').replace('\n','').replace('\t','').replace(' ','').replace('IFRAME SRC','iframe src') match=re.compile('<b>([^"]*?)</b></span><br /><iframe.+?src="([^"]*?)"').findall(link) for host,url in match: host=host.replace('AllMyV','allmyvideos').replace('VSpot','vidspot').replace('TheVid','thevideo').replace('Vodlo','vodlocker').replace('Vidbul','vidbull').replace('IShar','ishared').replace('allmyvideosid','allmyvideos') host=host.replace('FHoot','filehoot').replace('VidtO','vidto').replace('VK-Mob','vk') main.addDown2(name.strip()+" [COLOR blue]"+host.upper()+"[/COLOR]",str(url),2,art+'/hosts/'+host+'.png',art+'/hosts/'+host+'.png')
def TubTubMAIN(murl): main.GA("TubTub","List") main.addLink('[COLOR red]Classics, Very Old Content[/COLOR]','','') thumb=art+'/tubtub.png' link=main.OPENURL(murl) link=link.replace('\r','').replace('\n','').replace('\t','').replace(' ','') match=re.compile("""<a href="mms://(.+?)" .+?>([^<]+)</span></a>""").findall(link) for url,name in match: main.addPlayL(name,'http://'+url,186,thumb,'','','','','')
def MAINdz(): main.GA("Plugin","dubzonline") main.addDir('A-Z','http://www.dubzonline.co/dubbed-anime/',614,art+'/AZ.png') main.addLink('[COLOR red]Recently Added Episodes[/COLOR]','year','') link=main.OPENURL('http://www.dubzonline.co/') link=link.replace('\r','').replace('\n','').replace('\t','').replace(' ','').replace('<li><a href="/anime-list/" ><span>Anime List</span></a></li>','').replace('<li><a href="/contact-us/" ><span>Contact Us</span></a></li>','').replace('<li><a href="/" class="active"><span>Home</span></a></li>','') bits = re.compile('<h3 class="widget-title">Recently Added Episodes</h3>(.+?)</aside>').findall(link) match = re.compile('<li><a href="([^"]+)">([^<]+)</a></li>').findall(bits[0]) for url,name in match: main.addPlayT(name,url,617,'','','','','','')
def MAIN(): main.GA("Live", "1fm") link = main.OPENURL('http://www.1.fm/jsonfm/allstUpcomingSng') field = json.loads(link) for data in field: main.addLink( str(data["StationName"].encode('utf-8')), 'http://' + str(data["StationStreamSrv"].encode('utf-8')) + ':' + str(data["StationHiPort"].encode('utf-8')) + '/?type=.flv', 'http://www.1.fm/content/Images/stationsicons/orange/' + str(data["StationIdentity"].encode('utf-8')) + '.png?w=256&h=256')
def Calendar(murl): setCookie(murl) response = net().http_GET(murl) link = response.content link=link.replace('\r','').replace('\n','').replace('\t','').replace(' ','').replace(' ','') month=re.findall('(?sim)<h2 class="blockhead">([^<]+?)</h2>',link) match=re.findall('(?sim)<h3><span class=".+?">([^<]+?)</span><span class="daynum" style=".+?" onclick=".+?">(\d+)</span></h3><ul class="blockrow eventlist">(.+?)</ul>',link) for day,num,data in match: main.addLink('[COLOR blue]'+day+' '+num+' '+month[0]+'[/COLOR]','','') match2=re.findall('(?sim)<span class="eventtime">([^<]+?)</span><a href=".+?" title=".+?">([^<]+?)</a>',data) for time,title in match2: main.addLink('[COLOR yellow]'+time+'[/COLOR] '+title,'','')
def LINKSP2(mname,url): link=main.OPENURL(url) link=main.unescapes(link) main.addLink("[COLOR red]For Download Options, Bring up Context Menu Over Selected Link.[/COLOR]",'','') match=re.compile('<li><a href="h(.+?)">(.+?)</a></li>').findall(link) for murl, name in match: thumb=name.lower() murl='h'+murl hosted_media = urlresolver.HostedMediaFile(url=murl, title=name) match2=re.compile("{'url': '(.+?)', 'host': '(.+?)', 'media_id': '.+?'}").findall(str(hosted_media)) for murl,host in match2: main.addDown2(mname+' [COLOR blue]'+name+'[/COLOR]',murl,209,art+'/hosts/'+thumb+".png",art+'/hosts/'+thumb+".png")
def showList(cacheOnly = False): if not user: xbmc.executebuiltin("XBMC.Notification(Sorry,Set Trakt user in settings,3000)") xbmcplugin.endOfDirectory(int(sys.argv[1]), False, False, False) return False import time,datetime,calendar todaytimestamp = time.mktime(time.strptime(time.strftime("%Y") + "-" + time.strftime("%m") + "-" + time.strftime("%d"), "%Y-%m-%d")) cached_path = os.path.join(os.path.join(main.datapath,'Cache'), 'Trakt') cached = main.getFile(cached_path) if (not cached or (cached and time.mktime(datetime.date.today().timetuple()) > os.stat(cached_path).st_mtime) or xbmcgui.Window(10000).getProperty('Refresh_Trakt')): setCookie() import hashlib,json data = {'username':user,'password':hashlib.sha1(passw).hexdigest()} link = main.OPENURL("http://api.trakt.tv/user/calendar/shows.json/"+TRAKT_API+"/"+user+'/6daysago/14',data=data) fields=json.loads(link) tofront = [] daysinfuture = 2 daysinpast = 1 for item in fields: timestamp = time.mktime(time.strptime(item['date'], "%Y-%m-%d")) if timestamp <= todaytimestamp + daysinfuture * 86400 and timestamp >= todaytimestamp - daysinpast * 86400: tofront.append(item) for item in tofront:fields.remove(item) fields = tofront + fields if fields: main.setFile(cached_path,str(fields),True) xbmcgui.Window(10000).clearProperty('Refresh_Trakt') else: fields = eval(cached) if cacheOnly: return False main.GA("None","Trakt") main.addDir('Search for Shows','TV',430,art+'/search.png') main.addDir('All Tracked Shows','TV',431,art+'/sidereel.png') showsdisplayed = 0 for data in fields: timestamp = time.mktime(time.strptime(data['date'], "%Y-%m-%d")) datestring = (datetime.datetime.fromtimestamp(timestamp)).strftime('%A, %b %d') days = (timestamp - todaytimestamp) / 86400 relative = getRelativeDate(days) main.addLink('[COLOR yellow]'+str(datestring)+'[/COLOR] [COLOR orange]('+relative+')[/COLOR]','',art+'/link.png') for showdata in data['episodes']: if showdata['episode']['season'] < 10: sea='0'+str(showdata['episode']['season']) else: sea=str(showdata['episode']['season']) if showdata['episode']['number'] < 10: epi='0'+str(showdata['episode']['number']) else: epi=str(showdata['episode']['number']) episodenumber= 'S'+sea+'E'+epi airtime = showdata['show']['air_time_localized'].upper().replace("AM"," AM").replace("PM"," PM")+' on ' + showdata['show']['network'] main.addDir(showdata['show']['title'].encode('utf-8')+' '+episodenumber+' [COLOR red]"'+showdata['episode']['title'].encode('utf-8')+ '"[/COLOR] [COLOR blue]'+ airtime.encode('utf-8') +'[/COLOR]','TV',20,showdata['show']['images']['poster'].encode('utf-8')) # showdata['episode']['overview'].encode('utf-8'),showdata['episode']['images']['screen'].encode('utf-8')) showsdisplayed += 1 if not showsdisplayed: main.removeFile(cached_path)
def LINKTV4(mname, url): xbmc.executebuiltin( "XBMC.Notification(Please Wait!,Collecting Hosts,3000)") link = main.OPENURL(url) link = link.replace('TV Rage', '').replace('Homepage', '').replace( 'href="http://www.tvrage.com', '').replace('href="http://www.cbs.com', '').replace( 'Torrent Search', '').replace('Season Download', '').replace( 'href="http://uppix.net', '').replace('href="http://www.torrentz.com', '').replace('href="http://directdownload.tv', '') ok = True main.addLink( "[COLOR red]For Download Options, Bring up Context Menu Over Selected Link.[/COLOR]", '', '') main.addLink( '[COLOR red]The Last uploaded & turbobit Link could be HD[/COLOR]', '', art + '/tvb.png') match = re.compile('<a href="(.+?)" target="_blank">(.+?)</a>').findall( link) for url, host in match: thumb = host.lower() match5 = re.compile('Part').findall(host) if len(match5) > 0: match6 = re.compile('http://(.+?)/.+?').findall(url) for url2 in match6: host2 = url2.replace('www.', '').replace('.in', '').replace( '.net', '').replace('.com', '').replace('.to', '').replace('.org', '').replace('.ch', '') thumb = host2.lower() match3 = re.compile('720p').findall(url) match4 = re.compile('mp4').findall(url) if len(match3) > 0: host = host + ' [COLOR red]HD[/COLOR]' elif len(match4) > 0: host = host + ' [COLOR green]SD MP4[/COLOR]' else: host = host + ' [COLOR blue]SD[/COLOR]' match2 = re.compile('rar').findall(url) if len(match2) == 0: hosted_media = urlresolver.HostedMediaFile(url=url, title=host) match2 = re.compile( "{'url': '(.+?)', 'host': '(.+?)', 'media_id': '.+?'}" ).findall(str(hosted_media)) for murl, name in match2: main.addDown2(mname + ' [COLOR blue]' + host + '[/COLOR]', murl, 210, art + "/hosts/" + thumb + ".png", art + "/hosts/" + thumb + ".png")