def lsstv1(params): data=plugintools.read(params.get("url")); pattern1 = 'onClick=\'showLinks\("event_", (.*?<img alt=".*?style="width: 40px;">.*?letter-spacing: 0px;">.*?<td rowspan=2 style="font-size:11px; font-style: italic; text-align: right;" title=\'[^\']+.)' pattern2 = '"([^"]+).*<img alt="([^"]+).*style="width: 40px;">([^<]+).*?letter-spacing: 0px;">([^<]+).*<td rowspan=2 style="font-size:11px; font-style: italic; text-align: right;" title=\'([^\']+)' pattern3 = "" match = plugintools.find_multiple_matches_multi_multi(data,pattern1) #for (i,id) in enumerate(match): match = sorted(list(set(match)))#array_unique !!! for ids in match: ''' thumbnail = "http://cdn-a.streamshell.net/images/icons/48x48px.png" #plugintools.log("TITLE"+ids)#print list of channels url = "http://www.livesportstreams.tv/es/player.php?e=" + ids + "&s=13&c=4" url = url.strip() plot = "" title = ids.capitalize() ''' matches = plugintools.find_multiple_matches_multi(ids,pattern2) for id, champ, ora, meci, lang in matches: thumbnail = "http://cdn-a.streamshell.net/images/icons/48x48px.png" url = "http://www.livesportstreams.tv/es/links.php?links=1&id=" + id url = url.strip() plugintools.log("URL:"+url)#print list of url #champ = champ.replace('futbol','') mec = "[COLOR=green]"+ ora + "[COLOR=yellow] : " + meci.upper() + " ([COLOR=red]" + lang.lower() + "[/COLOR][/COLOR][/COLOR]) :" + champ title = mec plot = "" #plugintools.log("cipq.webpage_play "+title)#print list of channels #uri = plugintools.find_single_match(data,rep) # Appends a new item to the xbmc item list plugintools.add_item( action="lsstv2" , title=title , plot=plot , url=url ,thumbnail=thumbnail , isPlayable=True, folder=True )
def program_capis(params): plugintools.log("[PalcoTV-0.3.0].LaTuerka Videos"+repr(params)) fanart = params.get("extra") data = plugintools.read(params.get("url")) #plugintools.log("data= "+data) #<a href="/publico-tv/program/59/video/216146/otra-vuelta-de-tuerka-jesus-cintora" class="play"><span>Reproducir</span></a> items_programa = plugintools.find_multiple_matches(data, '<div class="thumb">(.*?)</li>') for entry in items_programa: plugintools.log("items_programa= "+entry) url_programa = plugintools.find_single_match(entry, '<a href=\"(.*?)\"') img_programa = plugintools.find_single_match(entry, '<img src=\"(.*?)\"') title_programa = plugintools.find_single_match(entry, 'title="">(.*?)</a></p>') title_programa = title_programa.split('title="">') title_programa = title_programa[1] title_programa = title_programa.replace("ñ", "ñ") #url_programa = plugintools.find_multiple_matches(entry, '<a href=(.*?)class=\"foto') url_programa = 'http://www.publico.es' + url_programa plugintools.log("url_programa= "+url_programa) url = tuerka_link(url_programa) plugintools.log("img_programa= "+img_programa) plugintools.log("title_programa= "+title_programa) plugintools.add_item(action="play", title = title_programa, url = url , thumbnail = img_programa, fanart = 'http://www.latuerka.net/img/bg.jpg' , folder = False , isPlayable = True)
def YOUTUBE_CHANNELS(url): find_url=url.find('?')+1 keep_url=url[:find_url] iconimage="" req = urllib2.Request(url) req.add_header('User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3') response = urllib2.urlopen(req) link=response.read() response.close() # Extract items from feed pattern = "" matches = plugintools.find_multiple_matches(link,"<entry>(.*?)</entry>") for entry in matches: # Not the better way to parse XML, but clean and easy title = plugintools.find_single_match(entry,"<titl[^>]+>([^<]+)</title>").replace("&","&") plot = plugintools.find_single_match(entry,"<media\:descriptio[^>]+>([^<]+)</media\:description>") thumbnail = plugintools.find_single_match(entry,"<media\:thumbnail url='([^']+)'") video_id = plugintools.find_single_match(entry,"http\://www.youtube.com/watch\?v\=([^\&]+)\&").replace("&","&") play_url = "plugin://plugin.video.youtube/?path=/root/video&action=play_video&videoid="+video_id plugintools.add_item( action="play" , title=title , plot=plot , url=play_url ,thumbnail=thumbnail , folder=True ) # Calculates next page URL from actual URL start_index = int( plugintools.find_single_match( link ,"start-index=(\d+)") ) max_results = int( plugintools.find_single_match( link ,"max-results=(\d+)") ) next_page_url = keep_url+"start-index=%d&max-results=%d" % ( start_index+max_results , max_results) addDir(">> Next page",next_page_url,13,"")
def lsstv2(params): msg = "Resolviendo enlace ... " ref = params.get("url") data = plugintools.read( params.get("url") ) data = data.replace('&','&') data = data.replace('"',"'") #plugintools.log("LSS URL= "+data) thumbnail=params.get("thumbnail") title = params.get("meci") plot=params.get("plot") pattern = '\?(e=[^\'"]+)' match = plugintools.find_multiple_matches_multi_multi(data,pattern) match = sorted(list(set(match))) i=1 for id in match: url = "http://www.livesportstreams.tv/es/player.php?" + id + "@" + ref url=url.strip() plugintools.log("LSS URL= "+url) title = "Link " + str(i) i+=1 #xbmc.executebuiltin('XBMC.RunPlugin('+url+')') #params['action'] = 'runPlugin' #plugintools.play_resolved_url(url) #xbmc.executebuiltin('XBMC.RunPlugin(' + url +')') #xbmc.Player(xbmc.PLAYER_CORE_MPLAYER).play(item=url) plugintools.add_item( action="lsstv3" , title=title , plot=plot , url=url ,thumbnail=thumbnail , isPlayable=True, folder=False )
def main_list(params): plugintools.log("MelodyEntInc.main_list "+repr(params)) # On first page, pagination parameters are fixed if params.get("url") is None: params["url"] = "http://gdata.youtube.com/feeds/api/users/"+YOUTUBE_CHANNEL_ID+"/uploads?start-index=1&max-results=50" # Fetch video list from YouTube feed data = plugintools.read( params.get("url") ) # Extract items from feed pattern = "" matches = plugintools.find_multiple_matches(data,"<entry>(.*?)</entry>") for entry in matches: plugintools.log("entry="+entry) # Not the better way to parse XML, but clean and easy title = plugintools.find_single_match(entry,"<titl[^>]+>([^<]+)</title>") plot = plugintools.find_single_match(entry,"<media\:descriptio[^>]+>([^<]+)</media\:description>") thumbnail = plugintools.find_single_match(entry,"<media\:thumbnail url='([^']+)'") video_id = plugintools.find_single_match(entry,"http\://www.youtube.com/watch\?v\=([0-9A-Za-z_-]{11})") url = "plugin://plugin.video.youtube/?path=/root/video&action=play_video&videoid="+video_id # Appends a new item to the xbmc item list plugintools.add_item( action="play" , title=title , plot=plot , url=url ,thumbnail=thumbnail , isPlayable=True, folder=False ) # Calculates next page URL from actual URL start_index = int( plugintools.find_single_match( params.get("url") ,"start-index=(\d+)") ) max_results = int( plugintools.find_single_match( params.get("url") ,"max-results=(\d+)") ) next_page_url = "http://gdata.youtube.com/feeds/api/users/"+YOUTUBE_CHANNEL_ID+"/uploads?start-index=%d&max-results=%d" % ( start_index+max_results , max_results) plugintools.add_item( action="main_list" , title=">> Next page" , url=next_page_url , folder=True )
def youtube_videos(url): plugintools.log('[%s %s].youtube_videos %s' % (addonName, addonVersion, url)) # Fetch video list from YouTube feed data = plugintools.read(url) plugintools.log("data= "+data) # Extract items from feed pattern = "" matches = plugintools.find_multiple_matches(data,"<entry(.*?)</entry>") for entry in matches: plugintools.log("entry="+entry) # Not the better way to parse XML, but clean and easy title = plugintools.find_single_match(entry,"<titl[^>]+>([^<]+)</title>") title = title.replace("I Love Handball | ","") plot = plugintools.find_single_match(entry,"<summa[^>]+>([^<]+)</summa") thumbnail = plugintools.find_single_match(entry,"<media\:thumbnail url='([^']+)'") fanart = art+'youtube.png' video_id = plugintools.find_single_match(entry,"http\://www.youtube.com/watch\?v\=([0-9A-Za-z_-]{11})") url = "plugin://plugin.video.youtube/?path=/root/video&action=play_video&videoid="+video_id # Appends a new item to the xbmc item list plugintools.add_item( action="play" , title=title , plot=plot , url=url , thumbnail=thumbnail , fanart=fanart , isPlayable=True, folder=False )
def torrentone(params): plugintools.log("[PalcoTV-0.3.0].Playlist Sport Channels Torrent1( "+repr(params)) plugintools.add_item(action="", title = '[B][I][COLOR lightyellow]1torrent.tv Acestream Sports Playlist[/B][/I][/COLOR]', url = "", thumbnail = 'http://1torrent.tv/images/header_logo.png' , fanart = 'http://hdwallpappers.com/images/wallpapers/Allianz-Arena-Stadium-wallpaper.jpg' , folder = True, isPlayable = False) url = params.get("url") thumbnail = params.get("thumbnail") fanart = params.get("fanart") title = params.get("title") plugintools.log("title= "+title) data = plugintools.read(url) plugintools.log("data= "+data) match = plugintools.find_single_match(data, 'tcon_6(.*?)</a></div></div></div></div>') plugintools.log("match sports= "+match) matches = plugintools.find_multiple_matches(match, '<a href="(.*?)</a>(.*?)</a>') for winy, xiny in matches: plugintools.log("winy= "+winy) plugintools.log("xiny= "+xiny) winy = winy.split("><") url = 'http://1torrent.tv' + winy[0] url = url.replace('"', "") thumbnail = 'http://1torrent.tv/images/header_logo.png' title = xiny.split(">") title = title[3] plugintools.log("title= "+title) plugintools.log("url= "+url) plugintools.log("thumbnail= "+thumbnail) plugintools.add_item(action="gethash_torrentone" , title = title, url = url , thumbnail = thumbnail , fanart = 'http://hdwallpappers.com/images/wallpapers/Allianz-Arena-Stadium-wallpaper.jpg' , isPlayable = True, folder = False)
def mostrar_agenda(params): plugintools.log("arenavisionezy.mostrar_agenda "+repr(params)) # Parse json jsonUrl = parserJsonUrl + '?cat=all' plugintools.log("arenavisionezy.mostrar_agenda Parsing: " + jsonUrl) jsonSrc = urllib2.urlopen(jsonUrl) datos = json.load(jsonSrc) eventos = datos['eventos'] last_update = datos['last_update'] # Titulo de la categoria titulo01 = " [COLOR skyblue]Agenda completa[/COLOR] (actualizado: "+last_update+")" plugintools.add_item( title = titulo01 , thumbnail = generar_miniatura('default'), action='', url='', isPlayable = False, folder = False ) # Para cada evento for evento in eventos: title = "[COLOR skyblue]" + evento['fecha'] + " " + evento['hora'] + "[/COLOR] " + evento['titulo'] plot = "" thumbnail = generar_miniatura(evento['categoria']) url = "plugin://plugin.video.arenavisionezy/?action=listado_canales&evento="+evento['id'] plugintools.add_item( action="listado_canales" , title=title , plot=plot , url=url , thumbnail=thumbnail , isPlayable=True, folder=True )
def tumi(params): plugintools.log("[Movies-Online[0.0.1].Tumi "+repr(params)) data = plugintools.read(params.get("url")) if "Video is processing now" in data: xbmc.executebuiltin("Notification(%s,%s,%i,%s)" % ('Movies-Online', "El archivo está en proceso", 3 , art+'icon.png')) else: # Vamos a buscar el ID de la página embebida matches = plugintools.find_multiple_matches(data, 'add_my_acc=(.*?)\"') for entry in matches: print 'match',entry # http://tumi.tv/embed-i9l4mr7jph1a.html url = 'http://tumi.tv/embed-' + entry + '.html' # Petición HTTP de esa URL request_headers=[] request_headers.append(["User-Agent","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31"]) request_headers.append(["Referer",params.get("url")]) body,response_headers = plugintools.read_body_and_headers(url, headers=request_headers) plugintools.log("body= "+body) video_url= plugintools.find_single_match(body, 'file\: \"(.*?)\"') plugintools.log("video_url= "+video_url) plugintools.add_item(action="play", title= "hola" , url = video_url , folder = False , isPlayable = True) plugintools.play_resolved_url(video_url)
def search(params): plugintools.log("movie4k.search "+repr(params)) text = plugintools.keyboard_input(title="Input search terms") url = MAIN_URL+"movies.php?list=search" post = "search="+text.replace(" ","+") body,response_headers = read_body_and_headers(url, post=post) pattern = '<TR id="coverPreview[^<]+' pattern += '<TD width="550" id="tdmovies"[^<]+' pattern += '<a href="([^"]+)">([^<]+)</a>' matches = plugintools.find_multiple_matches(body,pattern) for scrapedurl, scrapedtitle in matches: url = urlparse.urljoin(url,scrapedurl) title = scrapedtitle.strip() thumbnail = "" plot = "" plugintools.log("movie4k.search title="+title+", url="+url+", thumbnail="+thumbnail) if "watch-tvshow" in url: url = MAIN_URL+"tvshows-season-"+plugintools.find_single_match(url,MAIN_URL+"([A-Za-z0-9\-]+)-watch-tvshow-\d+.html")+".html" plugintools.add_item( action="tvshow_seasons", title=title, url=url, thumbnail=thumbnail , plot=plot, fanart=thumbnail , folder=True ) else: plugintools.add_item( action="single_movie", title=title, url=url, thumbnail=thumbnail , plot=plot, fanart=thumbnail , folder=True )
def frame_parserl(params): url = params.get("url") print "START="+params.get("url") if params.get("title")=="[COLOR=red]Pon[COLOR=yellow]Tu[COLOR=red]Canal[/COLOR][/COLOR][/COLOR]" : pattern1 = 'popUp\(\'([^\']+).*src="([^"]+)' pattern2 = "http://canalesgratis.me/canales/"#http://canalesgratis.me/canales/ant3op2.php pattern3 = ".php" else :#PonLaTele pattern1 = 'popUp\(\'([^\']+).*src="([^"]+)' pattern2 = "http://verdirectotv.com/canales/" pattern3 = ".html" request_headers=[] request_headers.append(["User-Agent","Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"]) body,response_headers = plugintools.read_body_and_headers(url, headers=request_headers) data=body ref = url matches = find_multiple_matches_multi(data,pattern1) i=0 for scrapedurl, scrapedthumbnail in matches: thumb = scrapedthumbnail url = urlparse.urljoin( params.get("url") , scrapedurl.strip() ) import string title = url.replace(pattern2,"").replace(pattern3,"").replace("-"," ");title = string.capwords(title) if i%2==0: p1 = title[0] p2 = "[COLOR=red]"+title[0]+"[/COLOR]" title = title.replace(p1,p2); else: p1 = title[0] p2 = "[COLOR=yellow]"+title[0]+"[/COLOR]" title = title.replace(p1,p2); i+=1 msg = "Resolviendo enlace ... " uri = url+'@'+title+'@'+ref plugintools.add_item( action="frame_parser2" , title=title , url=uri ,thumbnail=thumb ,fanart=thumb , isPlayable=True, folder=False )
def tvshows_all(params): plugintools.log("movie4k.tvshows_all "+repr(params)) #plugintools.set_view(plugintools.THUMBNAIL) ''' <TR> <TD id="tdmovies" width="538"><a href="tvshows-season-Jane-by-Design.html">Jane By Design </a></TD> <TD id="tdmovies"><img border=0 src="http://img.movie4k.to/img/us_flag_small.png" width=24 height=14></TD> </TR> ''' body,response_headers = read_body_and_headers(params.get("url")) pattern = '<TR[^<]+' pattern += '<TD id="tdmovies" width="538"[^<]+' pattern += '<a href="([^"]+)">([^<]+)</a.*?<img border=0 src="([^\"]+)"' matches = plugintools.find_multiple_matches(body,pattern) for scrapedurl, scrapedtitle, flag in matches: url = urlparse.urljoin(params.get("url"),scrapedurl) title = scrapedtitle.strip() if title.strip().endswith(":"): title = title.strip()[:-1] title=title + get_language_from_flag_img(flag) thumbnail = "" plot = "" plugintools.log("movie4k.tvshows_all title="+title+", url="+url+", thumbnail="+thumbnail) plugintools.add_item( action="tvshow_seasons", title=title, url=url, thumbnail=thumbnail , plot=plot, fanart=thumbnail , folder=True ) next_page_url = plugintools.find_single_match(body,'<div id="boxwhite">\d+ </div><div id="boxgrey"><a href="([^"]+)">\d+') next_page_number = plugintools.find_single_match(body,'<div id="boxwhite">\d+ </div><div id="boxgrey"><a href="[^"]+">(\d+)') if next_page_url!="": plugintools.add_item( action="tvshows_all", title=">> Go to page "+next_page_number, url=urlparse.urljoin(params.get("url"),next_page_url), folder=True )
def tvshow_seasons(params): plugintools.log("movie4k.tvshow_seasons "+repr(params)) #plugintools.set_view(plugintools.LIST) body,response_headers = read_body_and_headers(params.get("url")) ''' <TR> <TD id="tdmovies" width="538"><a href="tvshows-episode-1-Arrow.html">Arrow , Season: 1 </a></TD> <TD id="tdmovies"><img border=0 src="http://img.movie4k.to/img/us_ger_small.png" width=24 height=14></TD> </TR> ''' pattern = '<TR[^<]+' pattern += '<TD id="tdmovies" width="\d+"><a href="([^"]+)">([^<]+)</a></TD[^<]+' pattern += '<TD id="tdmovies"><img border=0 src="([^\"]+)"' matches = plugintools.find_multiple_matches(body,pattern) for scrapedurl, scrapedtitle, flag in matches: url = urlparse.urljoin(params.get("url"),scrapedurl) title = scrapedtitle.strip() title=title + get_language_from_flag_img(flag) thumbnail = "" plot = "" plugintools.log("movie4k.tvshow_seasons title="+title+", url="+url+", thumbnail="+thumbnail) plugintools.add_item( action="tvshow_episodes", title=title, url=url, thumbnail=thumbnail , plot=plot, fanart=thumbnail , folder=True )
def genres(params): plugintools.log("movie4k.genres "+repr(params)) #plugintools.set_view(plugintools.LIST) body,response_headers = read_body_and_headers(params.get("url")) ''' <TR> <TD id="tdmovies" width="155"><a href="movies-genre-59-Reality-TV.html">Reality-TV</a></TD> <TD id="tdmovies" width="50">30</TD> </TR> ''' pattern = '<TR[^<]+' pattern += '<TD id="tdmovies" width="\d+"><a href="('+params.get("extra")+'-[^"]+)">([^<]+)</a></TD[^<]+' pattern += '<TD id="tdmovies" width="\d+">(\d+)</TD[^<]+' pattern += '</TR>' matches = plugintools.find_multiple_matches(body,pattern) for scrapedurl, scrapedtitle, counter in matches: url = urlparse.urljoin(params.get("url"),scrapedurl) title = scrapedtitle.strip()+" ("+counter+" movies)" thumbnail = "" plot = "" plugintools.log("movie4k.genres title="+title+", url="+url+", thumbnail="+thumbnail) if params.get("extra") == "tvshows-genre": plugintools.add_item( action="tvshows_all", title=title, url=url, thumbnail=thumbnail , plot=plot, fanart=thumbnail , folder=True ) else: plugintools.add_item( action="movies_all", title=title, url=url, thumbnail=thumbnail , plot=plot, fanart=thumbnail , folder=True )
def tvshows_featured(params): plugintools.log("movie4k.tvshows_featured "+repr(params)) #plugintools.set_view(plugintools.MOVIES) body,response_headers = read_body_and_headers(params.get("url")) pattern = '<div style="float.left"[^<]+' pattern += '<a href="([^"]+)"><img src="([^"]+)".*?' pattern += '<h2[^<]+<a[^<]+<font[^>]+>([^<]+)</a[^<]+<img src="([^"]+)".*?' matches = plugintools.find_multiple_matches(body,pattern) for scrapedurl, scrapedthumbnail, scrapedtitle, flag in matches: url = urlparse.urljoin(params.get("url"),scrapedurl) url = MAIN_URL+"tvshows-season-"+plugintools.find_single_match(url,MAIN_URL+"([A-Za-z0-9\-]+)-watch-tvshow-\d+.html")+".html" title = scrapedtitle if title.strip().endswith(":"): title = title.strip()[:-1] title=title + get_language_from_flag_img(flag) thumbnail = urlparse.urljoin(params.get("url"),scrapedthumbnail) plot = "" plugintools.log("movie4k.tvshows_featured title="+title+", url="+url+", thumbnail="+thumbnail) plugintools.add_item( action="tvshow_seasons", title=title, url=url, thumbnail=thumbnail , plot=plot, fanart=thumbnail , folder=True )
def search(params): plugintools.log("movie4k.search "+repr(params)) text = plugintools.keyboard_input(title="Input search terms") url = MAIN_URL+"movies.php?list=search" post = "search="+text.replace(" ","+") body,response_headers = read_body_and_headers_cached(url, post=post) pattern = '<TR id="coverPreview\d+">(.*?)</TR>' matches = plugintools.find_multiple_matches(body,pattern) for match in matches: pattern = '<a href="([^"]+)">([^<]+).*?<img border=0 src="([^"]+)' scrapedurl, scrapedtitle, flag = plugintools.find_single_match(match, pattern) pattern = '/img/smileys/(\d).gif' quality = plugintools.find_single_match(match, pattern) pattern = '<STRONG>(\d+\.*\d*)' rating = plugintools.find_single_match(match, pattern) url = urljoin(url,scrapedurl) title = html_unescape(scrapedtitle) title = re.sub('\s+', ' ', title).strip() + " (" + get_language_from_flag_img(flag) + " IMDB:" + rating + " Quality:" + quality + ")" plugintools.log("movie4k.search title=" + title + ", url=" + url) if "watch-tvshow" in url: url = MAIN_URL+"tvshows-season-"+plugintools.find_single_match(url,MAIN_URL+"([A-Za-z0-9\-]+)-watch-tvshow-\d+.html")+".html" plugintools.add_item( action="tvshow_seasons", title=title, url=url, fanart=FANART , folder=True ) else: plugintools.add_item( action="single_movie", title=title, url=url, fanart=FANART , folder=True )
def movies_all(params): plugintools.log("movie4k.movies_all "+repr(params)) #plugintools.set_view(plugintools.THUMBNAIL) body,response_headers = read_body_and_headers(params.get("url")) pattern = '<TR id="(coverPreview\d+)[^<]+' pattern += '<TD width="550" id="tdmovies"[^<]+' pattern += '<a href="([^"]+)">([^<]+)</a[^<]+.*?<TD align="right" id="tdmovies"[^<]+<img border=0 src="([^\"]+)"' matches = plugintools.find_multiple_matches(body,pattern) for cover_id, scrapedurl, scrapedtitle, flag in matches: url = urlparse.urljoin(params.get("url"),scrapedurl) title = scrapedtitle.strip() if title.strip().endswith(":"): title = title.strip()[:-1] title=title + get_language_from_flag_img(flag) thumbnail = plugintools.find_single_match(body,"\$\(\"\#"+cover_id+"\"\).hover\(function\(e\)[^<]+<p id='coverPreview'><img src='([^']+)'") plot = "" plugintools.log("movie4k.movies_all title="+title+", url="+url+", thumbnail="+thumbnail) plugintools.add_item( action="single_movie", title=title, url=url, thumbnail=thumbnail , plot=plot, fanart=thumbnail , folder=True ) next_page_url = plugintools.find_single_match(body,'<div id="boxwhite">\d+ </div><div id="boxgrey"><a href="([^"]+)">\d+') next_page_number = plugintools.find_single_match(body,'<div id="boxwhite">\d+ </div><div id="boxgrey"><a href="[^"]+">(\d+)') if next_page_url!="": plugintools.add_item( action="movies_all", title=">> Go to page "+next_page_number, url=urlparse.urljoin(params.get("url"),next_page_url), folder=True )
def tvshow_episodes(params): plugintools.log("movie4k.tvshow_episodes "+repr(params)) #plugintools.set_view(plugintools.LIST) body,response_headers = read_body_and_headers_cached(params.get("url")) pattern = '<TR[^<]+' pattern += '<TD id="tdmovies" width="\d+"[^<]+' pattern += '<a href="([^"]+)">([^<]+)</a></TD[^<]+' pattern += '<TD id="tdmovies" width="\d+"[^<]+' pattern += '<img[^>]+>([^<]+)</TD[^<]+' pattern += '.*?<img border=0 src="([^"]+)"' matches = plugintools.find_multiple_matches(body,pattern) for scrapedurl, scrapedtitle, mirrorname, flag in matches: url = urljoin(params.get("url"),scrapedurl) title = html_unescape(scrapedtitle).strip() if title.strip().endswith(":"): title = title.strip()[:-1] title = title + " ("+mirrorname.strip().replace("watch on ","")+")" title = title + " (" + get_language_from_flag_img(flag) + ")" plugintools.log("movie4k.tvshow_episodes title="+title+", url="+url) for hoster in HOSTERS_BLACKLIST: #plugintools.log("<<<<<"+hoster+">>>>> IN <<<<<<"+title.lower()+">>>>>>") if hoster in title.lower(): break; else: plugintools.add_item( action="play", title=title, url=url, fanart=FANART, folder=True )
def play(params): plugintools.log("movie4k.play "+repr(params)) #plugintools.set_view(plugintools.LIST) try: scrap_alternatives = "noalternatives" not in params.get("extra") url, alternatives = scrap_stream_url(params.get("url"), scrap_alternatives) except urllib2.URLError as e: plugintools.add_item(action="play", title="Movie4k.to is not responding, please try again", fanart=FANART, isPlayable=True, folder=False ) # Resolve stream url if url: try: hoster_name, direct_link = resolve_media_direct_link(url) plugintools.add_item(action="playable", title="[B]" + hoster_name + "[/B]", url=direct_link, fanart=FANART, isPlayable=True, folder=False ) except RuntimeError as e: plugintools.add_item( action="play", title=str(e), fanart=FANART, isPlayable=True, folder=False ) else: plugintools.add_item( action="play", title="No links found. Try an alternative link or another hoster", fanart=FANART, isPlayable=True, folder=False ) # Process alternatives if alternatives: for i, alternative_page_url in enumerate(alternatives): url = urljoin(params.get('url'), alternative_page_url) counter = str(i+1) + '/' + str(len(alternatives)) plugintools.add_item(action='play', title='Alternative link ' + counter, url=url, fanart=FANART , folder=True, extra="noalternatives" ) plugintools.log("movie4k.play alternative=" + url) else: plugintools.log("movie4k.play noalternatives")
def dailym_pl(params): plugintools.log("dailym_pl " + repr(params)) pl = params.get("url") data = plugintools.read(pl) plugintools.log("playlist= " + data) dailym_vid = plugintools.find_multiple_matches(data, "{(.*?)}") for entry in dailym_vid: plugintools.log("entry= " + entry) title = plugintools.find_single_match(entry, '"title":"(.*?)",') title = title.replace('"', "") title = title.replace("\*", "") video_id = plugintools.find_single_match(entry, '"id":"(.*?)",') thumbnail = "https://api.dailymotion.com/thumbnail/video/" + video_id + "" if thumbnail == "": thumbnail = "http://image-parcours.copainsdavant.com/image/750/1925508253/4094834.jpg" url = "plugin://plugin.video.dailymotion_com/?url=" + video_id + "&mode=playVideo" print "url", url plugintools.add_item( action="play", title=title, url=url, folder=False, fanart="http://image-parcours.copainsdavant.com/image/750/1925508253/4094834.jpg", thumbnail=thumbnail, isPlayable=True, )
def get_myaccount(params): plugintools.log(pnimi+get_live("Vk9EIGNoYW5uZWxzIG1lbnUg")+repr(params)) if vanemalukk == "true": pealkiri = params.get(sync_data("dGl0bGU=")) vanema_lukk(pealkiri) purl = params.get(get_live("dXJs")) request = urllib2.Request(purl, headers={"Accept" : "application/xml"}) u = urllib2.urlopen(request) tree = ElementTree.parse(u) rootElem = tree.getroot() for channel in tree.findall(sync_data("Y2hhbm5lbA==")): pealkiri = channel.find(get_live("dGl0bGU=")).text pealkiri = base64.b64decode(pealkiri) pealkiri = pealkiri.encode("utf-8") striimilink = channel.find(sync_data("c3RyZWFtX3VybA==")).text pilt = channel.find(sync_data("ZGVzY19pbWFnZQ==")).text kirjeldus = channel.find(vod_channels("ZGVzY3JpcHRpb24=")).text if kirjeldus: kirjeldus = base64.b64decode(kirjeldus) if pilt: plugintools.add_item( action="restart_service", title=pealkiri , url=striimilink, thumbnail=pilt, plot=kirjeldus, fanart=os.path.join(LOAD_LIVE,vod_channels("aG9tZXRoZWF0ZXIuanBn")) , extra="", isPlayable=True, folder=False ) else: plugintools.add_item( action="restart_service", title=pealkiri , url=striimilink, thumbnail=os.path.join(LOAD_LIVE,"noposter.jpg"), plot=kirjeldus, fanart=os.path.join(LOAD_LIVE,vod_channels("aG9tZXRoZWF0ZXIuanBn")) , extra="", isPlayable=True, folder=False ) plugintools.set_view( plugintools.EPISODES ) xbmc.executebuiltin('Container.SetViewMode(503)')
def epg_verahora(params): plugintools.log('[%s %s].epg_verahora %s' % (addonName, addonVersion, repr(params))) url = params.get("url") thumbnail = params.get("thumbnail") fanart = params.get("extra") data = plugintools.read(url) #plugintools.log("data= "+data) plugintools.add_item(action="", title= '[COLOR lightyellow][B]¿Qué ver ahora?[/B][/COLOR]', thumbnail = thumbnail , fanart = fanart , folder = False, isPlayable = False) body = plugintools.find_multiple_matches(data, '<td class="prga-i">(.*?)</tr>') for entry in body: channel = plugintools.find_single_match(entry, 'alt=\"([^"]+)') print 'channel',channel ahora = plugintools.find_single_match(entry, '<p>(.*?)</p>') print 'ahora',ahora hora_luego = plugintools.find_single_match(entry, 'class="fec1">(.*)</span>') hora_luego = hora_luego.split("</span>") hora_luego = hora_luego[0] print 'hora_luego',hora_luego diff_luego = plugintools.find_single_match(entry, 'class="fdiff">([^<]+)').strip() print 'diff_luego',diff_luego evento_luego = plugintools.find_single_match(entry, '<span class="tprg1">(.*?)</span>') print 'evento_luego',evento_luego evento_mastarde = plugintools.find_single_match(entry, '<span class="tprg2">(.*?)</span>') print 'evento_mastarde',evento_mastarde plugintools.add_item(action="", title= '[COLOR orange][B]'+channel+' [/B][COLOR lightyellow]'+ahora+'[/COLOR] [COLOR lightgreen][I]('+diff_luego+') [/I][/COLOR][COLOR white][B]'+hora_luego+' [/COLOR][/B] '+evento_luego, thumbnail = thumbnail , fanart = fanart , folder = False, isPlayable = False)
def get_episodes(mmsId,page): epsList = kidstv.get_mms_list(mmsId,page) for episode in epsList.get('episodes'): plugintools.add_item(title=episode.get('title'),action='showstreams',page='1',token=episode.get('token'),thumbnail=episode.get('image')) if epsList.get('next'): plugintools.add_item(title=u'הבא',page=str(int(page)+1),action='showepisodes',mmsId=mmsId) plugintools.close_item_list()
def GetSerieChapters(params): #plugintools.log("[%s %s] Seriesadicto: getseriechapters() %s" % (addonName, addonVersion, repr(params))) season = params.get("season") datamovie = {} datamovie["Plot"] = params.get("plot") data = plugintools.read(params.get("url")) show = params.get("series_id") # Obtenemos modo de vista del usuario para series TV if show is None: show = params.get("page") if show is None: show = "tvshows" plugintools.log("show= "+show) plugintools.modo_vista(show) season = plugintools.find_multiple_matches(data, season + '(.*?)</table>') season = season[0] for entry in season: url_cap = plugintools.find_multiple_matches(season, '<a href=\"/capitulo(.*?)\" class=\"color4\"') title = plugintools.find_multiple_matches(season, 'class=\"color4\">(.*?)</a>') num_items = len(url_cap) i = 1 while i <= num_items: url_cap_fixed = 'http://seriesadicto.com/capitulo/' + url_cap[i-1] title_fixed = title[i-1] fanart = "http://socialgeek.co/wp-content/uploads/2013/06/series-TV-Collage-television-10056729-2560-1600.jpg" plugintools.add_item(action="seriesadicto4", title= title_fixed, url = url_cap_fixed, thumbnail = params.get("thumbnail") , extra = str(i) , info_labels = datamovie , page = show , plot = datamovie["Plot"] , fanart = fanart, folder = True, isPlayable = False) i = i + 1
def listado_canales(params): plugintools.log("arenavisionezy.listado_canales "+repr(params)) evento = params['evento'] # Parse json jsonUrl = parserJsonUrl + '?evento='+evento plugintools.log("arenavisionezy.listado_canales Parsing: " + jsonUrl) jsonSrc = urllib2.urlopen(jsonUrl) evento = json.load(jsonSrc) # Datos del evento categoria = evento['categoria'] titulo = evento['titulo'] fecha = evento['fecha'] canales = evento['canales'] # Informacion del evento titulo01 = "[COLOR skyblue] " + categoria + " - " + fecha + "[/COLOR]" plugintools.add_item( title = titulo01 , thumbnail = generar_miniatura('default'), isPlayable = True, folder = True ) # Canales del evento for canal in canales: canal_nombre = canal['canal'] canal_enlace = canal['enlace'] etiqueta = "[COLOR red][" + canal_nombre + "][/COLOR] " + titulo enlace = "plugin://program.plexus/?url=" + canal_enlace + "&mode=1&name=" + canal_nombre + " " + titulo plugintools.add_item( title = etiqueta , url = enlace , thumbnail = generar_miniatura(categoria) , isPlayable = True, folder = False )
def tvshows_az(params): plugintools.log("ruyaiptv.tvshows_az "+repr(params)) for letra in ['0-9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']: plugintools.add_item( action="tvshows_by_letter", title=letra, url=letra, fanart=os.path.join(THUMBNAIL_PATH,"fanart1.jpg") , folder=True ) plugintools.set_view( plugintools.LIST )
def livetv_epg(params): plugintools.log("ruyaiptv.livetv_epg "+repr(params)) plugintools.add_item( action="livetv_epg_channels", title="EPG by channel" , thumbnail = os.path.join(THUMBNAIL_PATH,"") , fanart=os.path.join(THUMBNAIL_PATH,"fanart2.jpg") , folder=True ) plugintools.add_item( action="livetv_epg_search", title="EPG search..." , thumbnail = os.path.join(THUMBNAIL_PATH,"") , fanart=os.path.join(THUMBNAIL_PATH,"fanart2.jpg") , folder=True ) plugintools.set_view( plugintools.LIST )
def get_shows(page='1'): showsList = kidstv.get_shows_menu(page) for show in showsList.get('shows'): plugintools.add_item(title=show.get('title'),action='showepisodes',page='1',mmsId=show.get('mmsId'),thumbnail=show.get('image')) if showsList.get('next'): plugintools.add_item(title=u'הבא',page=str(int(page)+1),action='showlist') plugintools.close_item_list()
def video(params): plugintools.log("miratuserie_tv.video "+repr(params)) url=params.get("url") plugintools.add_item(title=url) #"verVid('kv2a6a98x113','played',0,1,0,1,'es'); sub="112" urlorg="americanhorrorstory/ir"" #url ="verVid('kv2a6a98x113','played',0,1,0,1,'es'); sub='112' urlorg='americanhorrorstory/ir'" id=plugintools.find_single_match(url,"verVid\((.*?)\);") split1= plugintools.find_multiple_matches(id,"'(.*?)'") split2= plugintools.find_multiple_matches(id,",(\d)") #spliit1 [0] key ,[1]host,[2]idiomas #split2 [0]plugin,[1]subs,[2]hd,[3]gk sub= plugintools.find_single_match(url,'sub="(.*?)"') urlorig= plugintools.find_single_match(url,'urlorg="(.*?)"') #print sub #print urlorig key=split1[0] host=split1[1] plugin=split2[0] subs=split2[1] sub=sub hd=split2[2] gk=split2[3] idiomas=split1[2] urlserie=urlorig urlvideo=get_url_video(key,host,plugin,subs,sub,hd,gk,idiomas,urlserie) #print "--------split------",split1,"--------split2------",split2 #print key,host,plugin,subs,sub,hd,gk,idiomas,urlserie,urlvideo pagvideo=plugintools.read(urlvideo) print "-----------------------pagvideo----------------------------------",pagvideo,"-----------------------------------------------"
def torrentvru(params): plugintools.log("[tvspot 4.0].Torrent-TV.ru Playlist Sport Channels( "+repr(params)) plugintools.add_item(action="", title = '[B][I][COLOR lightyellow]Torrent-tv.ru Acestream Sports Playlist[/B][/I][/COLOR]', url = "", thumbnail = 'http://1ttv.org/images/logo.png' , fanart = 'http://hdwallpappers.com/images/wallpapers/Allianz-Arena-Stadium-wallpaper.jpg' , folder = True, isPlayable = False) url = params.get("url") thumbnail = params.get("thumbnail") fanart = params.get("fanart") title = params.get("title") plugintools.log("title= "+title) data = plugintools.read(url) #plugintools.log("data= "+data) match = plugintools.find_single_match(data, 'cat=4(.*?)</ul></li>') plugintools.log("match sports= "+match) matches = plugintools.find_multiple_matches(match, '<a href="(.*?)</li>') for entry in matches: entry = entry.split('"') url = 'http://www.torrent-tv.ru' + entry[0] url = url.strip() url = torrentvru_channels(url) title = entry[1] title= title.replace("</a>", "") title= title.replace(">", "") title = title.strip() title_fixed = title.replace(" ", "+") url = 'plugin://plugin.video.p2p-streams/?url=' + url + '&mode=1&name=' + title_fixed plugintools.log("url= "+url) plugintools.add_item(action="torrentvru_channels", title = title, url = url, thumbnail = 'http://1ttv.org/images/logo.png' , fanart = 'http://hdwallpappers.com/images/wallpapers/Allianz-Arena-Stadium-wallpaper.jpg' , folder = False, isPlayable = True)
def xhamster2(params): plugintools.log('[%s %s] Parseando XHamter %s' % (addonName, addonVersion, repr(params))) url = params.get("url") headers = { "User-Agent": 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0', "Referer": url_ref } r = requests.get(url, headers=headers) data = r.content vid = params.get("title") img = params.get("thumbnail") bloque_link = plugintools.find_single_match( data, 'players:(.*?)allowFullScreen:') link1 = plugintools.find_single_match(bloque_link, 'file":"(.*?)"').replace("\\", "") plugintools.add_item(action="", url="", title=vid, thumbnail=img, fanart=fanart, folder=False, isPlayable=False) plugintools.add_item( action="", title='[COLOR lightblue]-- Ver en Xhamster.com --[/COLOR]', url="", thumbnail=img, fanart=fanart, folder=False, isPlayable=False) plugintools.add_item(action="play", url=link1, title=sc + "Opción 1: [COLOR gold][I]240p[/I][COLOR]" + ec, thumbnail=img, fanart=fanart, folder=False, isPlayable=True) link2 = plugintools.find_single_match( bloque_link, '"videoUrls".*?480p.*?http:(.*?)"').replace("\\", "") link2full = "http:" + link2 if link2 != "": plugintools.add_item(action="play", url=link2full, title=sc + "Opción 2: [COLOR gold][I]480p[/I][COLOR]" + ec, thumbnail=img, fanart=fanart, folder=False, isPlayable=True) link3 = plugintools.find_single_match(bloque_link, '720p.*?http:(.*?)"').replace( "\\", "") link3full = "http:" + link3 if link3 != "": plugintools.add_item(action="play", url=link3full, title=sc + "Opción 3: [COLOR gold][I]720p[/I][COLOR]" + ec, thumbnail=img, fanart=fanart, folder=False, isPlayable=True) # Enlaces a la web videater---------->> try: url_videater = 'http://videater.com/download/?url=' + urllib.unquote_plus( url) # Enlaces de Videater (Downloader Xhamster videos) ;) # plugintools.log("URL Videater= "+url) headers = { "User-Agent": 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0', "Referer": url_ref } r = requests.get(url_videater, headers=headers) data = r.content video = plugintools.find_single_match(data, 'var video = (.*?)}];') quality = [] item_quality = plugintools.find_multiple_matches( video, 'quality\":\"([^"]+)') for item in item_quality: item = item.replace("\/", "/") quality.append(item) urls = [] item_url = plugintools.find_multiple_matches(video, 'url\":\"([^"]+)') for item in item_url: item = item.replace("\/", "/") urls.append(item) thumbnail = plugintools.find_single_match(video, 'thumb\":\"([^"]+)') thumbnail = thumbnail.replace("\/", "/") plugintools.add_item( action="", title='[COLOR lightblue]-- Ver en Videater.com --[/COLOR]', url="", thumbnail=img, fanart=fanart, folder=False, isPlayable=False) i = 0 total = len(urls) - 1 while i < total: plugintools.add_item(action="play", title='[COLOR white]Opción ' + str(i + 1) + ': [COLOR gold][I]' + quality[i] + '[/I][/COLOR]', url=urls[i], thumbnail=img, fanart=fanart, folder=False, isPlayable=True) #plugintools.log("URL= "+urls[i]) i = i + 1 # print i except: pass
def get_genre(url): catgList = Mya.getgenre(url) for ctg in catgList: plugintools.add_item(title=ctg.get('title'),action='showmovie',url=ctg.get('url')) plugintools.close_item_list()
def get_hosts(): hostlist = Mya.gethosts() for host in hostlist: plugintools.add_item(title=host.get('title'),action='showgenre',url=host.get('url')) plugintools.close_item_list()
def main_list1(params): plugintools.log("nhkworld1.main_list " + repr(params)) plugintools.add_item( #action="", title="NHK World Channel", url="plugin://plugin.video.youtube/user/NHKWorld/", thumbnail=nhk_icon, folder=True) plugintools.add_item( #action="", title="Youtube Search for 'NHK World'", url='plugin://plugin.video.youtube/search/?q=NHK World', thumbnail=nhk_icon, folder=True) plugintools.add_item( #action="", title="Youtube Search for 'NHK BS'", url='plugin://plugin.video.youtube/search/?q=NHK BS', thumbnail=nhk_icon, folder=True) plugintools.add_item( #action="", title="UNESCO/NHK", url= "plugin://plugin.video.youtube/playlist/PLWuYED1WVJIPKU_tUlzLTfkbNnAtkDOhS/", thumbnail=nhk_icon, folder=True) plugintools.add_item( #action="", title="NHK Documentary", url='plugin://plugin.video.youtube/search/?q=NHK Documentary', thumbnail=nhk_icon, folder=True) plugintools.add_item( #action="", title="Begin Japanology", url="plugin://plugin.video.youtube/search/?q=Begin Japanology", thumbnail=nhk_icon, folder=True) plugintools.add_item( #action="", title="Japanology Plus", url="plugin://plugin.video.youtube/search/?q=Japanology Plus", thumbnail=nhk_icon, folder=True) plugintools.add_item( #action="", title="Tokyo Eye", url="plugin://plugin.video.youtube/search/?q=Tokyo Eye", thumbnail=nhk_icon, folder=True) plugintools.add_item( #action="", title="Trails to Tsukiji", url="plugin://plugin.video.youtube/search/?q=Trails to Tsukiji", thumbnail=nhk_icon, folder=True) plugintools.add_item( #action="", title="Dining with the Chef", url="plugin://plugin.video.youtube/search/?q=Dining with the chef", thumbnail=nhk_icon, folder=True) plugintools.add_item( #action="", title="Document 72 Hours", url="plugin://plugin.video.youtube/search/?q=Document 72 hours", thumbnail=nhk_icon, folder=True) plugintools.add_item( #action="", title="Blends", url="plugin://plugin.video.youtube/search/?q=NHK Blends", thumbnail=nhk_icon, folder=True) plugintools.add_item( #action="", title="Journeys in Japan", url= 'plugin://plugin.video.youtube/search/?q=intitle:"journeys in japan"', thumbnail=nhk_icon, folder=True) plugintools.add_item( #action="", title="Core Kyoto", url="plugin://plugin.video.youtube/search/?q=NHK Core Kyoto", thumbnail=nhk_icon, folder=True) plugintools.add_item( #action="", title="Japan Railway Journal", url="plugin://plugin.video.youtube/search/?q=NHK Japan Railway Journal", thumbnail=nhk_icon, folder=True) plugintools.add_item( #action="", title="J-Trip Plan", url="plugin://plugin.video.youtube/search/?q=NHK J-Trip Plan", thumbnail=nhk_icon, folder=True) plugintools.add_item( #action="", title="Seasoning the Seasons", url= 'plugin://plugin.video.youtube/search/?q=intitle:"Seasoning the Seasons"', thumbnail=nhk_icon, folder=True) plugintools.add_item( #action="", title="Somewhere Street", url="plugin://plugin.video.youtube/search/?q=NHK Somewhere Street", thumbnail=nhk_icon, folder=True) addDir('More Shows', '', 'youtube2', nhk_icon)
def main_list2(params): plugintools.log("nhkworld2.main_list " + repr(params)) plugintools.add_item( #action="", title="NHK Documentary - Silk Road", url= "plugin://plugin.video.youtube/playlist/PLB8KCZnnrFKmP6CPynDrFVheEt9VOBPk4/", thumbnail=nhk_icon, folder=True) plugintools.add_item( #action="", title="NHK Documentary - Silk Road II", url= "plugin://plugin.video.youtube/playlist/PLdwCuEoZ_6l7FvbsfjidxMIybBrF5jnb5/", thumbnail=nhk_icon, folder=True) plugintools.add_item( #action="", title="NHK World Shows 01", url="plugin://plugin.video.youtube/channel/UCs8DHpkt9f61vUOZO_qwiSQ/", thumbnail=nhk_icon, folder=True) plugintools.add_item( #action="", title="NHK World Shows 02", url= "plugin://plugin.video.youtube/playlist/PLKQaIKexM4LJL4GL-lfgvDdlLElTjJIUW/", thumbnail=nhk_icon, folder=True) plugintools.add_item( #action="", title="Begin Japanology", url= "plugin://plugin.video.youtube/playlist/PLJ4SclxaotEijsfzIFlUcHG6huoiovh9s/", thumbnail=nhk_icon, folder=True) plugintools.add_item( #action="", title="Tokyo Eye", url="plugin://plugin.video.youtube/channel/UC5ehEXRuBeVo1gkulk5I4BQ/", thumbnail=nhk_icon, folder=True) plugintools.add_item( #action="", title="cool japan", url= "plugin://plugin.video.youtube/playlist/PL54G12jDE7cPq7xbyEyaIf7jRvUC04TJg/", thumbnail=nhk_icon, folder=True) plugintools.add_item( #action="", title="Dining with the Chef", url= "plugin://plugin.video.youtube/playlist/PLIz8fpF_mbPSpMiJ9OHXo5Ai7dYDLXhYM/", thumbnail=nhk_icon, folder=True) plugintools.add_item( #action="", title="Sports Japan", url= "plugin://plugin.video.youtube/playlist/PLIz8fpF_mbPSjA3l8bPyYF2vYZioFl2S1/", thumbnail=nhk_icon, folder=True) plugintools.add_item( #action="", title="Meet and Speak", url= "plugin://plugin.video.youtube/playlist/PLdRCqO13zyDfQuDoZG6pHQuSJ2dbwVWQu/", thumbnail=nhk_icon, folder=True) plugintools.add_item( #action="", title="Japan-easy", url= "plugin://plugin.video.youtube/playlist/PLLbOFqwYMFi9scMpmRKU-a8260EG7R_bJ/", thumbnail=nhk_icon, folder=True) plugintools.add_item( #action="", title="MoshiMoshi Nippon", url= "plugin://plugin.video.youtube/playlist/PLpHD2EwLFcoQkHEP7w458jR-kSY_W4mo2/", thumbnail=nhk_icon, folder=True)
def main_list(params): plugintools.log("docu.main_list " + repr(params)) plugintools.add_item( #action="", title="Food File Live TV", url="plugin://plugin.video.youtube/channel/" + YOUTUBE_CHANNEL_ID_1 + "/", thumbnail= "https://yt3.ggpht.com/-Em3mb-44LjI/AAAAAAAAAAI/AAAAAAAAAAA/bVmyPesM1Kc/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Fablunch", url="plugin://plugin.video.youtube/user/" + YOUTUBE_CHANNEL_ID_2 + "/", thumbnail= "https://yt3.ggpht.com/-4i7hcnonuMs/AAAAAAAAAAI/AAAAAAAAAAA/ShqTdFXpe_w/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="HealthNutNutrition", url="plugin://plugin.video.youtube/user/" + YOUTUBE_CHANNEL_ID_3 + "/", thumbnail= "https://yt3.ggpht.com/-ktTPXJ5jTcY/AAAAAAAAAAI/AAAAAAAAAAA/BcAYFOOA-mc/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Crumbs Food", url="plugin://plugin.video.youtube/user/" + YOUTUBE_CHANNEL_ID_4 + "/", thumbnail= "https://yt3.ggpht.com/-xf9Hv5MKagA/AAAAAAAAAAI/AAAAAAAAAAA/3jH9Bc0fxHw/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="The World Kitchen", url="plugin://plugin.video.youtube/user/" + YOUTUBE_CHANNEL_ID_5 + "/", thumbnail= "https://yt3.ggpht.com/-6eO5dkZoKOY/AAAAAAAAAAI/AAAAAAAAAAA/z95CvvL64WY/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Official My Kitchen", url="plugin://plugin.video.youtube/user/" + YOUTUBE_CHANNEL_ID_6 + "/", thumbnail= "https://yt3.ggpht.com/-fABnvmrZzgQ/AAAAAAAAAAI/AAAAAAAAAAA/6YKvLWDNjUQ/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Kitchen Nightmares", url="plugin://plugin.video.youtube/user/" + YOUTUBE_CHANNEL_ID_7 + "/", thumbnail= "https://yt3.ggpht.com/-WJNIkxOkUrM/AAAAAAAAAAI/AAAAAAAAAAA/pauY0DR-1Oc/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="The F Word", url="plugin://plugin.video.youtube/user/" + YOUTUBE_CHANNEL_ID_8 + "/", thumbnail= "https://yt3.ggpht.com/-KkGN4mC_ryM/AAAAAAAAAAI/AAAAAAAAAAA/PDnVBPaxTGY/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Mack Michaels", url="plugin://plugin.video.youtube/user/" + YOUTUBE_CHANNEL_ID_9 + "/", thumbnail= "https://yt3.ggpht.com/-6TJ4tG7jBzg/AAAAAAAAAAI/AAAAAAAAAAA/SZkJ-Zw1F9M/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="HomeVeda Nutrition", url="plugin://plugin.video.youtube/user/" + YOUTUBE_CHANNEL_ID_10 + "/", thumbnail= "https://yt3.ggpht.com/-5_AAgehKpgg/AAAAAAAAAAI/AAAAAAAAAAA/Kv-OmzYoVdM/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Let's Be Foodie", url="plugin://plugin.video.youtube/user/" + YOUTUBE_CHANNEL_ID_11 + "/", thumbnail= "https://yt3.ggpht.com/-blEfTsHFI88/AAAAAAAAAAI/AAAAAAAAAAA/2EMPYd2TJxc/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Weelicious", url="plugin://plugin.video.youtube/user/" + YOUTUBE_CHANNEL_ID_12 + "/", thumbnail= "https://yt3.ggpht.com/-VdRQW1q5VLM/AAAAAAAAAAI/AAAAAAAAAAA/fd5V8YhS_6c/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Inspire To Cook", url="plugin://plugin.video.youtube/channel/" + YOUTUBE_CHANNEL_ID_13 + "/", thumbnail= "https://yt3.ggpht.com/-FAaaH4amR9k/AAAAAAAAAAI/AAAAAAAAAAA/gWLlOmdTFPs/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="How To Cook That", url="plugin://plugin.video.youtube/user/" + YOUTUBE_CHANNEL_ID_14 + "/", thumbnail= "https://yt3.ggpht.com/-BVr3FGmxht8/AAAAAAAAAAI/AAAAAAAAAAA/Xvh_CKEbu4Y/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Brown Vegan", url="plugin://plugin.video.youtube/user/" + YOUTUBE_CHANNEL_ID_15 + "/", thumbnail= "https://yt3.ggpht.com/-8FXamSUzTps/AAAAAAAAAAI/AAAAAAAAAAA/B2oLHtFDuLw/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Vegan Cooking With Love", url="plugin://plugin.video.youtube/user/" + YOUTUBE_CHANNEL_ID_16 + "/", thumbnail= "https://yt3.ggpht.com/-UuNT9whKROo/AAAAAAAAAAI/AAAAAAAAAAA/jaVx27PHyqc/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Veggietorials", url="plugin://plugin.video.youtube/user/" + YOUTUBE_CHANNEL_ID_17 + "/", thumbnail= "https://yt3.ggpht.com/-0_D-SpO946I/AAAAAAAAAAI/AAAAAAAAAAA/xpIMh419B50/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Cookies Cupcakes and Cardio", url="plugin://plugin.video.youtube/user/" + YOUTUBE_CHANNEL_ID_18 + "/", thumbnail= "https://yt3.ggpht.com/-C-p4TKf1VLQ/AAAAAAAAAAI/AAAAAAAAAAA/l0qyJCvcfIs/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Hilah Cooking", url="plugin://plugin.video.youtube/user/" + YOUTUBE_CHANNEL_ID_19 + "/", thumbnail= "https://yt3.ggpht.com/-8O-hBbxo6-8/AAAAAAAAAAI/AAAAAAAAAAA/yDh7E7-z2jk/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Tefal Actify Recipes and Guides", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_20 + "/", thumbnail= "https://yt3.ggpht.com/-OEeD9azcEpY/AAAAAAAAAAI/AAAAAAAAAAA/uU8H90DEHTc/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Healthy Recipes - Philips Air Fryer", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_21 + "/", thumbnail= "https://yt3.ggpht.com/-INrY2l94xxg/AAAAAAAAAAI/AAAAAAAAAAA/v1dQsFQuMNg/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Healthy Airfryer Recipes - Fry without Oil!!!", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_22 + "/", thumbnail= "https://yt3.ggpht.com/-3NFw9IsmjR8/AAAAAAAAAAI/AAAAAAAAAAA/XlOfiO8RqbE/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Philips Airfryer Recipes", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_23 + "/", thumbnail= "https://yt3.ggpht.com/-EyNocRhocbo/AAAAAAAAAAI/AAAAAAAAAAA/lzi3qVtDcuM/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Slow Cooker / Crockpot / Crock Pot recipes", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_24 + "/", thumbnail= "https://yt3.ggpht.com/-5raKrDwamMI/AAAAAAAAAAI/AAAAAAAAAAA/pwoLmjbRPkE/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Indian Crock-Pot Cookery", url="plugin://plugin.video.youtube/user/" + YOUTUBE_CHANNEL_ID_25 + "/", thumbnail= "https://yt3.ggpht.com/-qFFP5WruQtw/AAAAAAAAAAI/AAAAAAAAAAA/DEJrF0yFM-s/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Slow Cooker Recipes", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_26 + "/", thumbnail= "http://media-cache-ak0.pinimg.com/736x/15/dd/41/15dd41cf81353da44ad190c56f320bbf.jpg", folder=True) plugintools.add_item( #action="", title="Allrecipes Slow Cooker Recipes", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_27 + "/", thumbnail= "https://yt3.ggpht.com/-nVEDlVwhNrs/AAAAAAAAAAI/AAAAAAAAAAA/RGAs3-lUDS4/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Slow Cooker Recipes | Crock Pot Recipes", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_28 + "/", thumbnail= "https://yt3.ggpht.com/-nIagi_zs0dQ/AAAAAAAAAAI/AAAAAAAAAAA/3qciRz-z3ww/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Slowcooker recipes", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_29 + "/", thumbnail= "https://yt3.ggpht.com/-jnXq778Tbf0/AAAAAAAAAAI/AAAAAAAAAAA/AH9PhyLXJpg/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="More Slow Cooker Recipes", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_30 + "/", thumbnail= "http://media-cache-ak0.pinimg.com/736x/15/dd/41/15dd41cf81353da44ad190c56f320bbf.jpg", folder=True) plugintools.add_item( #action="", title="Weight Watcher Girl Recipes", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_31 + "/", thumbnail= "https://yt3.ggpht.com/-njQA9uu0GVk/AAAAAAAAAAI/AAAAAAAAAAA/ra8H1_suYl4/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Weight Watchers Recipes", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_32 + "/", thumbnail= "https://yt3.ggpht.com/-3nkmyHTMSl8/AAAAAAAAAAI/AAAAAAAAAAA/RaFjsXcLq5g/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Weight Watchers Points Plus Recipes - Lunch & Dinner", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_33 + "/", thumbnail= "https://yt3.ggpht.com/-sVsN9U9Xzxo/AAAAAAAAAAI/AAAAAAAAAAA/rAypBRVIBdo/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Weight Watchers Points Plus Recipes - Snacks", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_34 + "/", thumbnail= "https://yt3.ggpht.com/-sVsN9U9Xzxo/AAAAAAAAAAI/AAAAAAAAAAA/rAypBRVIBdo/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Weight Watchers Points Plus Recipes - Breakfast", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_35 + "/", thumbnail= "https://yt3.ggpht.com/-sVsN9U9Xzxo/AAAAAAAAAAI/AAAAAAAAAAA/rAypBRVIBdo/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Weight Watchers Points Plus Recipes - Dessert", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_36 + "/", thumbnail= "https://yt3.ggpht.com/-sVsN9U9Xzxo/AAAAAAAAAAI/AAAAAAAAAAA/rAypBRVIBdo/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Weight Watchers Points Plus Recipes - Dessert 2", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_37 + "/", thumbnail= "https://yt3.ggpht.com/-sVsN9U9Xzxo/AAAAAAAAAAI/AAAAAAAAAAA/rAypBRVIBdo/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Healthy Kadai Best Indian Recipes", url="plugin://plugin.video.youtube/user/" + YOUTUBE_CHANNEL_ID_38 + "/", thumbnail= "https://yt3.ggpht.com/-3NFw9IsmjR8/AAAAAAAAAAI/AAAAAAAAAAA/XlOfiO8RqbE/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Finger Foods Recipes", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_39 + "/", thumbnail= "https://yt3.ggpht.com/-wcbsOFoLD4w/AAAAAAAAAAI/AAAAAAAAAAA/tyUa8X2XtTI/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Street Food", url="plugin://plugin.video.youtube/user/" + YOUTUBE_CHANNEL_ID_40 + "/", thumbnail= "https://yt3.ggpht.com/-uN_mCvZ3KWg/AAAAAAAAAAI/AAAAAAAAAAA/XeTT3YSmtnQ/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Kabita's Kitchen", url="plugin://plugin.video.youtube/channel/" + YOUTUBE_CHANNEL_ID_41 + "/", thumbnail= "https://yt3.ggpht.com/-zDyCx20qJv8/AAAAAAAAAAI/AAAAAAAAAAA/WUSNccyFF-8/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Food Junction", url="plugin://plugin.video.youtube/user/" + YOUTUBE_CHANNEL_ID_42 + "/", thumbnail= "https://yt3.ggpht.com/-2MIcBQu1Xn0/AAAAAAAAAAI/AAAAAAAAAAA/AAZFHHbALLk/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Buzzfeed Recipes", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_43 + "/", thumbnail= "https://yt3.ggpht.com/-iJJcDIkIjL0/AAAAAAAAAAI/AAAAAAAAAAA/Rf6VBJ2D-MA/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="BuzzFeed Must Try Recipes", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_44 + "/", thumbnail= "https://yt3.ggpht.com/-GpCZ25vJ6CU/AAAAAAAAAAI/AAAAAAAAAAA/6qGF_ZTSSf0/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Buzzfeed Food Hacks", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_45 + "/", thumbnail= "https://yt3.ggpht.com/-qx3h-z3lc9w/AAAAAAAAAAI/AAAAAAAAAAA/QKFUBQtVG6A/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Diabetic Low-Carb Recipes", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_46 + "/", thumbnail= "https://yt3.ggpht.com/-tQR3Eg1svaw/AAAAAAAAAAI/AAAAAAAAAAA/8kMGGgAHinI/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Indian Diabetic Recipes", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_47 + "/", thumbnail= "https://yt3.ggpht.com/-nadO9YoAFPM/AAAAAAAAAAI/AAAAAAAAAAA/bwBIrMo8bl0/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Diabetic Recipes", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_48 + "/", thumbnail= "https://yt3.ggpht.com/-fWq_R-02uVo/AAAAAAAAAAI/AAAAAAAAAAA/lHhz7VZMmnI/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="healthy food for my diabetes", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_49 + "/", thumbnail= "https://yt3.ggpht.com/-92AYRSEyryQ/AAAAAAAAAAI/AAAAAAAAAAA/iY5RclZAtDA/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Gluten Free Recipes", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_50 + "/", thumbnail= "https://yt3.ggpht.com/-xW77slWb5ac/AAAAAAAAAAI/AAAAAAAAAAA/6Xcf9ZZYf-o/s100-c-k-no/photo.jpg", folder=True)
def xhamster_bus1(params): plugintools.log('[%s %s] Buscando videos... %s' % (addonName, addonVersion, repr(params))) url = params.get("url") r = requests.get(url) data = r.content pager = plugintools.find_single_match(data, "<div class='pager'>(.*?)</table>") # Buscando el número de página y el total de páginas de la sección... num_pag = plugintools.find_single_match( pager, '<span>([0-9]*)</span>').strip( ) # Extraemos el número de la página actual total = params.get("extra") # Capturando el cambio de codigo fuente de la ultima pag cons = plugintools.find_single_match( pager, "(</div>Próximo</a>)" ) # Etiqueta proximo en codigo fuente para saber que no es ultima pag. if cons != "": # plugintools.log("pager= "+pager) paginas = plugintools.find_multiple_matches( pager, "qcat=video&page=([0-9]*)'>") total = paginas[-1] else: total = plugintools.find_single_match( pager, "<span>(.*?)</span>" ) # Falta la etiqueta proximo en el codigo fuente, es la ultima pag. plugintools.add_item(action="xhamster_buspag", title="[COLOR white]Ir a página... [CR](" + num_pag + "/" + total + ")[/COLOR]", url=url, extra=total, thumbnail=logo_pag, fanart=fanart, folder=True, isPlayable=False) plugintools.add_item( action="xhamster0", title="[COLOR red]<< Menu Principal >>[/COLOR]", url=web, thumbnail="http://stec-site.xhcdn.com/images/logo/logo.png", fanart=fanart, folder=True, isPlayable=False) bloque_buscado = plugintools.find_single_match( data, "Resultados de busqueda(.*?)<div class='pager'>") vid = plugintools.find_multiple_matches(bloque_buscado, "<a href='(.*?)/div></div></div>") for item in vid: title = plugintools.find_single_match(item, "<u>(.*?)</u>") url_vid = plugintools.find_single_match(item, '(.*?)"') img = plugintools.find_single_match(item, "<img src='(.*?)'") time = plugintools.find_single_match(item, "<b>(.*?)</b>") val = plugintools.find_single_match(item, 'class="fr">(.*?)<') views = plugintools.find_single_match(item, 'class="views-value">(.*?)<') quality = plugintools.find_single_match(item, '<div class="hSprite(.*?)"') if quality != "": quality = "[COLOR lightblue][B][I][HD][/I][/B][/COLOR]" titlefull = '[COLOR gold][B][' + str( val) + '][/B][/COLOR][COLOR white][I] ' + str( views ) + ' views[/I] ' + quality + "[CR]" + title + " - [" + str( time) + '][/COLOR]' else: titlefull = '[COLOR gold][B][' + str( val) + '][/B][/COLOR][COLOR white][I] ' + str( views) + ' views[/I][CR]' + title + " - [" + str( time) + '][/COLOR]' plugintools.add_item(action="xhamster2", title=titlefull, url=url_vid, thumbnail=img, fanart=fanart, folder=True, isPlayable=False) # Paginador------------>> # pagina anterior url_ant = plugintools.find_single_match(pager, "<div><a href='(.*?)'").replace( "amp;", "") pag_ant = plugintools.find_single_match( pager, "<div><a href='(.*?)qcat=video&page=([0-9]*)'") if url_ant != "": pag_ant = plugintools.find_single_match(url_ant, 'page=([0-9]*)').strip() if pag_ant == "": pag_ant = "1" plugintools.add_item( action="xhamster_bus1", title="[COLOR red]Anterior << [" + pag_ant + "/" + total + "][/COLOR]", url=url_ant, extra=total, thumbnail="http://stec-site.xhcdn.com/images/logo/logo.png", fanart=fanart, folder=True, isPlayable=False) # Pagina Inicio buscado = plugintools.find_single_match(pager, "<a href='(.*?)page=([0-9])'") url_inic = buscado[0].replace("amp;", "") pag = buscado[1].replace(buscado[1], "1") pag_inic = url_inic + "page=" + pag if int(num_pag) >= 2: plugintools.add_item( action="xhamster_bus1", title="[COLOR red]<< Inicio >>[/COLOR]", url=pag_inic, extra=total, thumbnail="http://stec-site.xhcdn.com/images/logo/logo.png", fanart=fanart, folder=True, isPlayable=False) # pagina Siguiente sigfull = plugintools.find_single_match( pager, "<span>.*?</span><a href='([^']*)'>([^<]*)</a>") if cons != "": sig = [sigfull[0].replace("amp;", ""), sigfull[1]] url_sig = sig[0] pag_sig = sig[1] if pag_sig == "...": pag_sig = ( int(num_pag) + 1 ) # Reemplazando el resultado ... de la paginacion por pagina actual +1 plugintools.add_item( action="xhamster_bus1", title="[COLOR red]Siguiente >> [" + str(pag_sig) + "/" + str(total) + "][/COLOR]", url=url_sig, extra=total, thumbnail="http://stec-site.xhcdn.com/images/logo/logo.png", fanart=fanart, folder=True, isPlayable=False) else: pag_sig = total url_sig = ""
def hoofdlijst(params): setView('movies', 'EPiC') plugintools.log("XvBMC.hoofdlijst " + repr(params)) addons = base64.b64decode('L3BsYXlsaXN0cw==') joetjoepkanaal01 = base64.b64decode( 'VUNWWDZlRWVJSVNjd0Fwek5zN1V1dnVn') + addons joetjoepkanaal02 = base64.b64decode( 'VUNCcERKVWxUeGR4bnI4b1FwNGZXOGpB') + addons joetjoepkanaal03 = base64.b64decode( 'VUMtWjhua2hwRzdEUXZPOHdlZ01IR0lR') + addons joetjoepkanaal04 = base64.b64decode( 'VUNfeHc2WUJubHlMcVlub3BhYmJ6ZmlR') + addons joetjoepkanaal05 = base64.b64decode( 'VUNKWTRFRDdCb2NWa3RpekFUa0VMM0Z3') + addons joetjoepkanaal06 = base64.b64decode( 'VUN2TDRnYjhoaXc3NC1PczFoSnlDTEln') + addons joetjoepkanaal07 = base64.b64decode("b25saW5lZmlsbXNraWprZW4=") joetjoepkanaal08 = base64.b64decode( 'VUNyLUpCQzFYUHFKbV9POWlSMk0wV2pn') + addons joetjoepkanaal10 = base64.b64decode( 'VUNoVndOQzI0aklsdTk4RzByR0Z0UVpR') + addons joetjoepkanaal11 = base64.b64decode( 'VUMybjVBTTd2QWNNZVc4U0xta2pDZW5n') + addons joetjoepkanaal12 = base64.b64decode( 'VUMzY3h2UEYxbWZ1MWF2ZEhPNlk5Tm53') + addons joetjoepkanaal13 = base64.b64decode( 'VUMxa05lNTdGLTg1dHJyWUM3dGJPU1hB') + addons joetjoepkanaal14 = base64.b64decode( 'VUNVZnNyU0w2RHlXU2trcGRkbFkyMS1R') + addons joetjoepkanaal15 = base64.b64decode('RGFuY2VUcmlwcGluT2ZmaWNpYWw=') gebruiker = base64.b64decode('L3VzZXIv') jijbuis = base64.b64decode('cGx1Z2luOi8vcGx1Z2luLnZpZGVvLnlvdXR1YmU=') kanaal = base64.b64decode('L2NoYW5uZWwv') poster = base64.b64decode('Lw==') plugintools.add_item( title="Live Music", url=jijbuis + kanaal + joetjoepkanaal01 + poster, thumbnail= "https://archive.org/download/fanart_20170116/Live%20Music%20icon.png", fanart="https://archive.org/download/fanart_20170116/fanart.jpg", folder=True) plugintools.add_item( title="NL Series", url=jijbuis + kanaal + joetjoepkanaal02 + poster, thumbnail= "https://archive.org/download/fanart_20170116/NL%20SERIE%20icon.png", fanart="https://archive.org/download/fanart_20170116/fanart.jpg", folder=True) plugintools.add_item( title="NL Kids", url=jijbuis + kanaal + joetjoepkanaal03 + poster, thumbnail= "https://archive.org/download/fanart_20170116/NL%20KIDS%20icon.png", fanart="https://archive.org/download/fanart_20170116/fanart.jpg", folder=True) plugintools.add_item( title="NL Films", url=jijbuis + kanaal + joetjoepkanaal04 + poster, thumbnail= "https://archive.org/download/fanart_20170116/NL%20FILM%20icon.png", fanart="https://archive.org/download/fanart_20170116/fanart.jpg", folder=True) plugintools.add_item( title="NL Docu", url=jijbuis + kanaal + joetjoepkanaal05 + poster, thumbnail= "https://archive.org/download/fanart_20170116/NL%20Docu%20icon.png", fanart="https://archive.org/download/fanart_20170116/fanart.jpg", folder=True) plugintools.add_item( title="NL Cabaret", url=jijbuis + kanaal + joetjoepkanaal06 + poster, thumbnail= "https://archive.org/download/fanart_20170116/NL%20CABARET%20icon.png", fanart="https://archive.org/download/fanart_20170116/fanart.jpg", folder=True) plugintools.add_item( title="Xvbmc Handleidingen", url=jijbuis + gebruiker + joetjoepkanaal07 + poster, thumbnail= "https://archive.org/download/fanart_20170116/Xvbmc%20handleidingen%20icon.png", fanart="https://archive.org/download/fanart_20170116/fanart.jpg", folder=True) plugintools.add_item( title="Vlaamse Content", url=jijbuis + kanaal + joetjoepkanaal08 + poster, thumbnail= "https://archive.org/download/fanart_20170116/Vlaams%20icon.png", fanart="https://archive.org/download/fanart_20170116/fanart.jpg", folder=True) plugintools.add_item( title=".:C.T.R.L:. Gaming Room", url=jijbuis + kanaal + joetjoepkanaal10 + poster, thumbnail= "https://archive.org/download/fanart_20170116/CtrlGamingIcon.png", fanart="https://archive.org/download/fanart_20170116/fanart.jpg", folder=True) plugintools.add_item( title="Cirque du soleil", url=jijbuis + kanaal + joetjoepkanaal11 + poster, thumbnail="https://archive.org/download/fanart_20170116/CircusIcon.png", fanart="https://archive.org/download/fanart_20170116/fanart.jpg", folder=True) plugintools.add_item( title="NL Racing", url=jijbuis + kanaal + joetjoepkanaal12 + poster, thumbnail="https://archive.org/download/fanart_20170116/NlRacing.png", fanart="https://archive.org/download/fanart_20170116/fanart.jpg", folder=True) plugintools.add_item( title="Van alles en nog wat NL", url=jijbuis + kanaal + joetjoepkanaal13 + poster, thumbnail="https://archive.org/download/fanart_20170116/vanalles.png", fanart="https://archive.org/download/fanart_20170116/fanart.jpg", folder=True) plugintools.add_item( title="Muziek Uit Limburg", url=jijbuis + kanaal + joetjoepkanaal14 + poster, thumbnail= "https://archive.org/download/fanart_20170116/NlLimburgIcon.png", fanart="https://archive.org/download/fanart_20170116/fanart.jpg", folder=True) plugintools.add_item( title="DanceTrippin TV", url=jijbuis + gebruiker + joetjoepkanaal15 + poster, thumbnail="https://archive.org/download/fanart_20170116/DanceIcon.png", fanart="https://archive.org/download/fanart_20170116/fanart.jpg", folder=True)
def oranline1(params): plugintools.log('[%s %s] Oranline URL analyzer %s' % (addonName, addonVersion, repr(params))) if url.find("allmyvideos") >= 0: server_url = "[COLOR lightgreen][I][allmyvideos][/I][/COLOR]" plugintools.add_item(action="allmyvideos", title='[COLOR white]' + title_fixed + ' [/COLOR][COLOR lightyellow][I](' + server_name + ')[/I][/COLOR] [COLOR lightgreen][I]' + lang + '[/I][/COLOR]', url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumbnail, folder=False, isPlayable=True) elif url.find("vidspot") >= 0: server_url = "[COLOR lightgreen][I][vidspot][/I][/COLOR]" plugintools.add_item(action="vidspot", title='[COLOR white]' + title_fixed + ' [/COLOR][COLOR lightyellow][I](' + server_name + ')[/I][/COLOR] [COLOR lightgreen][I]' + lang + '[/I][/COLOR]', url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumbnail, folder=False, isPlayable=True) elif url.find("played.to") >= 0: server_url = "[COLOR lightgreen][I][played.to][/I][/COLOR]" plugintools.add_item(action="playedto", title='[COLOR white]' + title_fixed + ' [/COLOR][COLOR lightyellow][I](' + server_name + ')[/I][/COLOR] [COLOR lightgreen][I]' + lang + '[/I][/COLOR]', url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumbnail, folder=False, isPlayable=True) elif url.find("nowvideo") >= 0: server_url = "[COLOR lightgreen][I][nowvideo][/I][/COLOR]" plugintools.add_item(action="nowvideo", title='[COLOR white]' + title_fixed + ' [/COLOR][COLOR lightyellow][I](' + server_name + ')[/I][/COLOR] [COLOR lightgreen][I]' + lang + '[/I][/COLOR]', url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumbnail, folder=False, isPlayable=True) elif url.find("streamin.to") >= 0: server_url = "[COLOR lightgreen][I][streamin.to][/I][/COLOR]" plugintools.add_item(action="streaminto", title='[COLOR white]' + title_fixed + ' [/COLOR][COLOR lightyellow][I](' + server_name + ')[/I][/COLOR] [COLOR lightgreen][I]' + lang + '[/I][/COLOR]', url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumbnail, folder=False, isPlayable=True) elif url.find("vk") >= 0: server_url = "[COLOR lightgreen][I][vk][/I][/COLOR]" plugintools.add_item(action="vk", title='[COLOR white]' + title_fixed + ' [/COLOR][COLOR lightyellow][I](' + server_name + ')[/I][/COLOR] [COLOR lightgreen][I]' + lang + '[/I][/COLOR]', url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumbnail, folder=False, isPlayable=True) elif url.find("tumi") >= 0: server_url = "[COLOR lightgreen][I][tumi][/I][/COLOR]" plugintools.add_item(action="tumi", title='[COLOR white]' + title_fixed + ' [/COLOR][COLOR lightyellow][I](' + server_name + ')[/I][/COLOR] [COLOR lightgreen][I]' + lang + '[/I][/COLOR]', url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumbnail, folder=False, isPlayable=True) elif url.find("streamcloud") >= 0: server_url = "[COLOR lightgreen][I][streamcloud][/I][/COLOR]" plugintools.add_item(action="streamcloud", title='[COLOR white]' + title_fixed + ' [/COLOR][COLOR lightyellow][I](' + server_name + ')[/I][/COLOR] [COLOR lightgreen][I]' + lang + '[/I][/COLOR]', url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumbnail, folder=False, isPlayable=True) elif url.find("veehd") >= 0: server_url = "[COLOR lightgreen][I][veehd][/I][/COLOR]" plugintools.add_item(action="veehd", title='[COLOR white]' + title_fixed + ' [/COLOR][COLOR lightyellow][I](' + server_name + ')[/I][/COLOR] [COLOR lightgreen][I]' + lang + '[/I][/COLOR]', url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumbnail, folder=False, isPlayable=True) elif url.find("novamov") >= 0: server_url = "[COLOR lightgreen][I][novamov][/I][/COLOR]" plugintools.add_item(action="novamov", title='[COLOR white]' + title_fixed + ' [/COLOR][COLOR lightyellow][I](' + server_name + ')[/I][/COLOR] [COLOR lightgreen][I]' + lang + '[/I][/COLOR]', url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumbnail, folder=False, isPlayable=True) elif url.find("moevideos") >= 0: server_url = "[COLOR lightgreen][I][moevideos][/I][/COLOR]" plugintools.add_item(action="moevideos", title='[COLOR white]' + title_fixed + ' [/COLOR][COLOR lightyellow][I](' + server_name + ')[/I][/COLOR] [COLOR lightgreen][I]' + lang + '[/I][/COLOR]', url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumbnail, folder=False, isPlayable=True) elif url.find("movshare") >= 0: server_url = "[COLOR lightgreen][I][movshare][/I][/COLOR]" plugintools.add_item(action="movshare", title='[COLOR white]' + title_fixed + ' [/COLOR][COLOR lightyellow][I](' + server_name + ')[/I][/COLOR] [COLOR lightgreen][I]' + lang + '[/I][/COLOR]', url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumbnail, folder=False, isPlayable=True) elif url.find("movreel") >= 0: server_url = "[COLOR lightgreen][I][movreel][/I][/COLOR]" plugintools.add_item(action="movshare", title='[COLOR white]' + title_fixed + ' [/COLOR][COLOR lightyellow][I](' + server_name + ')[/I][/COLOR] [COLOR lightgreen][I]' + lang + '[/I][/COLOR]', url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumbnail, folder=False, isPlayable=True) elif url.find("gamovideo") >= 0: server_url = "[COLOR lightgreen][I][gamovideo][/I][/COLOR]" plugintools.add_item(action="gamovideo", title='[COLOR white]' + title_fixed + ' [/COLOR][COLOR lightyellow][I](' + server_name + ')[/I][/COLOR] [COLOR lightgreen][I]' + lang + '[/I][/COLOR]', url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumbnail, folder=False, isPlayable=True) elif url.find("videobam") >= 0: server_url = "[COLOR lightgreen][I][videobam][/I][/COLOR]" plugintools.add_item(action="videobam", title='[COLOR white]' + title_fixed + ' [/COLOR][COLOR lightyellow][I](' + server_name + ')[/I][/COLOR] [COLOR lightgreen][I]' + lang + '[/I][/COLOR]', url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumbnail, folder=False, isPlayable=True) elif url.find("videoweed") >= 0: server_url = "[COLOR lightgreen][I][videoweed][/I][/COLOR]" plugintools.add_item(action="videoweed", title='[COLOR white]' + title_fixed + ' [/COLOR][COLOR lightyellow][I](' + server_name + ')[/I][/COLOR] [COLOR lightgreen][I]' + lang + '[/I][/COLOR]', url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumbnail, folder=False, isPlayable=True) elif url.find("streamable") >= 0: server_url = "[COLOR lightgreen][I][streamable][/I][/COLOR]" plugintools.add_item(action="streamable", title='[COLOR white]' + title_fixed + ' [/COLOR][COLOR lightyellow][I](' + server_name + ')[/I][/COLOR] [COLOR lightgreen][I]' + lang + '[/I][/COLOR]', url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumbnail, folder=False, isPlayable=True) elif url.find("rocvideo") >= 0: server_url = "[COLOR lightgreen][I][rocvideo][/I][/COLOR]" plugintools.add_item(action="rocvideo", title='[COLOR white]' + title_fixed + ' [/COLOR][COLOR lightyellow][I](' + server_name + ')[/I][/COLOR] [COLOR lightgreen][I]' + lang + '[/I][/COLOR]', url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumbnail, folder=False, isPlayable=True) elif url.find("realvid") >= 0: server_url = "[COLOR lightgreen][I][realvid][/I][/COLOR]" plugintools.add_item(action="realvid", title='[COLOR white]' + title_fixed + ' [/COLOR][COLOR lightyellow][I](' + server_name + ')[/I][/COLOR] [COLOR lightgreen][I]' + lang + '[/I][/COLOR]', url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumbnail, folder=False, isPlayable=True) elif url.find("netu") >= 0: server_url = "[COLOR lightgreen][I][netu][/I][/COLOR]" plugintools.add_item(action="netu", title='[COLOR white]' + title_fixed + ' [/COLOR][COLOR lightyellow][I](' + server_name + ')[/I][/COLOR] [COLOR lightgreen][I]' + lang + '[/I][/COLOR]', url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumbnail, folder=False, isPlayable=True) elif url.find("videomega") >= 0: server_url = "[COLOR lightgreen][I][videomega][/I][/COLOR]" plugintools.add_item(action="videomega", title='[COLOR white]' + title_fixed + ' [/COLOR][COLOR lightyellow][I](' + server_name + ')[/I][/COLOR] [COLOR lightgreen][I]' + lang + '[/I][/COLOR]', url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumbnail, folder=False, isPlayable=True) elif url.find("video.tt") >= 0: server_url = "[COLOR lightgreen][I][video.tt][/I][/COLOR]" plugintools.add_item(action="videott", title='[COLOR white]' + title_fixed + ' [/COLOR][COLOR lightyellow][I](' + server_name + ')[/I][/COLOR] [COLOR lightgreen][I]' + lang + '[/I][/COLOR]', url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumbnail, folder=False, isPlayable=True) elif url.find("flashx.tv") >= 0: server_url = "[COLOR lightgreen][I][flashx][/I][/COLOR]" plugintools.add_item(action="flashx", title='[COLOR white]' + title_fixed + ' [/COLOR][COLOR lightyellow][I](' + server_name + ')[/I][/COLOR] [COLOR lightgreen][I]' + lang + '[/I][/COLOR]', url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumbnail, folder=False, isPlayable=True)
def xhamster1(params): plugintools.log('[%s %s] Parseando XHamter %s' % (addonName, addonVersion, repr(params))) url = params.get("url") #print url r = requests.get(url) data = r.content #print data # Buscando el número de página y el total de páginas de la sección... num_pag = plugintools.find_single_match( url, '\-([0-9]*).html').strip() # Extraemos el número de la página actual total = params.get("extra") pager = plugintools.find_single_match(data, "<div class='pager'>(.*?)</table>") cons = plugintools.find_single_match( pager, "(</div>Próximo</a>)" ) # Etiqueta proximo en el codigo fuente verifica que no es la ultima pag.. if cons != "": # plugintools.log("pager= "+pager) paginas = plugintools.find_multiple_matches(pager, "html'>([^<]+)") total = paginas[-1] else: total = plugintools.find_single_match( pager, "<span>(.*?)</span>" ) # Si la etiqueta del codigo fuente Proximo no esta es la ultima pag. = a pagina actual plugintools.add_item(action="xhamster_pag", title="[COLOR white]Ir a página... [CR](" + num_pag + "/" + total + ")[/COLOR]", url=url, extra=total, thumbnail=logo_pag, fanart=fanart, folder=True, isPlayable=False) plugintools.add_item( action="xhamster0", title="[COLOR red]<< Menu Principal >>[/COLOR]", url=web, thumbnail="http://stec-site.xhcdn.com/images/logo/logo.png", fanart=fanart, folder=True, isPlayable=False) # Bloque de vídeos promocionados bloque_promo = plugintools.find_single_match( data, '<div class="boxC videoList clearfix">(.*?)<div class="vAds">') vid_promo = plugintools.find_multiple_matches( bloque_promo, '<div class="video">(.*?)/div></div></div>') #print vid_promo for item in vid_promo: title = plugintools.find_single_match(item, "<u>(.*?)</u>") url_vid = plugintools.find_single_match(item, '<a href="(.*?)"') img = plugintools.find_single_match(item, "<img src='(.*?)'") time = plugintools.find_single_match(item, "<b>(.*?)</b>") val = plugintools.find_single_match(item, 'class="fr">(.*?)<') views = plugintools.find_single_match(item, 'class="views-value">(.*?)<') quality = plugintools.find_single_match(item, '<div class="hSprite(.*?)"') if quality != "": quality = "[COLOR lightblue][B][I][HD][/I][/B][/COLOR]" titlefull = '[COLOR gold][B][' + str( val) + '][/B][/COLOR][COLOR white][I] ' + str( views ) + ' views[/I] ' + quality + "[CR]" + title + " - [" + str( time) + '][/COLOR]' else: titlefull = '[COLOR gold][B][' + str( val) + '][/B][/COLOR][COLOR white][I] ' + str( views) + ' views[/I][CR]' + title + " - [" + str( time) + '][/COLOR]' plugintools.addPic(action="xhamster2", title=titlefull, url=url_vid, thumbnail=img, fanart=fanart, folder=True, isPlayable=False) bloque_date = plugintools.find_single_match( data, "<div class='clear'></div>.*?<div class=\"video new-date\">(.*?)class='pager'><table" ) vid = plugintools.find_multiple_matches(bloque_date, '<a href="(.*?)/div></div></div>') for item in vid: title = plugintools.find_single_match(item, "<u>(.*?)</u>") url_vid = plugintools.find_single_match(item, '(.*?)"') img = plugintools.find_single_match(item, "<img src='(.*?)'") time = plugintools.find_single_match(item, "<b>(.*?)</b>") val = plugintools.find_single_match(item, 'class="fr">(.*?)<') views = plugintools.find_single_match(item, 'class="views-value">(.*?)<') quality = plugintools.find_single_match(item, '<div class="hSprite(.*?)"') if quality != "": quality = "[COLOR lightblue][B][I][HD][/I][/B][/COLOR]" titlefull = '[COLOR gold][B][' + str( val) + '][/B][/COLOR][COLOR white][I] ' + str( views ) + ' views[/I] ' + quality + "[CR]" + title + " - [" + str( time) + '][/COLOR]' else: titlefull = '[COLOR gold][B][' + str( val) + '][/B][/COLOR][COLOR white][I] ' + str( views) + ' views[/I][CR]' + title + " - [" + str( time) + '][/COLOR]' plugintools.addPic(action="xhamster2", title=titlefull, url=url_vid, thumbnail=img, fanart=fanart, folder=True, isPlayable=False) # Paginador --------------------------->> url = params.get("url") # pagina anterior url_ant = plugintools.find_single_match(pager, "<div><a href='(.*?)'") if url_ant != "": pag_ant = plugintools.find_single_match(url_ant, '\-([0-9]*).html').strip() plugintools.addPic( action="xhamster1", title="[COLOR red]Anterior << [" + pag_ant + "/" + total + "][/COLOR]", url=url_ant, extra=total, thumbnail="http://stec-site.xhcdn.com/images/logo/logo.png", fanart=fanart, folder=True, isPlayable=False) # Pagina Inicio if int(num_pag) >= 2: pag_inic = url.replace(num_pag, "1") plugintools.addPic( action="xhamster1", title="[COLOR red]<< Inicio >>[/COLOR]", url=pag_inic, extra=total, thumbnail="http://stec-site.xhcdn.com/images/logo/logo.png", fanart=fanart, folder=True, isPlayable=False) # pagina Siguiente sig = plugintools.find_single_match( pager, "<span>.*?</span><a href='(.*?)'>(.*?)</a>") if sig != "": url_sig = sig[0] pag_sig = sig[1] plugintools.addPic( action="xhamster1", title="[COLOR red]Siguiente >> [" + pag_sig + "/" + total + "][/COLOR]", url=url_sig, extra=total, thumbnail="http://stec-site.xhcdn.com/images/logo/logo.png", fanart=fanart, folder=True, isPlayable=False) else: pag_sig = total url_sig = "" plugintools.addPic( action="xhamster1", title="[COLOR red][" + pag_sig + "/" + total + "][/COLOR]", url=url_sig, extra=total, thumbnail="http://stec-site.xhcdn.com/images/logo/logo.png", fanart=fanart, folder=True, isPlayable=False)
def peliculasdk_linker0(params): plugintools.log("[%s %s] Linker PeliculasDK %s " % (addonName, addonVersion, repr(params))) ################## Params Library #################### url_list = [] option_list = [] source = params.get("extra") ###################################################### url = params.get("url") r = requests.get(url) data = r.content print data ####################################### Control for Linker ########################################## if source == "linker": plugintools.add_item( action="", url="", title="[COLOR lightblue][B]linker PeliculasDK[/B]" + version + "[/COLOR][COLOR red][I] *** By Aquilesserr/PalcoTV Team ***[/I][/COLOR]", thumbnail=thumbnail, fanart=fanart, folder=False, isPlayable=False) poster = plugintools.find_single_match( data, '<div class="karatula">.*?src="(.*?)"') genrfull = plugintools.find_multiple_matches( data, 'rel="category tag">(.*?)</a>') genr = peliculasdk_genr(genrfull) title = plugintools.find_single_match( data, '<a><img border="0" src=".*?></a>([^<]+)</h3>').upper().replace( '’', '').replace('–', '').replace('“', '"').replace('”', '"') ####################################### Analizando Cine X ########################################### if title == "": title = plugintools.find_single_match( data, '<td valign="top"><div class="caja_cont"><h3>(.*?)</h3>' ).upper().replace('’', '').replace('–', '').replace( '“', '"').replace('”', '"') calidad = 'Adultos' audio = 'Cine X' genr = 'Adultos' ##################################################################################################### rating = plugintools.find_single_match( data, 'Calificación IMDb: <span>(.*?)\n').replace('</B>', '') if rating == "": rating = 'N/D' duration = plugintools.find_single_match( data, 'Duración: <span>([^<]+)</span>') if duration == "": duration = 'N/D' year = plugintools.find_single_match(data, 'Estreno: <span>([^<]+)</span>') if year == "": year = 'N/D' country = plugintools.find_single_match(data, 'País: <span>([^<]+)</span>') if country == "": country = 'N/D' sinopsis = plugintools.find_single_match( data, '<span class="clms">Sinopsis: </span>(.*?)</div>').strip() if sinopsis == "": sinopsis = plugintools.find_single_match( data, '<div class="sinopsis">(.*?)</div>').strip() datamovie = { 'genre': sc3 + '[B]Género: [/B]' + ec3 + sc + str(genr) + ', ' + ec, 'duration': sc3 + '[B]Duración: [/B]' + ec3 + sc + str(duration) + ', ' + ec, 'rating': sc3 + '[B]Calificación: [/B]' + ec3 + sc + str(rating) + ', ' + ec, 'year': sc3 + '[B]Año: [/B]' + ec3 + sc + str(year) + ', ' + ec, 'country': sc3 + '[B]País: [/B]' + ec3 + sc + str(country) + '[CR]' + ec, 'sinopsis': sc3 + '[B]Sinopsis: [/B]' + ec3 + sc + str(sinopsis) + ec } datamovie["plot"] = datamovie["genre"] + datamovie[ "duration"] + datamovie["rating"] + datamovie["year"] + datamovie[ "country"] + datamovie["sinopsis"] plugintools.add_item(action="", url="", title=sc5 + "[B]" + title + "[/B]" + ec5, info_labels=datamovie, thumbnail=thumbnail, fanart=fanart, folder=False, isPlayable=False) ##################################################################################################### bloque_link = plugintools.find_single_match( data, '<div id="verpelicula">(.*?)<div id="mreporta">') if bloque_link == "": bloque_link = plugintools.find_single_match( data, '<div id="verpelicula">(.*?)<center><script type="text/javascript">' ) name_server = plugintools.find_multiple_matches( bloque_link, '<script>(.*?)\(\"(.*?)\"') audio = plugintools.find_single_match( data, '<li><a href="#tab1"><span class="re">.*?<span class="(.*?)"') audio = audio.replace('la', 'Latino').replace('su', 'Subtitulado').replace( 'es', 'Español') if audio == "": audio = 'N/D' calidad = plugintools.find_single_match( data, '<li><a href="#tab1"><span class="re">.*?<span class=".*?".*?<span class="c">(.*?)</span>' ) if calidad == "": calidad = 'N/D' for item in name_server: #plugintools.log("Nombre Servidor= "+str(item)) server = item[0] id = item[1] ####################################### Control for Linker ########################################## if source == "linker": titlefull = sc + "[I]Ver en: " + server.title( ) + '[/I] ' + ec + sc2 + '[I][' + str(audio) + " - " + str( calidad) + "][/I]" + ec2 if ("allmy") in server: linkpeli = 'https://allmyvideos.net/' + item[1] plugintools.addPeli(action="allmyvideos", title=titlefull, url=linkpeli, info_labels=datamovie, thumbnail=poster, fanart=fanart, folder=False, isPlayable=True) if ("flash") in server: linkpeli = '"http://www.flashx.tv/' + item[1] + '.html' plugintools.addPeli(action="flash", title=titlefull, url=linkpeli, info_labels=datamovie, thumbnail=poster, fanart=fanart, folder=False, isPlayable=True) if ("gamo") in server: linkpeli = 'http://www.gamovideo.com/' + item[1] plugintools.addPeli(action="gamovideo", title=titlefull, url=linkpeli, info_labels=datamovie, thumbnail=poster, fanart=fanart, folder=False, isPlayable=True) if ("netu") in server: linkpeli = 'http://waaw.tv/watch_video.php?v=' + item[1] plugintools.addPeli(action="netu", title=titlefull, url=linkpeli, info_labels=datamovie, thumbnail=poster, fanart=fanart, folder=False, isPlayable=True) if ("okru") in server: linkpeli = 'http://ok.ru/videoembed/' + item[1] plugintools.addPeli(action="okru", title=titlefull, url=linkpeli, info_labels=datamovie, thumbnail=poster, fanart=fanart, folder=False, isPlayable=True) if ("open") in server: linkpeli = 'https://openload.co/f/' + item[1] + '/' plugintools.addPeli(action="openload", title=titlefull, url=linkpeli, info_labels=datamovie, thumbnail=poster, fanart=fanart, folder=False, isPlayable=True) if ("powvideo") in server: linkpeli = 'http://powvideo.net/' + item[1] plugintools.addPeli(action="powvideo", title=titlefull, url=linkpeli, info_labels=datamovie, thumbnail=poster, fanart=fanart, folder=False, isPlayable=True) if ("streamin") in server: linkpeli = 'http://streamin.to/' + item[1] plugintools.addPeli(action="streaminto", title=titlefull, url=linkpeli, info_labels=datamovie, thumbnail=poster, fanart=fanart, folder=False, isPlayable=True) if ("videomega") in server: linkpeli = 'http://videomega.tv/?ref=' + item[1] plugintools.addPeli(action="videomega", title=titlefull, url=linkpeli, info_labels=datamovie, thumbnail=poster, fanart=fanart, folder=False, isPlayable=True) ##################################################################################################### ####################################### Control for Library ######################################### elif source == "library": titlefull = '[COLOR white]' + server.title( ) + ' ' + '[/COLOR][COLOR lightyellow][I][' + audio + '] [/COLOR][COLOR lightblue][' + calidad + '] [/COLOR][COLOR gold][Oranline][/I][/COLOR]' if ("allmy") in server: linkpeli = 'https://allmyvideos.net/' + item[1] titlefull = '[COLOR white]' + server.title( ) + ' ' + '[/COLOR][COLOR lightyellow][I][' + str( audio) + '] [/COLOR][COLOR lightblue][' + str( calidad) + '] [/COLOR][COLOR gold][HDFull][/I][/COLOR]' url_list.append(linkpeli) option_list.append(titlefull) if ("flash") in server: linkpeli = '"http://www.flashx.tv/' + item[1] + '.html' titlefull = '[COLOR white]' + server.title( ) + ' ' + '[/COLOR][COLOR lightyellow][I][' + str( audio) + '] [/COLOR][COLOR lightblue][' + str( calidad) + '] [/COLOR][COLOR gold][HDFull][/I][/COLOR]' url_list.append(linkpeli) option_list.append(titlefull) if ("gamo") in server: linkpeli = 'http://www.gamovideo.com/' + item[1] titlefull = '[COLOR white]' + server.title( ) + ' ' + '[/COLOR][COLOR lightyellow][I][' + str( audio) + '] [/COLOR][COLOR lightblue][' + str( calidad) + '] [/COLOR][COLOR gold][HDFull][/I][/COLOR]' url_list.append(linkpeli) option_list.append(titlefull) if ("netu") in server: linkpeli = 'http://waaw.tv/watch_video.php?v=' + item[1] titlefull = '[COLOR white]' + server.title( ) + ' ' + '[/COLOR][COLOR lightyellow][I][' + str( audio) + '] [/COLOR][COLOR lightblue][' + str( calidad) + '] [/COLOR][COLOR gold][HDFull][/I][/COLOR]' url_list.append(linkpeli) option_list.append(titlefull) if ("okru") in server: linkpeli = 'http://ok.ru/videoembed/' + item[1] titlefull = '[COLOR white]' + server.title( ) + ' ' + '[/COLOR][COLOR lightyellow][I][' + str( audio) + '] [/COLOR][COLOR lightblue][' + str( calidad) + '] [/COLOR][COLOR gold][HDFull][/I][/COLOR]' url_list.append(linkpeli) option_list.append(titlefull) if ("open") in server: linkpeli = 'https://openload.co/f/' + item[1] + '/' titlefull = '[COLOR white]' + server.title( ) + ' ' + '[/COLOR][COLOR lightyellow][I][' + str( audio) + '] [/COLOR][COLOR lightblue][' + str( calidad) + '] [/COLOR][COLOR gold][HDFull][/I][/COLOR]' url_list.append(linkpeli) option_list.append(titlefull) if ("powvideo") in server: linkpeli = 'http://powvideo.net/' + item[1] titlefull = '[COLOR white]' + server.title( ) + ' ' + '[/COLOR][COLOR lightyellow][I][' + str( audio) + '] [/COLOR][COLOR lightblue][' + str( calidad) + '] [/COLOR][COLOR gold][HDFull][/I][/COLOR]' url_list.append(linkpeli) option_list.append(titlefull) if ("streamin") in server: linkpeli = 'http://streamin.to/' + item[1] titlefull = '[COLOR white]' + server.title( ) + ' ' + '[/COLOR][COLOR lightyellow][I][' + str( audio) + '] [/COLOR][COLOR lightblue][' + str( calidad) + '] [/COLOR][COLOR gold][HDFull][/I][/COLOR]' url_list.append(linkpeli) option_list.append(titlefull) if ("videomega") in server: linkpeli = 'http://videomega.tv/?ref=' + item[1] titlefull = '[COLOR white]' + server.title( ) + ' ' + '[/COLOR][COLOR lightyellow][I][' + str( audio) + '] [/COLOR][COLOR lightblue][' + str( calidad) + '] [/COLOR][COLOR gold][HDFull][/I][/COLOR]' url_list.append(linkpeli) option_list.append(titlefull) ##################################################################################################### if source == "library": return option_list, url_list
def lista_chapters(params): plugintools.log("[tv.ultra.7k 0.3.4] SeriesFLV Lista_chapters " + repr(params)) url = params.get("url") referer = 'http://www.seriesflv.com/' data = gethttp_referer_headers(url, referer) thumbnail = params.get("thumbnail") if thumbnail == "": thumbnail = 'http://m1.paperblog.com/i/249/2490697/seriesflv-mejor-alternativa-series-yonkis-L-2whffw.jpeg' fanart = 'http://www.nikopik.com/wp-content/uploads/2011/10/S%C3%A9ries-TV.jpg' sinopsis = params.get("plot") datamovie = {} datamovie["Plot"] = sinopsis chapters = plugintools.find_multiple_matches( data, '<a href="http://www.seriesflv.net/ver/(.*?)</a>') title = params.get("title") for entry in chapters: if title.find("Subtitulada") >= 0: if entry.find('lang="sub"') >= 0: #plugintools.log("entry= "+entry) entry_fixed = entry.split('"') url_chapter = 'http://www.seriesflv.net/ver/' + entry_fixed[0] #plugintools.log("url_chapter= "+url_chapter) title_chapter = plugintools.find_single_match( entry, '<div class="i-title">(.*?)</div>') #plugintools.log("title_chapter= "+title_chapter) num_chapter = plugintools.find_single_match( entry, '<div class="box-tc">(.*?)</div>') #plugintools.log("núm. capítulo= "+num_chapter) i_time = plugintools.find_single_match( entry, '<div class="i-time">(.*?)</div>') #plugintools.log("desde hace= "+i_time) plugintools.add_item( action="chapter_urls", title='[COLOR orange]' + num_chapter + '[/COLOR]' + ' [COLOR lightyellow][B]' + title_chapter + '[/B][/COLOR][COLOR lightgreen][I] (' + i_time + ')[/I][/COLOR]', info_labels=datamovie, plot=datamovie["Plot"], url=url_chapter, thumbnail=thumbnail, fanart=fanart, folder=True, isPlayable=False) if title.find("Español") >= 0: if entry.find('lang="es"') >= 0: #plugintools.log("entry= "+entry) entry_fixed = entry.split('"') url_chapter = 'http://www.seriesflv.net/ver/' + entry_fixed[0] #plugintools.log("url_chapter= "+url_chapter) title_chapter = plugintools.find_single_match( entry, '<div class="i-title">(.*?)</div>') #plugintools.log("title_chapter= "+title_chapter) num_chapter = plugintools.find_single_match( entry, '<div class="box-tc">(.*?)</div>') #plugintools.log("núm. capítulo= "+num_chapter) i_time = plugintools.find_single_match( entry, '<div class="i-time">(.*?)</div>') #plugintools.log("desde hace= "+i_time) plugintools.add_item( action="chapter_urls", title='[COLOR orange]' + num_chapter + '[/COLOR]' + ' [COLOR lightyellow][B]' + title_chapter + '[/B][/COLOR][COLOR lightgreen][I] (' + i_time + ')[/I][/COLOR]', url=url_chapter, info_labels=datamovie, plot=datamovie["Plot"], thumbnail=thumbnail, fanart=fanart, folder=True, isPlayable=False) if title.find("Latino") >= 0: if entry.find('lang="la"') >= 0: #plugintools.log("entry= "+entry) entry_fixed = entry.split('"') url_chapter = 'http://www.seriesflv.net/ver/' + entry_fixed[0] #plugintools.log("url_chapter= "+url_chapter) title_chapter = plugintools.find_single_match( entry, '<div class="i-title">(.*?)</div>') #plugintools.log("title_chapter= "+title_chapter) num_chapter = plugintools.find_single_match( entry, '<div class="box-tc">(.*?)</div>') #plugintools.log("núm. capítulo= "+num_chapter) i_time = plugintools.find_single_match( entry, '<div class="i-time">(.*?)</div>') #plugintools.log("desde hace= "+i_time) plugintools.add_item( action="chapter_urls", title='[COLOR orange]' + num_chapter + '[/COLOR]' + ' [COLOR lightyellow][B]' + title_chapter + '[/B][/COLOR][COLOR lightgreen][I] (' + i_time + ')[/I][/COLOR]', url=url_chapter, info_labels=datamovie, plot=datamovie["Plot"], thumbnail=thumbnail, fanart=fanart, folder=True, isPlayable=False) if title.find("Original") >= 0: if entry.find('lang="en"') >= 0: #plugintools.log("entry= "+entry) entry_fixed = entry.split('"') url_chapter = 'http://www.seriesflv.net/ver/' + entry_fixed[0] #plugintools.log("url_chapter= "+url_chapter) title_chapter = plugintools.find_single_match( entry, '<div class="i-title">(.*?)</div>') #plugintools.log("title_chapter= "+title_chapter) num_chapter = plugintools.find_single_match( entry, '<div class="box-tc">(.*?)</div>') #plugintools.log("núm. capítulo= "+num_chapter) i_time = plugintools.find_single_match( entry, '<div class="i-time">(.*?)</div>') #plugintools.log("desde hace= "+i_time) plugintools.add_item( action="chapter_urls", title='[COLOR orange]' + num_chapter + '[/COLOR]' + ' [COLOR lightyellow][B]' + title_chapter + '[/B][/COLOR][COLOR lightgreen][I] (' + i_time + ')[/I][/COLOR]', url=url_chapter, info_labels=datamovie, plot=datamovie["Plot"], thumbnail=thumbnail, fanart=fanart, folder=True, isPlayable=False)
def main_list1(params): plugintools.log("nratv1.main_list " + repr(params)) plugintools.add_item( #action="", title="Youtube Search for 'National Rifle Association'", url= 'plugin://plugin.video.youtube/search/?q=National Rifle Association', thumbnail=icon, fanart=fanart, folder=True) plugintools.add_item( #action="", title="NRA TV", url="plugin://plugin.video.youtube/user/NRANews/", thumbnail= "https://yt3.ggpht.com/-F2_HD0G9laQ/AAAAAAAAAAI/AAAAAAAAAAA/EqzbJJh6MuU/s288-c-k-no-mo-rj-c0xffffff/photo.jpg", fanart=fanart, folder=True) plugintools.add_item( #action="", title="NRA", url="plugin://plugin.video.youtube/user/NRAVideos/", thumbnail= "http://www.southeastradio.ie/wp-content/uploads/2017/10/NRA.jpeg", fanart=fanart, folder=True) plugintools.add_item( #action="", title="NRA Pubs", url="plugin://plugin.video.youtube/user/NRApubs/", thumbnail= "https://yt3.ggpht.com/-K7UP-3Nvibs/AAAAAAAAAAI/AAAAAAAAAAA/XbY5XdSScPg/s288-c-k-no-mo-rj-c0xffffff/photo.jpg", fanart=fanart, folder=True) plugintools.add_item( #action="", title="NRA National Firearms Museum", url="plugin://plugin.video.youtube/user/NFMCurator/", thumbnail= "https://yt3.ggpht.com/-FQ_ClCpa64Q/AAAAAAAAAAI/AAAAAAAAAAA/Do1Cs4h29q8/s288-c-k-no-mo-rj-c0xffffff/photo.jpg", fanart=fanart, folder=True) plugintools.add_item( #action="", title="NRA Women", url="plugin://plugin.video.youtube/user/NRAWomen/", thumbnail= "https://yt3.ggpht.com/-GqGKJRTuZw4/AAAAAAAAAAI/AAAAAAAAAAA/QTfGMN93j0I/s288-c-k-no-mo-rj-c0xffffff/photo.jpg", fanart=fanart, folder=True) plugintools.add_item( #action="", title="NRA Freestyle", url="plugin://plugin.video.youtube/user/nrafreestyle/", thumbnail= "https://yt3.ggpht.com/-mx9RJ3bJfFQ/AAAAAAAAAAI/AAAAAAAAAAA/C7N8I66dj8k/s288-c-k-no-mo-rj-c0xffffff/photo.jpg", fanart=fanart, folder=True) plugintools.add_item( #action="", title="NRA General Operations", url="plugin://plugin.video.youtube/user/GOnraMedia/", thumbnail= "https://yt3.ggpht.com/-c0JMaaNvfWE/AAAAAAAAAAI/AAAAAAAAAAA/PAP-cswAjPw/s288-c-k-no-mo-rj-c0xffffff/photo.jpg", fanart=fanart, folder=True)
def oranline0(params): plugintools.log('[%s %s] Oranline regex %s' % (addonName, addonVersion, repr(params))) # Leemos el código web url = params.get("url") headers = { 'user-agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14' } r = requests.get(url, headers=headers) data = r.content bloque_thumb = plugintools.find_single_match( data, '<!--Begin Image-->(.*?)<!--End Image-->') thumb_peli = plugintools.find_single_match(bloque_thumb, '<img src="([^"]+)') if thumb_peli == "": thumb_peli = thumbnail datamovie = {} datamovie["Plot"] = params.get("plot") # Sinopsis bloque = plugintools.find_single_match(data, '<div id="veronline">(.*?)</form>') bloque_peli = plugintools.find_multiple_matches( bloque, '<p>(.*?)</img></a></span></p>') i = 1 plugintools.add_item( action="", title= '[COLOR orange][B]Oranline.com / [/B][/COLOR][COLOR white] Resultados de: [/COLOR][COLOR lightyellow][I]' + params.get("title") + '[/I][/COLOR]', thumbnail=thumb_peli, fanart=fanart, folder=False, isPlayable=False) plugintools.add_item( action="", title= '[COLOR white][I](Núm.) [/I][/COLOR][COLOR white][I]Formato[/I][/COLOR][COLOR lightblue] Calidad (sobre 5)[/COLOR][COLOR lightgreen][I][Idioma][/I][/COLOR]', thumbnail=thumb_peli, fanart=fanart, folder=False, isPlayable=False) for entry in bloque_peli: #plugintools.log("entry= "+entry) lang_audio = plugintools.find_single_match(entry, 'src="([^"]+)') if lang_audio.endswith("1.png") == True: lang_audio = '[COLOR lightgreen][I][ESP][/I][/COLOR]' elif lang_audio.endswith("2.png") == True: lang_audio = '[COLOR lightgreen][I][LAT][/I][/COLOR]' elif lang_audio.endswith("3.png") == True: lang_audio = '[COLOR lightgreen][I][VOS][/I][/COLOR]' elif lang_audio.endswith("4.png") == True: lang_audio = '[COLOR lightgreen][I][ENG][/I][/COLOR]' formatq = plugintools.find_single_match(entry, 'calidad(.+?).png') #plugintools.log("formatq= "+formatq) id_link = plugintools.find_single_match(entry, 'reportarpelicula([^>]+)') id_link = id_link.replace('"', "").replace("'", "").replace(",", "").replace(")", "") url = oranline2(id_link, params.get("url")) #plugintools.log("url= "+url) title_peli = plugintools.find_single_match(entry, 'title="([^"]+)') title_peli = title_peli.replace("Calidad de Video:", "").replace( "Calidad de video", "").replace("Calidad de Audio", "").replace("\t\r\n", "").replace("reportar enlace", "N/D").strip() info_video = title_peli.split(":")[0].strip() title_peli = '[COLOR white][I]' + info_video + ' [/I][/COLOR][COLOR lightblue]' + formatq + '/5[/COLOR]' if url.find("allmyvideos") >= 0: server_url = "[COLOR lightyellow][I][allmyvideos][/I][/COLOR]" plugintools.add_item(action="allmyvideos", title='[COLOR white]' + str(i) + '. ' + title_peli + '[/COLOR] ' + lang_audio + ' ' + server_url, url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumb_peli, folder=False, isPlayable=True) elif url.find("vidspot") >= 0: server_url = "[COLOR lightyellow][I][vidspot][/I][/COLOR]" plugintools.add_item(action="vidspot", title='[COLOR white]' + str(i) + '. ' + title_peli + '[/COLOR] ' + lang_audio + ' ' + server_url, url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumb_peli, folder=False, isPlayable=True) elif url.find("played.to") >= 0: server_url = "[COLOR lightyellow][I][played.to][/I][/COLOR]" plugintools.add_item(action="playedto", title='[COLOR white]' + str(i) + '. ' + title_peli + '[/COLOR] ' + lang_audio + ' ' + server_url, url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumb_peli, folder=False, isPlayable=True) elif url.find("nowvideo") >= 0: server_url = "[COLOR lightyellow][I][nowvideo][/I][/COLOR]" plugintools.add_item(action="nowvideo", title='[COLOR white]' + str(i) + '. ' + title_peli + '[/COLOR] ' + lang_audio + ' ' + server_url, url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumb_peli, folder=False, isPlayable=True) elif url.find("streamin.to") >= 0: server_url = "[COLOR lightyellow][I][streamin.to][/I][/COLOR]" plugintools.add_item(action="streaminto", title='[COLOR white]' + str(i) + '. ' + title_peli + '[/COLOR] ' + lang_audio + ' ' + server_url, url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumb_peli, folder=False, isPlayable=True) elif url.find("vk") >= 0: server_url = "[COLOR lightyellow][I][vk][/I][/COLOR]" plugintools.add_item(action="vk", title='[COLOR white]' + str(i) + '. ' + title_peli + '[/COLOR] ' + lang_audio + ' ' + server_url, url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumb_peli, folder=False, isPlayable=True) elif url.find("tumi") >= 0: server_url = "[COLOR lightyellow][I][tumi][/I][/COLOR]" plugintools.add_item(action="tumi", title='[COLOR white]' + str(i) + '. ' + title_peli + '[/COLOR] ' + lang_audio + ' ' + server_url, url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumb_peli, folder=False, isPlayable=True) elif url.find("powvideo") >= 0: server_url = "[COLOR lightyellow][I][powvideo][/I][/COLOR]" plugintools.add_item(action="powvideo", title='[COLOR white]' + str(i) + '. ' + title_peli + '[/COLOR] ' + lang_audio + ' ' + server_url, url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumb_peli, folder=False, isPlayable=True) elif url.find("streamcloud") >= 0: server_url = "[COLOR lightyellow][I][streamcloud][/I][/COLOR]" plugintools.add_item(action="streamcloud", title='[COLOR white]' + str(i) + '. ' + title_peli + '[/COLOR] ' + lang_audio + ' ' + server_url, url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumb_peli, folder=False, isPlayable=True) elif url.find("veehd") >= 0: server_url = "[COLOR lightyellow][I][veehd][/I][/COLOR]" plugintools.add_item(action="veehd", title='[COLOR white]' + str(i) + '. ' + title_peli + '[/COLOR] ' + lang_audio + ' ' + server_url, url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumb_peli, folder=False, isPlayable=True) elif url.find("novamov") >= 0: server_url = "[COLOR lightyellow][I][novamov][/I][/COLOR]" plugintools.add_item(action="novamov", title='[COLOR white]' + str(i) + '. ' + title_peli + '[/COLOR] ' + lang_audio + ' ' + server_url, url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumb_peli, folder=False, isPlayable=True) elif url.find("moevideos") >= 0: server_url = "[COLOR lightyellow][I][moevideos][/I][/COLOR]" plugintools.add_item(action="moevideos", title='[COLOR white]' + str(i) + '. ' + title_peli + '[/COLOR] ' + lang_audio + ' ' + server_url, url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumb_peli, folder=False, isPlayable=True) elif url.find("movshare") >= 0: server_url = "[COLOR lightyellow][I][movshare][/I][/COLOR]" plugintools.add_item(action="movshare", title='[COLOR white]' + str(i) + '. ' + title_peli + '[/COLOR] ' + lang_audio + ' ' + server_url, url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumb_peli, folder=False, isPlayable=True) elif url.find("movreel") >= 0: server_url = "[COLOR lightyellow][I][movreel][/I][/COLOR]" plugintools.add_item(action="movshare", title='[COLOR white]' + str(i) + '. ' + title_peli + '[/COLOR] ' + lang_audio + ' ' + server_url, url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumb_peli, folder=False, isPlayable=True) elif url.find("gamovideo") >= 0: server_url = "[COLOR lightyellow][I][gamovideo][/I][/COLOR]" plugintools.add_item(action="gamovideo", title='[COLOR white]' + str(i) + '. ' + title_peli + '[/COLOR] ' + lang_audio + ' ' + server_url, url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumb_peli, folder=False, isPlayable=True) elif url.find("videobam") >= 0: server_url = "[COLOR lightyellow][I][videobam][/I][/COLOR]" plugintools.add_item(action="videobam", title='[COLOR white]' + str(i) + '. ' + title_peli + '[/COLOR] ' + lang_audio + ' ' + server_url, url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumb_peli, folder=False, isPlayable=True) elif url.find("videoweed") >= 0: server_url = "[COLOR lightyellow][I][videoweed][/I][/COLOR]" plugintools.add_item(action="videoweed", title='[COLOR white]' + str(i) + '. ' + title_peli + '[/COLOR] ' + lang_audio + ' ' + server_url, url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumb_peli, folder=False, isPlayable=True) elif url.find("streamable") >= 0: server_url = "[COLOR lightyellow][I][streamable][/I][/COLOR]" plugintools.add_item(action="streamable", title='[COLOR white]' + str(i) + '. ' + title_peli + '[/COLOR] ' + lang_audio + ' ' + server_url, url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumb_peli, folder=False, isPlayable=True) elif url.find("rocvideo") >= 0: server_url = "[COLOR lightyellow][I][rocvideo][/I][/COLOR]" plugintools.add_item(action="rocvideo", title='[COLOR white]' + str(i) + '. ' + title_peli + '[/COLOR] ' + lang_audio + ' ' + server_url, url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumb_peli, folder=False, isPlayable=True) elif url.find("realvid") >= 0: server_url = "[COLOR lightyellow][I][realvid][/I][/COLOR]" plugintools.add_item(action="realvid", title='[COLOR white]' + str(i) + '. ' + title_peli + '[/COLOR] ' + lang_audio + ' ' + server_url, url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumb_peli, folder=False, isPlayable=True) elif url.find("netu") >= 0: server_url = "[COLOR lightyellow][I][netu][/I][/COLOR]" plugintools.add_item(action="netu", title='[COLOR white]' + str(i) + '. ' + title_peli + '[/COLOR] ' + lang_audio + ' ' + server_url, url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumb_peli, folder=False, isPlayable=True) elif url.find("videomega") >= 0: server_url = "[COLOR lightyellow][I][videomega][/I][/COLOR]" plugintools.add_item(action="videomega", title='[COLOR white]' + str(i) + '. ' + title_peli + '[/COLOR] ' + lang_audio + ' ' + server_url, url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumb_peli, folder=False, isPlayable=True) elif url.find("video.tt") >= 0: server_url = "[COLOR lightyellow][I][video.tt][/I][/COLOR]" plugintools.add_item(action="videott", title='[COLOR white]' + str(i) + '. ' + title_peli + '[/COLOR] ' + lang_audio + ' ' + server_url, url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumb_peli, folder=False, isPlayable=True) elif url.find("flashx.tv") >= 0: server_url = "[COLOR lightyellow][I][flashx][/I][/COLOR]" plugintools.add_item(action="flashx", title='[COLOR white]' + str(i) + '. ' + title_peli + '[/COLOR] ' + lang_audio + ' ' + server_url, url=url, info_labels=datamovie, fanart=fanart, thumbnail=thumb_peli, folder=False, isPlayable=True) i = i + 1
def radio2(params): lopplink = params.get(vod_channels("dXJs")) r= requests.get(lopplink) match=re.compile('<b>(.+?)</b>.+?<a href="(.+?)">(.+?) Kbps', re.DOTALL).findall(r.content) for name,url2,hs in match: plugintools.add_item( action='PLAYING3', title=name+' '+hs , url=url2, thumbnail='', plot='', extra="", folder=False )
def goear_def(url): plugintools.log("[tv.ultra.7k 0.3.0].goear") params = plugintools.get_params() show = params.get("extra") if show == "": show = params.get("show") if show == "": show = params.get_setting("music_id") modo_vista(show) plugintools.log("show= " + show) elif show == "LIST": show = plugintools.get_setting("music_id") modo_vista(show) plugintools.log("show= " + show) thumbnail = params.get("thumbnail") title = params.get("title") plugintools.add_item(action="", title='[COLOR royalblue][B]' + title + '[/B][/COLOR]', url=url, thumbnail=thumbnail, fanart=fanart, folder=False, isPlayable=True) if url.startswith("goear_sg") == True: id_playlist = url.replace("goear_sg:", "").replace('"', "").strip() url = 'http://www.goear.com/action/sound/get/' + id_playlist plugintools.log("url= " + url) plugintools.play_resolved_url(url) elif url.startswith("goear_pl") == True: id_playlist = url.replace("goear_pl:", "").replace('"', "").strip() url = 'http://www.goear.com/apps/android/playlist_songs_json.php?v=' + id_playlist plugintools.log("url= " + url) referer = 'http://www.goear.com/' data = gethttp_referer_headers(url, referer, show) #plugintools.log("data= "+data) modo_vista(show) songs = plugintools.find_multiple_matches(data, '{(.*?)}') i = 1 for entry in songs: plugintools.log("entry= " + entry) id_song = plugintools.find_single_match(entry, '"id":"([^"]+)') plugintools.log("id_song= " + id_song) title_song = plugintools.find_single_match(entry, '"title":"([^"]+)') plugintools.log("title_song= " + title_song) songtime = plugintools.find_single_match(entry, '"songtime":"([^"]+)') plugintools.log("songtime= " + songtime) url = 'http://www.goear.com/action/sound/get/' + id_song plugintools.log("url= " + url) plugintools.add_item(action="play", title='[COLOR lightyellow]' + str(i) + ' ' + title_song + '[/COLOR][COLOR orange] (' + songtime + ')[/COLOR]', url=url, thumbnail=thumbnail, extra=show, fanart=fanart, folder=False, isPlayable=True) i = i + 1
def SPORTS(params): plugintools.add_item( action="runner", title='Match Detail' , url='', thumbnail='', plot='', fanart='' , extra="", isPlayable=False, folder=False ) plugintools.add_item( action="upandcoming", title='Wheres The Games' , url='', thumbnail='', plot='', fanart='' , extra="", isPlayable=False, folder=True )
def peamenyy(params): xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_TITLE ) plugintools.add_item( action="News", title='News' , url='', thumbnail='', plot='', fanart=os.path.join(LOAD_LIVE,"dGhlYXRlci5qcGc=") , extra="", isPlayable=False, folder=True ) plugintools.add_item( action="Radio", title='Radio' , url='', thumbnail='', plot='', fanart=os.path.join(LOAD_LIVE,"dGhlYXRlci5qcGc=") , extra="", isPlayable=False, folder=True ) plugintools.add_item( action="TOOLS", title='Tools' , url='http://ovh.net/files/100Mio.dat', thumbnail='', plot='', fanart='' , extra="", isPlayable=False, folder=True ) plugintools.log(pnimi+vod_channels("TWFpbiBNZW51")+repr(params)) load_channels() if not lehekylg1: plugintools.open_settings_dialog() if uuendused == "true": updates(params) channels = kontroll() if channels == 1: plugintools.log(pnimi+vod_channels("TG9naW4gU3VjY2Vzcw==")) plugintools.add_item( action=vod_channels("ZXhlY3V0ZV9haW5mbw=="), title=vod_channels("TXkgQWNjb3VudA==") , thumbnail="" , fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=")) , folder=True ) plugintools.add_item( action=vod_channels("c2VjdXJpdHlfY2hlY2s="), title=vod_channels("TGl2ZSBUVg==") , thumbnail="" , fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=")) , folder=True ) plugintools.add_item( action=vod_channels("cnVubmVyMg=="), title=vod_channels("VmlkZW8gT24gRGVtYW5k") , thumbnail="" , fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=")) , folder=False ) plugintools.add_item( action=vod_channels("bGljZW5zZV9jaGVjaw=="), title=vod_channels("U2V0dGluZ3M=") , thumbnail="" , fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=") ), folder=False ) plugintools.set_view( plugintools.LIST ) else: plugintools.log(pnimi+vod_channels("TG9naW4gZmFpbGVk")) plugintools.message(("Login failed"),("Possible reasons: Wrong host,port,username or pass. Please reconfigure %s plugin with correct details!")%(pnimi)) exit() if plugintools.get_setting("improve")=="true": tseaded = xbmc.translatePath(sync_data("c3BlY2lhbDovL3VzZXJkYXRhL2FkdmFuY2Vkc2V0dGluZ3MueG1s")) tseaded = xbmc.translatePath(sync_data("c3BlY2lhbDovL3VzZXJkYXRhL2FkdmFuY2Vkc2V0dGluZ3MueG1s")) if not os.path.exists(tseaded): file = open( os.path.join(plugintools.get_runtime_path(),"resources",sync_data("YWR2YW5jZWRzZXR0aW5ncy54bWw=")) ) data = file.read() file.close() file = open(tseaded,"w") file.write(data) file.close() plugintools.message(pnimi, "New advanced streaming settings added.")
def single_movie(params): plugintools.log("movie4k.single_movie " + repr(params)) #plugintools.set_view(plugintools.LIST) found = False url = params.get("url") # Resolve the URL of the random movie. if 'random' in params.get("extra"): body, response_headers = read_body_and_headers(url=params.get("url"), follow_redirects=False) url = urljoin(MAIN_URL, dict(response_headers)['location']) body, response_headers = read_body_and_headers_cached(url) else: body, response_headers = read_body_and_headers_cached(url) plugintools.log("movie4k.single_movie headers: " + repr(response_headers) + ", url: " + url + ", body: " + repr(body)) # Add Info and Play list-items with information about the title. # Play list-item searches for a valid link and plays it. pattern = '<H1.*?000000;">([^<]*)' scrapedtitle = plugintools.find_single_match(body, pattern) title = html_unescape(scrapedtitle).strip() pattern = '<div class="moviedescription">([^<]*)' scrapedplot = plugintools.find_single_match(body, pattern) plot = html_unescape(scrapedplot).strip() pattern = 'IMDB Rating:[^>]*>([^<]+)</a>' scrapedrating = plugintools.find_single_match(body, pattern) rating = 0.0 try: rating = float(scrapedrating) except ValueError as e: plugintools.log("movie4k.single_movie " + str(e)) pattern = 'Genre:(.*?) ' scrapedgenre = plugintools.find_single_match(body, pattern) genre = html_to_text(scrapedgenre).replace(',', ', ') pattern = '(?:Length:|Länge:) (.*?) ' duration = plugintools.find_single_match(body, pattern) pattern = 'Land/(?:Year:|Jahr:) ([^<]*)' scraped_land_year = plugintools.find_single_match(body, pattern) country = "" year = 0 try: if '/' in scraped_land_year: country, year = scraped_land_year.split('/') year = int(year) elif scraped_land_year.isdigit(): year = int(scraped_land_year) elif scraped_land_year.isalpha(): country = scraped_land_year except ValueError as e: plugintools.log("movie4k.single_movie " + str(e)) pattern = 'Regie: (.*?) ' scrapeddirector = plugintools.find_single_match(body, pattern) director = html_to_text(scrapeddirector).replace(',', ', ') pattern = '(?:Actors:|Schauspieler:) (.*?)<BR>' scrapedcast = plugintools.find_single_match(body, pattern) cast = html_to_text(scrapedcast).split(',') # The first [^"]* is for the anonymizer URL. pattern = '<img src="([^"]*https://img.movie4k.tv/thumbs/[^"]*)' thumbnail = plugintools.find_single_match(body, pattern) thumbnail = re.sub( 'https://img.movie4k.tv', 'http://img.movie4k.tv', thumbnail ) # otherwise: CCurlFile::Stat - Failed: SSL connect error(35) for https: ... plugintools.log("movie4k.single_movie thumbnail_url=" + str(thumbnail)) info_labels = { "title": title, "plot": plot, "rating": rating, "genre": genre, "duration": duration, "country": country, "year": year, "director": director, "cast": cast } plugintools.add_item(action="play_first_playable", title="[I]Play[/I]", url=url, thumbnail=thumbnail, fanart=thumbnail, info_labels=info_labels, isPlayable=True, folder=False) plugintools.add_item(action="info", title="[I]Info[/I]", thumbnail=thumbnail, fanart=thumbnail, info_labels=info_labels, isPlayable=False, folder=False) # Add hoster list-items. hosters = scrap_hosters_list(url) for hoster_url, hoster_name, quality, date_added, hoster_thumbnail in hosters: title = hoster_name + " (Quality:" + quality + " Added:" + date_added + ")" plugintools.log("movie4k.single_movie title=" + title + ", url=" + hoster_url + ", thumbnail=" + hoster_thumbnail) for bad_hoster in HOSTERS_BLACKLIST: if bad_hoster in hoster_name.lower(): break else: plugintools.add_item(action="play", title=title, url=hoster_url, thumbnail=hoster_thumbnail, plot=plot, fanart=thumbnail, folder=True) found = True if not found: play(params)
def Radio(params): url='http://listenlive.eu/' r = requests.get(url) match=re.compile('<td><img width="8" height="8" alt="" src="b.gif" /> <a href="(.+?)">(.+?)</a></td></tr>').findall(r.content) for url2,name in match: plugintools.add_item( action='radio2', title=name , url=url+url2, thumbnail='', plot='', fanart=os.path.join(LOAD_LIVE,"theater.jpg") , extra="", isPlayable=False, folder=True )
def zap_marcador(params): fondo = params.get("fanart") logo = params.get("thumbnail") r = requests.get(url) data = r.content plugintools.add_item( action="", url="", title=" [COLOR skyblue][B]Lista de canales de " + parser + autor, thumbnail=logo, fanart=fondo, folder=False, isPlayable=False) plugintools.add_item(action="", url="", title="", thumbnail=logo, fanart=fondo, folder=False, isPlayable=False) canales = plugintools.find_single_match( data, 'dropdown-menu"(.*?)</ul>') # Cojo el bloque de canales cada_canal = plugintools.find_multiple_matches( canales, 'href=(.*?)/a>') # Separo todos los canales y los monto en su url #Los saco a pantalla for item in cada_canal: canal_url = plugintools.find_single_match(item, '"(.*?)"').replace( "../", "") nombre_canal = plugintools.find_single_match(item, '">(.*?)<') titulo = "[COLOR aqua]- Ver el " + nombre_canal + "[/COLOR]" el_canal = "http://tumarcador.xyz/" + canal_url lanzo_spd = url_montada.replace("MI_CANAL", el_canal) #Montamos la línea. #plugintools.runAddon(action="runPlugin",url=lanzo_spd,title=titulo,thumbnail=logo,fanart=fondo,folder=False,isPlayable=True) plugintools.add_item(action="runPlugin", url=lanzo_spd, title=titulo, thumbnail=logo, fanart=fondo, folder=False, isPlayable=True) #Ahora saco los "Otros Canales" 31-12-16 canales = plugintools.find_single_match( data, 'Otros Canales(.*?)</ul>') # Cojo el bloque de canales cada_canal = plugintools.find_multiple_matches( canales, 'href=(.*?)/a>') # Separo todos los canales y los monto en su url #Los saco a pantalla for item in cada_canal: canal_url = plugintools.find_single_match(item, '"(.*?)"').replace( "../", "") #nombre_canal = plugintools.find_single_match(item,'">(.*?)<') titulo = "[COLOR orange]- Otros: [COLOR aqua]" + canal_url.title( ) + "[/COLOR]" el_logo = plugintools.find_single_match(item, 'src="(.*?)"') el_canal = "http://tumarcador.xyz/" + canal_url lanzo_spd = url_montada.replace("MI_CANAL", el_canal) #Montamos la línea. #plugintools.runAddon(action="runPlugin",url=lanzo_spd,title=titulo,thumbnail=logo,fanart=fondo,folder=False,isPlayable=True) plugintools.add_item(action="runPlugin", url=lanzo_spd, title=titulo, thumbnail=el_logo, fanart=fondo, folder=False, isPlayable=True) canales = plugintools.find_single_match( data, 'Canales AceStream(.*?)</ul>') # Cojo el bloque de canales Acestream cada_canal = plugintools.find_multiple_matches( canales, 'href=(.*?)/a>') # Separo todos los canales y los monto en su url #Los saco a pantalla for item in cada_canal: canal_url = plugintools.find_single_match(item, '"(.*?)"') nombre_canal = plugintools.find_single_match(item, '">(.*?)<') titulo = "[COLOR aqua]- Ver el " + nombre_canal + "a [COLOR red][I](Acestream)[/I][/COLOR]" el_canal = "http://tumarcador.xyz/" + canal_url #lanzo_spd = url_montada.replace("MI_CANAL", el_canal) #Montamos la línea. #plugintools.runAddon(action="runPlugin",url=lanzo_spd,title=titulo,thumbnail=logo,fanart=fondo,folder=False,isPlayable=True) plugintools.add_item(action="saca_acestream", url=el_canal, title=titulo, thumbnail=logo, fanart=fondo, folder=True, isPlayable=False)
def TOOLS(params): plugintools.add_item( action="ovh", title='SpeedTest' , url='http://ovh.net/files/100Mio.dat', thumbnail='', plot='', fanart='' , extra="", isPlayable=False, folder=False ) plugintools.add_item( action="createini", title='Create INI' , url='', thumbnail='', plot='', fanart='' , extra="", isPlayable=False, folder=False ) plugintools.add_item( action=vod_channels("b25saW5l"), title=vod_channels("Q2hhbm5lbCBTdGF0dXM=") , thumbnail="" , fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=")) , folder=True ) plugintools.add_item( action=vod_channels("YWR2YW5jZQ=="), title=vod_channels("VXNlIEFkdmFuY2Vk") , thumbnail="" , fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=")) , folder=False ) plugintools.add_item( action=vod_channels("Y2xlYXJDYWNoZQ=="), title=vod_channels("Q2xlYXIgQ2FzaGU=") , thumbnail="" , fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=")) , folder=False ) plugintools.add_item( action=vod_channels("ZGVsZXRlVGh1bWJuYWlscw=="), title=vod_channels("RGVsZXRlIFRodW1ibmFpbHM=") , thumbnail="" , fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=")) , folder=False ) plugintools.add_item( action=vod_channels("Y2xlYXJwYWNrYWdl"), title=vod_channels("UHVyZ2UgUGFja2FnZXM=") , thumbnail="" , fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=")) , folder=False ) plugintools.add_item( action=vod_channels("dXBkYXRlcw=="), title="Update Current" , thumbnail="" , fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=")) , folder=False ) plugintools.add_item( action=vod_channels("dXBkYXRlcw=="), title=vod_channels("Rml4IERlcGVuZGVuY3lzIEVycm9y") , thumbnail="" , fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=")) , folder=False ) plugintools.add_item( action=vod_channels("cmVzZXQ="), title=vod_channels("UmVzZXQ=") , thumbnail="" , fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=")) , folder=False ) plugintools.add_item( action=vod_channels("a2lsbHhibWM="), title=vod_channels("UmVzdGFydCBLb2Rp") , thumbnail="" , fanart=os.path.join(LOAD_LIVE,vod_channels("YmFja2dyb3VuZC5wbmc=")) , folder=False )
def main_list(params): plugintools.log("motor99.main_list " + repr(params)) plugintools.add_item( #action="", title="F1", url="plugin://plugin.video.youtube/user/" + YOUTUBE_CHANNEL_ID1 + "/", thumbnail= "https://4.bp.blogspot.com/-bcFnq1jH9i8/WOO6pEkyJ-I/AAAAAAAAbPQ/jARYtS2hW7Epbdx9o1FMEBeunJvlWb7LgCLcB/s1600/f1.png", fanart= "https://2.bp.blogspot.com/-ZUKPGAc_AsM/WOIsO_YQfBI/AAAAAAAAbK4/jTR1ONZgLsIk2K0DSdi2eyOE9Yv_Y1LWACLcB/s1600/formula_1_track_aerial_view-wallpaper-1920x1080.jpg", folder=True) plugintools.add_item( #action="", title="WRC", url="plugin://plugin.video.youtube/user/" + YOUTUBE_CHANNEL_ID2 + "/", thumbnail= "https://4.bp.blogspot.com/-0qMIssKqlh8/WOO3cvFrZpI/AAAAAAAAbO0/Lt-xTFuTqdogY1mGx3rKEiJzFIIRMeyDgCLcB/s1600/WRC.png", fanart= "https://4.bp.blogspot.com/-A4lo468Vwqg/WOIzy1FwgDI/AAAAAAAAbLY/UAZw9u-Jc2Qc_QuKWoLBnVxWZQ96q3ybQCLcB/s1600/wc1788960.jpg", folder=True) plugintools.add_item( #action="", title="SoyMotor", url="plugin://plugin.video.youtube/user/" + YOUTUBE_CHANNEL_ID3 + "/", thumbnail= "https://3.bp.blogspot.com/-Vzl_jNdMt7Y/WOO3QX51ClI/AAAAAAAAbOw/pllRmOti9z0bEhflLO5-fOIP9dTVsv1EwCLcB/s1600/soymotor.png", fanart="", folder=True) plugintools.add_item( #action="", title="Ken Block", url="plugin://plugin.video.youtube/user/" + YOUTUBE_CHANNEL_ID4 + "/", thumbnail= "https://1.bp.blogspot.com/-a9R8Ps5s4yA/XUPe1WyaniI/AAAAAAAAy5Y/pQUc0opJCo4D8gA0SfnrcGHcflK0aRu4wCLcBGAs/s1600/Sin%2Bt%25C3%25ADtulo3.png", fanart= "https://4.bp.blogspot.com/-XqT1MIARctc/XUPexKHngxI/AAAAAAAAy5Q/O1Z6QxhZi8wSuTrhPncTsEzM7IkvfKiEACLcBGAs/s1600/189919.jpg", folder=True) plugintools.add_item( #action="", title="GT4", url="plugin://plugin.video.youtube/channel/" + YOUTUBE_CHANNEL_ID5 + "/", thumbnail= "https://1.bp.blogspot.com/--a0BTGbYrvI/WOOkBhYOriI/AAAAAAAAbOM/n8Srau6rAKcnNtp3xltLfxwtgIQIrJ5DACLcB/s1600/gt42.png", fanart= "https://4.bp.blogspot.com/-flWb4l6LLIU/WON_X04gBkI/AAAAAAAAbNY/f344C4KEyLYrpxmculHZys-lJfXg3DZCgCLcB/s1600/gt4-series-race-racing-g-t-rally-grand-prix-supercar-0Yjv.jpg", folder=True) plugintools.add_item( #action="", title="Formula E", url="plugin://plugin.video.youtube/user/" + YOUTUBE_CHANNEL_ID6 + "/", thumbnail= "https://4.bp.blogspot.com/-_iBxROf68zs/WOO4Wmd8R8I/AAAAAAAAbO8/F314pmeuct0Amvj_WR6XJxPNrRKainNDACLcB/s1600/formula%2Be.png", fanart= "https://1.bp.blogspot.com/-BOrvvzz5beo/WOOBzE-T3sI/AAAAAAAAbNw/HyoEsncQD0MWKBrDhRIPc265yd56NagKACLcB/s1600/ds-virgin-16-17-2.jpg", folder=True) plugintools.add_item( #action="", title="DTM", url="plugin://plugin.video.youtube/user/" + YOUTUBE_CHANNEL_ID7 + "/", thumbnail= "https://3.bp.blogspot.com/-83zc0sPPxVE/WOO9sJOpPhI/AAAAAAAAbPc/c0Cvr9xhVNwueZ9AtxYtWUd-a2ykoM-ngCLcB/s1600/dtm.png", fanart= "https://1.bp.blogspot.com/-sInGT_rOHV8/WOO97-gS1xI/AAAAAAAAbPg/C0ivz9K5eYsQXdIG1lQALz7u_VgVOZkqgCLcB/s1600/cars_tuning_BMW_M3_DTM_Concept_1920x1200.jpg", folder=True) plugintools.add_item( #action="", title="WTCR", url="plugin://plugin.video.youtube/user/" + YOUTUBE_CHANNEL_ID8 + "/", thumbnail= "https://4.bp.blogspot.com/-cGpnR0ABN6M/XUMtx6AZUEI/AAAAAAAAytE/6nzdZnikaSU4WehYrcw9Qipkfb6htvebQCLcBGAs/s1600/Sin%2Bt%25C3%25ADtulo.png", fanart= "https://1.bp.blogspot.com/-t-rAmPhaRY4/XUMs_5-iiRI/AAAAAAAAys8/39U61XOSEoQC5Tew-LXJEhfTV5O_bxLfgCLcBGAs/s1600/wtcr.jpg", folder=True) plugintools.add_item( #action="", title="MotoGP", url="plugin://plugin.video.youtube/user/" + YOUTUBE_CHANNEL_ID9 + "/", thumbnail= "https://2.bp.blogspot.com/-GEk0m969hdo/WOPDDhYhyXI/AAAAAAAAbP4/Y7wgq239NfsYbzOFd2kNtb5dB1J4sFcUwCLcB/s1600/motogp.png", fanart= "https://4.bp.blogspot.com/-aaksYwlqINU/WOPDERTNgWI/AAAAAAAAbP8/pQtxsQ-gUPE4ul2UIdhkKSkqm5BrAauuQCLcB/s1600/malasia-test-motogp-2016.jpg", folder=True) plugintools.add_item( #action="", title="Dakar", url="plugin://plugin.video.youtube/user/" + YOUTUBE_CHANNEL_ID10 + "/", thumbnail= "https://1.bp.blogspot.com/-6VRxgFpkQcQ/XUP4ymOjzKI/AAAAAAAAy7w/4ISEy0j8ZtoRszonZDHkzGwjmEvAW61pwCLcBGAs/s1600/dakar_logo.jpg", fanart= "https://4.bp.blogspot.com/-nz_GKAesNmY/XUP5Zpx6xVI/AAAAAAAAy74/w3na51zCN88G1ZOokfUQ68ruVwt_fVjuwCLcBGAs/s1600/dakar-rally-wallpapers-31001-6043285.jpg", folder=True) plugintools.add_item( #action="", title="Blancpain GT Series", url="plugin://plugin.video.youtube/user/" + YOUTUBE_CHANNEL_ID11 + "/", thumbnail= "https://4.bp.blogspot.com/-l4tZ8qcS0ZQ/XUP_-piPQhI/AAAAAAAAy8E/zCg5bpDDypA9oVBGa3upQ_fZ_3Y1510fACLcBGAs/s1600/timthumb.jpg", fanart= "https://4.bp.blogspot.com/-rnlhHpIaOqE/XUP_-uzkYmI/AAAAAAAAy8I/zf210sSCCTkka9BJzkelS7A3oVutMfQQACLcBGAs/s1600/thumb-1920-353036.jpg", folder=True) plugintools.add_item( #action="", title="IMSA Español", url="plugin://plugin.video.youtube/channel/" + YOUTUBE_CHANNEL_ID12 + "/", thumbnail= "https://3.bp.blogspot.com/-XCVlgugS02M/XUQFCSRvdpI/AAAAAAAAy9c/GFUdZ5C5zUoNSJMByrK-VmossgoobK9tACLcBGAs/s1600/descarga%2B%25281%2529.png", fanart= "https://4.bp.blogspot.com/-x9aW44FkJXo/XUQFD8IO4YI/AAAAAAAAy9g/F6gNAL4C7rollXEr5Tnfw3tvJXMpdi8xACLcBGAs/s1600/08012019_iwsc_roadamerica_preview_1280x626.jpg", folder=True) plugintools.add_item( #action="", title="EnduroLife", url="plugin://plugin.video.youtube/user/" + YOUTUBE_CHANNEL_ID13 + "/", thumbnail= "https://1.bp.blogspot.com/-IJrGjpBRW0M/XUQLM_01FEI/AAAAAAAAy9w/NoayTLdTOH4d_DDIOctK4xiNON2YAk7WACLcBGAs/s1600/lkyDx1zD_400x400.jpg", fanart= "https://4.bp.blogspot.com/-ircdChh4D8o/XUQLO4duS2I/AAAAAAAAy90/L4-2_4eZnPwDSBdSBUegFzXq6J7h8xMDgCLcBGAs/s1600/wp1900761.jpg", folder=True) plugintools.add_item( #action="", title="Red Bull Motorsport", url="plugin://plugin.video.youtube/channel/" + YOUTUBE_CHANNEL_ID14 + "/", thumbnail= "https://1.bp.blogspot.com/-piSlBiC2rTA/XUQOotqIU9I/AAAAAAAAy-E/F_DtbXWHZ_Eh8vMw7ZvGefy3YLMUD6e4ACLcBGAs/s1600/unnamed.jpg", fanart= "https://3.bp.blogspot.com/-qGAANz5BBWo/XUQOm5WjkgI/AAAAAAAAy-A/OBhnxqZ30NgZK7Q4tqomFBr2wlyCWbvoQCLcBGAs/s1600/motoring-collection.jpg", folder=True)
def tumarcador0(params): plataforma = marca_plataforma() ruta_pro = xbmc.translatePath( os.path.join( 'special://home/userdata/addon_data/plugin.video.live.streamspro', '')) #headers = {"User-Agent": 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0', "Referer": url} r = requests.get(guia) data = r.content if not os.path.exists(ruta_pro): os.makedirs( ruta_pro ) # Si no existe el directorio, LSP nos va a dar error... así q lo creo logo = "https://pbs.twimg.com/profile_images/1851363673/logo.jpg" fondo = "https://i.ytimg.com/vi/-cF0sCnB6tc/maxresdefault.jpg" plugintools.add_item( action="", url="", title=" " + parser + autor, thumbnail= "https://dl.dropbox.com/s/m3ef0irmyqb0b6k/tv%20ultra%20logo%202.png?dl=0", fanart=fondo, folder=False, isPlayable=False) plugintools.add_item(action="", url="", title="", thumbnail=logo, fanart=fondo, folder=False, isPlayable=False) ''' if plataforma == "android": plugintools.add_item(action="runPlugin",url=lanza_motor,title="[COLOR red]- Activar Motor Acestream -[/COLOR]",thumbnail="http://i.imgur.com/ULiNjQM.png",fanart=fanart,folder=False,isPlayable=True) ''' plugintools.add_item( action="zap_marcador", url="", title="[COLOR white][B]- Listade Canales -[/COLOR][/B]", thumbnail= "https://dl.dropbox.com/s/m3ef0irmyqb0b6k/tv%20ultra%20logo%202.png?dl=0", fanart=fondo, folder=True, isPlayable=False) plugintools.add_item( action="muestra_guia", url="", title="[COLOR red][B]- Mostrar Guía en Imagenes -[/COLOR][/B]", thumbnail="http://i.imgur.com/BNQwcS6.png", fanart=fondo, folder=True, isPlayable=False) #*********** Control de Diferencias Horarias 15-10-16 ******************* if not os.path.exists(fich_hora): diferencia = "00:00" file_hora = open(fich_hora, "w+") file_hora.write("00:00") file_hora.close() else: file_hora = open(fich_hora, "r") diferencia = file_hora.read() file_hora.close() #*********** Control de Diferencias Horarias 15-10-16 ******************* diferencia = diferencia + ":00" dias = plugintools.find_multiple_matches(data, '<dia>(.*?)<fin dia>') from datetime import datetime, timedelta for item in dias: dia = " [COLOR white]Día: " + plugintools.find_single_match( item, '(.*?)<') plugintools.add_item(action="", url="", title=dia, thumbnail=logo, fanart=fondo, folder=False, isPlayable=False) lineas = plugintools.find_multiple_matches(item, '<linea>(.*?)<fin') for item2 in lineas: linea = item2 + "<" hora = plugintools.find_single_match(linea, '<hora>(.*?)<') competicion = plugintools.find_single_match( linea, '<competi>(.*?)<') partido = plugintools.find_single_match(linea, '<partido>(.*?)<') canal = ">" + plugintools.find_single_match( linea, '<canal>(.*?)<') + "<" logo_ext = plugintools.find_single_match(linea, '<logo>(.*?)<') if len(hora) > 0: #*********** Control de Diferencias Horarias 15-10-16 ******************* hora_esp = hora.replace("[COLOR lightblue]", "").replace("h[/COLOR]", "").strip() hora_esp = hora_esp + ":00" # Añado los segundos hora_dif = diferencia + ":00" # Añado los segundos lista_esp = hora_esp.split(":") lista_dif = diferencia.replace("-", "").split(":") esp_hora = int(lista_esp[0]) esp_minuto = int(lista_esp[1]) esp_segundo = int(lista_esp[2]) dif_hora = int(lista_dif[0]) dif_minuto = int(lista_dif[1]) dif_segundo = int(lista_dif[2]) h1 = datetime(2012, 12, 12, esp_hora, esp_minuto, 0) dh = timedelta(hours=dif_hora) dm = timedelta(minutes=dif_minuto) ds = timedelta(seconds=dif_segundo) if "-" in diferencia: # Hay que restar horas resultado1 = h1 - ds resultado2 = resultado1 - dm resultado = resultado2 - dh else: # Hay que sumar Horas resultado1 = h1 + ds resultado2 = resultado1 + dm resultado = resultado2 + dh hora = "[COLOR lightblue]" + resultado.strftime( "%H:%M:%S") + "h[/COLOR]" hora = hora.replace(":00h", "h") #*********** Control de Diferencias Horarias 15-10-16 ******************* #if len(canal) > 1: canal2 = canal.replace(">", "").replace("<", "").replace( "-Acestream", "a-Acestream") if len( canal ) > 3: # Hay mas de 1 canal y seguramente acestream 31-10-16 letrero = "Canales: " completa = hora + " [COLOR white](" + competicion + ") - [/COLOR]" + partido + " [COLOR white][I][ " + letrero + canal2 + " ] [/COLOR][/I]" if len(logo_ext) > 0: logo = logo_ext plugintools.add_item(action="tumarcador_canales", url=canal, title=completa, thumbnail=logo, fanart=fondo, folder=True, isPlayable=False) else: letrero = "Canal: " canal_regex = canal2 el_canal = "http://tumarcador.xyz/canal" + canal_regex + ".php" completa = hora + " [COLOR white](" + competicion + ") - [/COLOR]" + partido + " [COLOR white][I][ " + letrero + canal2 + " ] [/COLOR][/I]" lanzo_spd = url_montada.replace("MI_CANAL", el_canal) if len(logo_ext) > 0: logo = logo_ext #plugintools.runAddon(action="runPlugin",url=lanzo_spd,title=completa,thumbnail=logo, fanart=fondo, folder=False, isPlayable=True) plugintools.add_item(action="runPlugin", url=lanzo_spd, title=completa, thumbnail=logo, fanart=fondo, folder=False, isPlayable=True) return
def main_list(params): plugintools.log("docu.main_list " + repr(params)) plugintools.add_item( #action="", title="*David Attenborough*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_1 + "/", thumbnail="https://i.ytimg.com/i/3p3WtGCfeVRvt3ytWNHQAg/mq1.jpg", folder=True) plugintools.add_item( #action="", title="*Escape to the Country*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_2 + "/", thumbnail="https://i.ytimg.com/i/znmQVMuULKJuAHV3IfV0Og/mq1.jpg", folder=True) plugintools.add_item( #action="", title="NGC - (Amazon see playlists)", url="plugin://plugin.video.youtube/channel/" + YOUTUBE_CHANNEL_ID_3 + "/", thumbnail= "https://yt3.ggpht.com/-pF1sp98zi1E/AAAAAAAAAAI/AAAAAAAAAAA/E-ySnLMpb00/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Ocean Wild", url="plugin://plugin.video.youtube/channel/" + YOUTUBE_CHANNEL_ID_4 + "/", thumbnail= "https://yt3.ggpht.com/-4nHixblGJtg/AAAAAAAAAAI/AAAAAAAAAAA/cWcLIgRmWwU/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Mega Disasters", url="plugin://plugin.video.youtube/channel/" + YOUTUBE_CHANNEL_ID_5 + "/", thumbnail= "https://yt3.ggpht.com/-jK6d7QEdI-0/AAAAAAAAAAI/AAAAAAAAAAA/iFmdLKMSiQU/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="How It's Made", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_6 + "/", thumbnail= "https://yt3.ggpht.com/-cBpgjwoBbHw/AAAAAAAAAAI/AAAAAAAAAAA/Bb-IsAanv3o/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="*Natural Disasters*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_7 + "/", thumbnail= "https://yt3.ggpht.com/-guvcXLUvj5o/AAAAAAAAAAI/AAAAAAAAAAA/q3bw6ZmxlfM/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Documentaries Channel", url="plugin://plugin.video.youtube/channel/" + YOUTUBE_CHANNEL_ID_8 + "/", thumbnail= "https://yt3.ggpht.com/-SRDKHzWBuNk/AAAAAAAAAAI/AAAAAAAAAAA/CGLHgSvtvr8/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="*Earth and Climate Change*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_9 + "/", thumbnail= "https://yt3.ggpht.com/-f-iTE-XjTtg/AAAAAAAAAAI/AAAAAAAAAAA/lZc6ZEDKNco/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="*Just Amazing*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_10 + "/", thumbnail= "https://yt3.ggpht.com/-wQ95Bw1UQtQ/AAAAAAAAAAI/AAAAAAAAAAA/vGFNGyBU9t8/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="*Space Documentaries*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_11 + "/", thumbnail= "https://yt3.ggpht.com/-o5SqTvNGBuI/AAAAAAAAAAI/AAAAAAAAAAA/REMI90DnKMg/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="*PBS Nova Documentaries*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_12 + "/", thumbnail="https://i.ytimg.com/i/4H7bkwb6go7vrEkgYMgsGw/mq1.jpg", folder=True) plugintools.add_item( #action="", title="*Underwater Life*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_13 + "/", thumbnail="https://i.ytimg.com/i/N_kMFZPoAqueNEfLD8TTPw/mq1.jpg", folder=True) plugintools.add_item( #action="", title="*Prehistoric Life*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_14 + "/", thumbnail= "https://yt3.ggpht.com/-Vn6E61LG56c/AAAAAAAAAAI/AAAAAAAAAAA/tj7eWa_jtvM/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="*Animals*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_15 + "/", thumbnail= "https://yt3.ggpht.com/-bySYV6OBABs/AAAAAAAAAAI/AAAAAAAAAAA/TUJBC41FuSg/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="*Birds*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_16 + "/", thumbnail="https://i.ytimg.com/i/7uJ7jdwfPcmqKu7V2nI9rA/mq1.jpg", folder=True) plugintools.add_item( #action="", title="*Reptiles*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_17 + "/", thumbnail="https://i.ytimg.com/i/vfH62D48X5Bahu-oroIreQ/mq1.jpg", folder=True) plugintools.add_item( #action="", title="*Insects and Others*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_18 + "/", thumbnail="https://i.ytimg.com/i/cPRY79BUym6pAzuwdPo5wA/mq1.jpg", folder=True) plugintools.add_item( #action="", title="*People and Peoples*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_19 + "/", thumbnail="https://i.ytimg.com/i/zo931iwA-4hTxGGsAHcBKQ/mq1.jpg", folder=True) plugintools.add_item( #action="", title="*Places*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_20 + "/", thumbnail="https://i.ytimg.com/i/rul-IVStrYQOaN6Ik8fkXA/mq1.jpg", folder=True) plugintools.add_item( #action="", title="*Bigfoot and Other Anomolies*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_21 + "/", thumbnail= "https://yt3.ggpht.com/-yfLAbTgKBGo/AAAAAAAAAAI/AAAAAAAAAAA/QXR5KkcxAkA/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="*Technology*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_22 + "/", thumbnail="https://i.ytimg.com/i/iB9rK85xR9_fsMDIOcBzfw/mq1.jpg", folder=True) plugintools.add_item( #action="", title="*How It Works*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_23 + "/", thumbnail= "https://yt3.ggpht.com/-TknP_OJmc84/AAAAAAAAAAI/AAAAAAAAAAA/MEVM5pueZAo/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="*Sharks*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_24 + "/", thumbnail="https://i.ytimg.com/i/HThGYhvhgyvTgUkv3n5R_A/mq1.jpg", folder=True) plugintools.add_item( #action="", title="*Bush Tucker Man and Ray Mears*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_25 + "/", thumbnail="https://i.ytimg.com/i/B-ZHqtdOOQP97sFgghJv3A/mq1.jpg", folder=True) plugintools.add_item( #action="", title="*Cousteau - Stevens - Corwin*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_26 + "/", thumbnail= "https://yt3.ggpht.com/-Y7M3HxhIPXE/AAAAAAAAAAI/AAAAAAAAAAA/F6yske0SxqI/s100-c-k-no-mo/photo.jpg", folder=True) plugintools.add_item( #action="", title="*Bear Grylls*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_27 + "/", thumbnail="https://i.ytimg.com/i/0JBpG2wnuaYY4Xaq6mKtag/mq1.jpg", folder=True) plugintools.add_item( #action="", title="Documentary Tube", url="plugin://plugin.video.youtube/channel/" + YOUTUBE_CHANNEL_ID_28 + "/", thumbnail= "https://yt3.ggpht.com/-S-vFfo9ZEQw/AAAAAAAAAAI/AAAAAAAAAAA/p11UQUOJPiY/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Seosan TV", url="plugin://plugin.video.youtube/channel/" + YOUTUBE_CHANNEL_ID_29 + "/", thumbnail= "https://yt3.ggpht.com/-Ck9Jo4G4yZs/AAAAAAAAAAI/AAAAAAAAAAA/ZP0TFEc9xtY/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="*Tanked and Fish Tank Kings*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_30 + "/", thumbnail="https://i.ytimg.com/i/2U6mUdlQBS0umA4EbhCNwQ/mq1.jpg", folder=True) plugintools.add_item( #action="", title="Explore the World", url="plugin://plugin.video.youtube/channel/" + YOUTUBE_CHANNEL_ID_31 + "/", thumbnail= "https://yt3.ggpht.com/-MahOSuELdM0/AAAAAAAAAAI/AAAAAAAAAAA/1Gz3o8HcPSs/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="*MegaStructures*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_32 + "/", thumbnail="https://i.ytimg.com/i/FVWpq2o6CgdbU3Pt8T_SCw/mq1.jpg", folder=True) plugintools.add_item( #action="", title="*Grand Designs*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_33 + "/", thumbnail="https://i.ytimg.com/i/IcHogHIVOmcYHVFrfSbtWw/mq1.jpg", folder=True) plugintools.add_item( #action="", title="*Homes and Restoration*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_34 + "/", thumbnail= "https://yt3.ggpht.com/-1eeHRxZfj9I/AAAAAAAAAAI/AAAAAAAAAAA/QbShPRkukHE/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="*The Secrets of Nature*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_35 + "/", thumbnail= "https://yt3.ggpht.com/-iztw3n2qnJM/AAAAAAAAAAI/AAAAAAAAAAA/PCf32MQpPQw/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="*Michael Palin*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_36 + "/", thumbnail="https://i.ytimg.com/i/sdKyU3FQcO6TJNo9DqcLkA/mq1.jpg", folder=True) plugintools.add_item( #action="", title="World Documentaries Channel", url="plugin://plugin.video.youtube/channel/" + YOUTUBE_CHANNEL_ID_37 + "/", thumbnail= "https://yt3.ggpht.com/-J78EouLWbVg/AAAAAAAAAAI/AAAAAAAAAAA/LgnEEnlVaTo/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="*Documentary Series*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_38 + "/", thumbnail= "https://yt3.ggpht.com/-vNiwabFzrYc/AAAAAAAAAAI/AAAAAAAAAAA/hgYmX_3ZGnY/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Documentary and Life HD", url="plugin://plugin.video.youtube/channel/" + YOUTUBE_CHANNEL_ID_39 + "/", thumbnail= "https://yt3.ggpht.com/-Wiyi4I9ZjIw/AAAAAAAAAAI/AAAAAAAAAAA/SCa3UpHccwo/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Journeyman Pictures", url="plugin://plugin.video.youtube/channel/" + YOUTUBE_CHANNEL_ID_40 + "/", thumbnail= "https://yt3.ggpht.com/-Xs83JYB4N28/AAAAAAAAAAI/AAAAAAAAAAA/Fr6y4xA5VVA/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="PublicResourceOrg (Check Playlist)", url="plugin://plugin.video.youtube/channel/" + YOUTUBE_CHANNEL_ID_41 + "/", thumbnail="https://i.ytimg.com/i/X1nmhI_px297r0xp4cJBlg/mq1.jpg", folder=True) plugintools.add_item( #action="", title="*More Nature Documentaries*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_42 + "/", thumbnail= "https://yt3.ggpht.com/-_zOKR9ylefo/AAAAAAAAAAI/AAAAAAAAAAA/cbU7iYLD3wc/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="A Place In ..", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_43 + "/", thumbnail="https://i.ytimg.com/i/co-5O8Qv9K1v56GtFtwVLQ/mq1.jpg", folder=True) plugintools.add_item( #action="", title="*Homes Under the Hammer", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_44 + "/", thumbnail="https://i.ytimg.com/i/DBVByX8tNTae_OOaGSBjGA/mq1.jpg", folder=True) plugintools.add_item( #action="", title="The Joy of Painting (Playlist for Seasons)", url="plugin://plugin.video.youtube/channel/" + YOUTUBE_CHANNEL_ID_45 + "/", thumbnail= "https://yt3.ggpht.com/-3JIv93qscdY/AAAAAAAAAAI/AAAAAAAAAAA/jUgiZDXKcuQ/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="*Rex Hunt, Robson Green and more.*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_46 + "/", thumbnail= "https://yt3.ggpht.com/-JVYN_Kyawjc/AAAAAAAAAAI/AAAAAAAAAAA/HipcJcuCULQ/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="*Fishing*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_47 + "/", thumbnail="https://i.ytimg.com/i/hXKe8kZn3xqgpqtpnSYpUw/mq1.jpg", folder=True) plugintools.add_item( #action="", title="*Treasure*", url="plugin://plugin.video.youtube/playlist/" + YOUTUBE_CHANNEL_ID_48 + "/", thumbnail= "https://yt3.ggpht.com/-lyQ7kuZRdj0/AAAAAAAAAAI/AAAAAAAAAAA/5Mnr0zV1wUk/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Travel Film Archive (See Playlists)", url="plugin://plugin.video.youtube/channel/" + YOUTUBE_CHANNEL_ID_49 + "/", thumbnail= "https://yt3.ggpht.com/-74-csLJDn5M/AAAAAAAAAAI/AAAAAAAAAAA/GBzNH6PB-zs/s100-c-k-no/photo.jpg", folder=True) plugintools.add_item( #action="", title="Planet Doc", url="plugin://plugin.video.youtube/channel/" + YOUTUBE_CHANNEL_ID_50 + "/", thumbnail= "https://yt3.ggpht.com/-jSIGfZAjyTk/AAAAAAAAAAI/AAAAAAAAAAA/dvaLu4krnwI/s100-c-k-no/photo.jpg", folder=True)
def main_list(params): plugintools.log("vrlivre ===> " + repr(params)) plugintools.add_item( title="[COLOR red]Curso de Arduino 2018[/COLOR]", url=base + "playlist/PLgezO2EG3LXu0KEA49Cv-nxYnYjna0mfy/", thumbnail="http://sergiogracas.com/emular/kodi/imagens/Arduino.png", folder=True) plugintools.add_item( title="[COLOR blue]Drops GIMP[/COLOR]", url=base + "playlist/PLgezO2EG3LXvrR6BVrmpani5-MxOGk2LP/", thumbnail="http://sergiogracas.com/emular/kodi/imagens/gimp.png", folder=True) plugintools.add_item( title="[COLOR lime]Batocera & Recalbox[/COLOR]", url=base + "playlist/PLgezO2EG3LXsLy024SPWs5oQOWCzu_5F8/", thumbnail="http://sergiogracas.com/emular/kodi/imagens/recalbox.png", folder=True) plugintools.add_item( title="[COLOR white]Portifólios da Informática (2007 à 2016)[/COLOR]", url=base + "playlist/PLgezO2EG3LXubMFEyYak9Y3j8tLH1GjgG/", thumbnail="http://sergiogracas.com/emular/kodi/imagens/portifolio.png", folder=True) plugintools.add_item( title="[COLOR yellow]Palestras e Eventos[/COLOR]", url=base + "playlist/PLgezO2EG3LXv_F7BalCn59t07fltG2_lq/", thumbnail="http://sergiogracas.com/emular/kodi/imagens/palestras.png", folder=True) plugintools.add_item( title= "[COLOR blue]Curso de Artes Gráficas com Software Livre - Barbará Tostes[/COLOR]", url=base + "playlist/PL058pFiG1gecMSwTlDZdv-Oc57IuLsmuH/", thumbnail="http://sergiogracas.com/emular/kodi/imagens/grafica.png", folder=True) plugintools.add_item( title="[COLOR lime]Tutoriais do Canal Digola[/COLOR]", url=base + "playlist/PLHJQSVdtWwIUPl1agKHb_XYzZb2sEXIFM/", thumbnail="http://sergiogracas.com/emular/kodi/imagens/digola.png", folder=True) plugintools.add_item( title="[COLOR white]Tutoriais do Canal Vikings[/COLOR]", url=base + "playlist/PLgezO2EG3LXvdOf-ViGkdjVCVHb7SURa6/", thumbnail="http://sergiogracas.com/emular/kodi/imagens/vikings.png", folder=True) plugintools.add_item( title= "[COLOR yellow]Desenhos Vetorizados do Canal Bruno Nerd Comics[/COLOR]", url=base + "playlist/PLvZLRSZ-A58sm-RBd_EDYox7n8ZKfye3c/", thumbnail="http://sergiogracas.com/emular/kodi/imagens/nerdcomics.png", folder=True) plugintools.add_item( title="[COLOR blue]Ultraman - Dublado (480p)[/COLOR]", url=base + "playlist/PLQKCUFcFQXDSTj4h8EM3ZXkQJLBFHD93u/", thumbnail="http://sergiogracas.com/emular/kodi/imagens/ultraman.jpg", folder=True) plugintools.add_item( title= "[COLOR lime]O Regresso de Ultraman - Dublado (480p/720p)[/COLOR]", url=base + "playlist/PLxMLyiIzP7Ih-ih2Gcxw2kgS0xcruyEor/", thumbnail="http://sergiogracas.com/emular/kodi/imagens/ultraman.jpg", folder=True) xbmcplugin.setContent(int(sys.argv[1]), 'movies') xbmc.executebuiltin('Container.SetViewMode(500)')
def cocina_busqueda(params): fanart = params.get("fanart") thumbnail = params.get("thumbnail") title = params.get("title") recursividad = params.get("extra") if recursividad == "1": buscar = "" buscar = plugintools.keyboard_input().replace(" ", "+") url_busca = "http://canalcocina.es/video-recetas?buscarEn=videoRecetas&q=" + buscar buscar = buscar.replace("+", " ") cabecera = "[COLOR lightgreen][B]Búsqueda: " + buscar + " [COLOR yellow][I]Pag. 1" + "[/I][/B][/COLOR]" else: url_busca = params.get("url") buscar = plugintools.find_single_match( url_busca, 'buscarEn=videoRecetas&q=(.*?)') cabecera = recursividad r = requests.get(url_busca) data = r.content plugintools.add_item(action="", url="", title=cabecera, thumbnail=thumbnail, fanart=fanart, folder=False, isPlayable=False) plugintools.add_item(action="", url="", title="", thumbnail=thumbnail, fanart=fanart, folder=False, isPlayable=False) bloque_videos = plugintools.find_single_match( data, '<h3 class=(.*?)class="letter-filter cube pagination') cada_video = plugintools.find_multiple_matches(bloque_videos, '<a(.*?)/p>') for item in cada_video: titulo_vid = plugintools.find_single_match(item, 'class="icon(.*?)/span>') titulo_video = plugintools.find_single_match(titulo_vid, '</i>(.*?)<') url_video = plugintools.find_single_match(item, 'href="(.*?)"') url_video = "http://canalcocina.es" + url_video cocinero = plugintools.find_single_match(item, 'chef20"></i>(.*?)<').strip() logo = plugintools.find_single_match(item, 'src="(.*?)"') titulo_completo = titulo_video + " [COLOR green][B](" + cocinero + ")[/I][/COLOR]" plugintools.add_item(action="lanza_video", url=url_video, title=titulo_completo, extra="", thumbnail=logo, fanart=fanart, folder=False, isPlayable=True) #Resuelvo la posibilidad de mas de 1 Página en la Búsqueda pag_sig = plugintools.find_single_match( data, '<!--<span>...</span>-->(.*?)title=') pagina_prox = plugintools.find_single_match(pag_sig, 'href="(.*?)"') ##if len(pagina_prox) <> 0: # Es que hay otra página en la búsqueda if "http://canalcocina.es" in pagina_prox: # Es que hay otra página en la búsqueda num_prox_pag = plugintools.find_single_match(pagina_prox, '/pag/(.*?)/') plugintools.add_item( action="cocina_busqueda", url=pagina_prox, title="[COLORFFFF0759]Página: " + num_prox_pag + " >>>[/COLOR]", extra="[COLOR lightgreen][B]Búsqueda: " + buscar + " [COLOR yellow][I]Pag. " + num_prox_pag + "[/I][/B][/COLOR]", thumbnail=thumbnail, fanart=fanart, folder=True, isPlayable=False)
def main_list(params): plugintools.log("docu.main_list " + repr(params)) plugintools.add_item( #action="", title="Bridges Foundation", url="plugin://plugin.video.youtube/channel/" + YOUTUBE_CHANNEL_ID_1 + "/", thumbnail= "https://raw.githubusercontent.com/ehabalbizri/files/master/icons/islamiceng/bridges.png", folder=True) plugintools.add_item( #action="", title="Tariq Ramadan", url="plugin://plugin.video.youtube/channel/" + YOUTUBE_CHANNEL_ID_2 + "/", thumbnail= "https://raw.githubusercontent.com/ehabalbizri/files/master/icons/islamiceng/tariq.png", folder=True) plugintools.add_item( #action="", title="Talk Islam", url="plugin://plugin.video.youtube/channel/" + YOUTUBE_CHANNEL_ID_3 + "/", thumbnail= "https://raw.githubusercontent.com/ehabalbizri/files/master/icons/islamiceng/talkislam.png", folder=True) plugintools.add_item( #action="", title="Suhaib Webb", url="plugin://plugin.video.youtube/channel/" + YOUTUBE_CHANNEL_ID_4 + "/", thumbnail= "https://raw.githubusercontent.com/ehabalbizri/files/master/icons/islamiceng/webb.png", folder=True) plugintools.add_item( #action="", title="Yusuf Estes", url="plugin://plugin.video.youtube/channel/" + YOUTUBE_CHANNEL_ID_5 + "/", thumbnail= "https://raw.githubusercontent.com/ehabalbizri/files/master/icons/islamiceng/estes.png", folder=True) plugintools.add_item( #action="", title="AbdurRaheem Green", url="plugin://plugin.video.youtube/channel/" + YOUTUBE_CHANNEL_ID_6 + "/", thumbnail= "https://raw.githubusercontent.com/ehabalbizri/files/master/icons/islamiceng/green.png", folder=True) plugintools.add_item( #action="", title="Channel Deedat", url="plugin://plugin.video.youtube/channel/" + YOUTUBE_CHANNEL_ID_7 + "/", thumbnail= "https://raw.githubusercontent.com/ehabalbizri/files/master/icons/islamiceng/deedat.png", folder=True) plugintools.add_item( #action="", title="Islam", url="plugin://plugin.video.youtube/channel/" + YOUTUBE_CHANNEL_ID_8 + "/", thumbnail= "https://raw.githubusercontent.com/ehabalbizri/files/master/icons/islamiceng/islam.png", folder=True)
def cocina_listavideos(params): fanart = params.get("fanart") thumbnail = params.get("thumbnail") url = params.get("url") titulo = params.get("title") extra_cabecera = params.get("extra") pagina_actual = "1" if "/pag/" in url: # viene de páginación pagina_actual = plugintools.find_single_match(url, '/pag/(.*?)/') r = requests.get(url) data = r.content if pagina_actual == "1": extra_cabecera = titulo cabecera = "[COLOR red][B]·····" + titulo + " ····· [/COLOR]" else: cabecera = "[COLOR red][B] ····· " + extra_cabecera + "[COLOR green] [B]Pagina. " + pagina_actual + " ·····[/B][/COLOR]" plugintools.add_item(action="", url="", title=cabecera, thumbnail=thumbnail, fanart=fanart, folder=False, isPlayable=False) plugintools.add_item(action="", url="", title="", thumbnail=thumbnail, fanart=fanart, folder=False, isPlayable=False) bloque_videos = plugintools.find_single_match( data, '<h3 class=(.*?)class="letter-filter cube pagination') cada_video = plugintools.find_multiple_matches(bloque_videos, '<a(.*?)/p>') for item in cada_video: titulo_vid = plugintools.find_single_match(item, 'class="icon(.*?)/span>') titulo_video = plugintools.find_single_match(titulo_vid, '</i>(.*?)<') url_video = plugintools.find_single_match(item, 'href="(.*?)"') url_video = "http://canalcocina.es" + url_video cocinero = plugintools.find_single_match(item, 'chef20"></i>(.*?)<').strip() logo = plugintools.find_single_match(item, 'src="(.*?)"') titulo_completo = titulo_video + " [COLOR blue][B](" + cocinero + ")[/B][/COLOR]" plugintools.add_item(action="lanza_video", url=url_video, title=titulo_completo, extra="", thumbnail=logo, fanart=fanart, folder=False, isPlayable=True) #Resuelvo la posibilidad de mas de 1 Página en la Categoría #Como la paginación no funciona en la web, tengo q hacerlo de forma "manual"... y como no se cual es la ultima página, no tengo mas remedio que #ir llamando a la sig. pág hasta que descubra que no existe. pagina_prox = str(int(pagina_actual) + 1) busqueda = "/pag/" + pagina_prox + "/" if busqueda in data: # es que hay al menos otra página mas if pagina_actual == "1": url_proxima = url + busqueda else: url_proxima = plugintools.find_single_match(url, 'http(.*?)/pag/') url_proxima = "http" + url_proxima + busqueda plugintools.add_item(action="cocina_listavideos", url=url_proxima, title="[COLORred][B]Página Numero: " + pagina_prox + " [/B][/COLOR]", extra=extra_cabecera, thumbnail=thumbnail, fanart=fanart, folder=True, isPlayable=False)
def cocina_listacategoria(params): fanart = params.get("fanart") thumbnail = params.get("thumbnail") url = params.get("url") categoria = params.get("title") acotacion = params.get("extra") acotacion = 'class="recipesTypesLnk' + acotacion r = requests.get(url) data = r.content plugintools.add_item( action="", url="", title="[COLOR red][B] ····· Categoría: [COLOR blue]" + categoria + " ·····[/B][/COLOR]", thumbnail=thumbnail, fanart=fanart, folder=False, isPlayable=False) plugintools.add_item(action="", url="", title="", thumbnail=thumbnail, fanart=fanart, folder=False, isPlayable=False) bloque_categoria = plugintools.find_single_match(data, acotacion + '(.*?)</li>') if ">Cocineros" in acotacion: cada_grupo = plugintools.find_multiple_matches(bloque_categoria, '<dd class(.*?)</dd>') tipo_codigo = 2 elif ">Programas" in acotacion: cada_grupo = plugintools.find_multiple_matches(bloque_categoria, '<dd class(.*?)</dd>') tipo_codigo = 2 else: cada_grupo = plugintools.find_multiple_matches(bloque_categoria, '<dd>(.*?)</dd>') tipo_codigo = 1 for item in cada_grupo: url_grupo = plugintools.find_single_match(item, 'href="(.*?)"') url_grupo = "http://canalcocina.es" + url_grupo if tipo_codigo == 1: titulo = plugintools.find_single_match(item, '">(.*?)<') titulo = titulo.replace("(", " [COLOR green][B](").replace( ")", ")[/B][/COLOR]") else: # es de tipo 2 titulo = plugintools.find_single_match(item, 'title="(.*?)"') num_recetas1 = plugintools.find_single_match( item, titulo + '">(.*?)</a>').replace("(", "QQQ").replace(")", "WWW") num_recetas2 = plugintools.find_single_match( num_recetas1, 'QQQ(.*?)WWW') if len(num_recetas2) == 0: num_recetas2 = "Nº Indeterminado" num_recetas2 = " [COLOR blue][B](" + num_recetas2 + ")[/B][/COLOR]" titulo = titulo + num_recetas2 plugintools.add_item(action="cocina_listavideos", url=url_grupo, title=titulo, extra="", thumbnail=thumbnail, fanart=fanart, folder=True, isPlayable=False)