def listaseries(params,url,category): logger.info("[sonolatino.py] listaseries") #url2 = "http://www.sonolatino.com/index.html" data = scrapertools.cachePage(url) patron = "Relacionadas</h4>(.*?)</ul>" matches = re.compile(patron,re.DOTALL).findall(data) if len(matches)>0: patron = '<a href="([^"]+)">([^<]+)</a>' matches2 = re.compile(patron,re.DOTALL).findall(matches[0]) scrapedplot = "" scrapedthumbnail= "" if len(matches)>0: for match in matches2: scrapedtitle = acentos(match[1]) print match[0] scrapedurl = match[0][:-18] print scrapedurl if (DEBUG): logger.info("scrapedtitle="+scrapedtitle) logger.info("scrapedurl="+scrapedurl) logger.info("scrapedthumbnail="+scrapedthumbnail) # A�ade al listado de XBMC xbmctools.addnewfolder( __channel__ , "listatipodocumental" , category , scrapedtitle , scrapedurl , scrapedthumbnail , scrapedplot ) # Label (top-right)... xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category=category ) # Disable sorting... xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE ) # End of directory... xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True )
def Videosnuevoslist(params,url,category): logger.info("[sonolatino.py] VideoesNuevos") # Descarga la p�gina data = scrapertools.cachePage(url) #logger.info(data) # Extrae las entradas (carpetas) patronvideos = '<tr><td.*?<a href="([^"]+)">' patronvideos += '<img src="([^"]+)" ' patronvideos += 'alt="[^"]+".*?' patronvideos += 'width="250">([^<]+)<' patronvideos += 'td class.*?<a href="[^>]+>([^<]+)</a></td><td class.*?>([^<]+)</td></tr>' matches = re.compile(patronvideos,re.DOTALL).findall(data) #logger.info("matches = "+str(matches)) if DEBUG: scrapertools.printMatches(matches) for match in matches: # Titulo # Titulo scrapedtitle = match[2] + " - " + match[3]+" - " + match[4].replace('í','i') print scrapedtitle scrapedtitle = scrapertools.unescape(scrapedtitle) # URL scrapedurl = match[0] # Thumbnail scrapedthumbnail = match[1] imagen = "" # procesa el resto scrapedplot = match[3] tipo = match[3] # Depuracion if (DEBUG): logger.info("scrapedtitle="+scrapedtitle) logger.info("scrapedurl="+scrapedurl) logger.info("scrapedthumbnail="+scrapedthumbnail) # A�ade al listado de XBMC #xbmctools.addthumbnailfolder( __channel__ , scrapedtitle, scrapedurl , scrapedthumbnail, "detail" ) xbmctools.addnewfolder( __channel__ , "detail" , category , scrapedtitle ,scrapedurl , scrapedthumbnail , scrapedplot ) # Busca enlaces de paginas siguientes... cat = "nuevo" patronvideo = patronvideos paginasiguientes(patronvideo,data,category,cat) # Label (top-right)... xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category=category ) # Disable sorting... xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE ) # End of directory... xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True )
def buscartrailer(params,url,category): print "[trailertools.py] Modulo: buscartrailer()" thumbnail = "" solo = "false" videotitle = title = urllib.unquote_plus( params.get("title") ).strip() if ":]" in videotitle: solo = "true" videotitle = re.sub("\[[^\]]+\]","",videotitle).strip() if config.get_localized_string(30110) in videotitle: #"Buscar trailer para" videotitle = videotitle.replace(config.get_localized_string(30110),"").strip() if config.get_localized_string(30111) in videotitle: #"Insatisfecho?, busca otra vez : " videotitle = videotitle.replace(config.get_localized_string(30111),"").strip() listavideos = GetTrailerbyKeyboard(videotitle.strip(),category) else: listavideos = gettrailer(videotitle.strip().strip(),category,solo) if len(listavideos)>0: for video in listavideos: titulo = video[1] url = video[0] thumbnail = video[2] duracion = video[3] xbmctools.addnewvideo( "trailertools" , "youtubeplay" , category , "youtube" , titulo , url , thumbnail , "Ver Video","",duracion ) xbmctools.addnewfolder( CHANNELNAME , "buscartrailer" , category , config.get_localized_string(30111)+" "+videotitle , url , os.path.join(IMAGES_PATH, 'trailertools.png'), "" ) #"Insatisfecho?, busca otra vez : " # Propiedades xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category=category ) xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE ) xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True )
def searchresults2(params, url, category): logger.info("[sonolatino.py] searchresults") # Descarga la p�gina data = scrapertools.cachePage(url) # logger.info(data) # Extrae las entradas (carpetas) patronvideos = '<li class="video">[^<]+<div class="video_i">[^<]+<a href="([^"]+)">' patronvideos += '[^<]+<img src="([^"]+)" ' patronvideos += 'alt="([^"]+)"[^>]+><div class="tag".*?</div>.*?' patronvideos += '<span class="artist_name">([^<]+)</span>' matches = re.compile(patronvideos, re.DOTALL).findall(data) scrapertools.printMatches(matches) for match in matches: # Titulo scrapedtitle = acentos(match[2]) # URL scrapedurl = match[0] # Thumbnail scrapedthumbnail = match[1] # procesa el resto scrapedplot = match[3] # Depuracion if DEBUG: logger.info("scrapedtitle=" + scrapedtitle + " - " + scrapedplot) logger.info("scrapedurl=" + scrapedurl) logger.info("scrapedthumbnail=" + scrapedthumbnail) # A�ade al listado de XBMC xbmctools.addnewfolder( __channel__, "detail", category, scrapedtitle + " - " + scrapedplot, scrapedurl, scrapedthumbnail, scrapedplot, ) # llama a la rutina paginasiguiente cat = "busca" paginasiguientes(patronvideos, data, category, cat) # Label (top-right)... xbmcplugin.setPluginCategory(handle=int(sys.argv[1]), category=category) # Disable sorting... xbmcplugin.addSortMethod(handle=int(sys.argv[1]), sortMethod=xbmcplugin.SORT_METHOD_NONE) # End of directory... xbmcplugin.endOfDirectory(handle=int(sys.argv[1]), succeeded=True)
def searchresults2(params,url,category): logger.info("[sonolatino.py] searchresults") # Descarga la p�gina data = scrapertools.cachePage(url) #logger.info(data) # Extrae las entradas (carpetas) patronvideos = '<li class="video">[^<]+<div class="video_i">[^<]+<a href="([^"]+)">' patronvideos += '[^<]+<img src="([^"]+)" ' patronvideos += 'alt="([^"]+)"[^>]+><div class="tag".*?</div>.*?' patronvideos += '<span class="artist_name">([^<]+)</span>' matches = re.compile(patronvideos,re.DOTALL).findall(data) scrapertools.printMatches(matches) for match in matches: # Titulo scrapedtitle = acentos(match[2]) # URL scrapedurl = match[0] # Thumbnail scrapedthumbnail = match[1] # procesa el resto scrapedplot = match[3] # Depuracion if (DEBUG): logger.info("scrapedtitle="+scrapedtitle+" - "+scrapedplot) logger.info("scrapedurl="+scrapedurl) logger.info("scrapedthumbnail="+scrapedthumbnail) # A�ade al listado de XBMC xbmctools.addnewfolder( __channel__ , "detail" , category , scrapedtitle + " - " + scrapedplot , scrapedurl , scrapedthumbnail , scrapedplot ) #llama a la rutina paginasiguiente cat = 'busca' paginasiguientes(patronvideos,data,category,cat) # Label (top-right)... xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category=category ) # Disable sorting... xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE ) # End of directory... xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True )
def verRelacionados(params, data, category): patronvideos = '<div class="item">.*?<a href="([^"]+)"' patronvideos += '><img src="([^"]+)".*?' patronvideos += 'alt="([^"]+)".*?/></a>.*?' patronvideos += '<span class="artist_name">([^<]+)</span>' matches = re.compile(patronvideos, re.DOTALL).findall(data) scrapertools.printMatches(matches) for match in matches: # Titulo scrapedtitle = acentos(match[2]) # URL scrapedurl = match[0] # Thumbnail scrapedthumbnail = match[1] # procesa el resto scrapeddescription = match[3] # procesa el resto scrapedplot = "" # Depuracion if DEBUG: logger.info("scrapedtitle=" + scrapedtitle) logger.info("scrapedurl=" + scrapedurl) logger.info("scrapedthumbnail=" + scrapedthumbnail) # A�ade al listado de XBMC xbmctools.addnewfolder( __channel__, "detail", category, scrapedtitle + " - " + scrapeddescription, scrapedurl, scrapedthumbnail, scrapedplot, ) # Label (top-right)... xbmcplugin.setPluginCategory(handle=pluginhandle, category=category) # Disable sorting... xbmcplugin.addSortMethod(handle=pluginhandle, sortMethod=xbmcplugin.SORT_METHOD_NONE) # End of directory... xbmcplugin.endOfDirectory(handle=pluginhandle, succeeded=True)
def verRelacionados(params,data,category): patronvideos = '<div class="item">.*?<a href="([^"]+)"' patronvideos += '><img src="([^"]+)".*?' patronvideos += 'alt="([^"]+)".*?/></a>.*?' patronvideos += '<span class="artist_name">([^<]+)</span>' matches = re.compile(patronvideos,re.DOTALL).findall(data) scrapertools.printMatches(matches) for match in matches: # Titulo scrapedtitle = acentos(match[2]) # URL scrapedurl = match[0] # Thumbnail scrapedthumbnail = match[1] # procesa el resto scrapeddescription = match[3] # procesa el resto scrapedplot = "" # Depuracion if (DEBUG): logger.info("scrapedtitle="+scrapedtitle) logger.info("scrapedurl="+scrapedurl) logger.info("scrapedthumbnail="+scrapedthumbnail) # A�ade al listado de XBMC xbmctools.addnewfolder( __channel__ , "detail" , category , scrapedtitle+" - "+scrapeddescription , scrapedurl , scrapedthumbnail , scrapedplot ) # Label (top-right)... xbmcplugin.setPluginCategory( handle=pluginhandle, category=category ) # Disable sorting... xbmcplugin.addSortMethod( handle=pluginhandle, sortMethod=xbmcplugin.SORT_METHOD_NONE ) # End of directory... xbmcplugin.endOfDirectory( handle=pluginhandle, succeeded=True )
def Videodeldia(params,url,category): # list(params,url,category,patronvideos) logger.info("[sonolatino.py] Videodeldia") # Descarga la p�gina data = scrapertools.cachePage(url) #logger.info(data) patronvideos = 'Video Musical: <a href="([^"]+)">([^<]+)</a>' matches = re.compile(patronvideos,re.DOTALL).findall(data) scrapertools.printMatches(matches) for match in matches: # Titulo # Titulo scrapedtitle = acentos(match[1]) # URL scrapedurl = match[0] # Thumbnail scrapedthumbnail = "" # scrapedplot scrapedplot = "" if (DEBUG): logger.info("scrapedtitle="+scrapedtitle) logger.info("scrapedurl="+scrapedurl) logger.info("scrapedthumbnail="+scrapedthumbnail) xbmctools.addnewfolder( __channel__ , "detail" , category , scrapedtitle , scrapedurl , scrapedthumbnail , scrapedplot ) # Label (top-right)... xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category=category ) # Disable sorting... xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE ) # End of directory... xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True )
def detail(params,url,category): logger.info("[sonolatino.py] detail") title = urllib.unquote_plus( params.get("title") ) thumbnail = urllib.unquote_plus( params.get("thumbnail") ) # Descarga la p�gina data = scrapertools.cachePage(url) if len(thumbnail)<=0: patron = '<td valign="top">[^<]+<img src="([^"]+)"' matches = re.compile(patron,re.DOTALL).findall(data) if len(matches)>0: thumbnail = matches[0] print thumbnail thumnbail = thumbnail ok = "false" patrondescrip = '<td.+?class="letra">[^<]+<h3>(.*?)</td>' descripcion = "" plot = "" uri = url matches = re.compile(patrondescrip,re.DOTALL).findall(data) if len(matches)>0: descripcion = matches[0] descripcion = descripcion.replace(" ","") descripcion = descripcion.replace("<BR>","\n") #descripcion = descripcion.replace("\r","") #descripcion = descripcion.replace("\n"," ") descripcion = descripcion.replace("\t","") descripcion = re.sub("<[^>]+>"," ",descripcion) # logger.info("descripcion="+descripcion) descripcion = acentos(descripcion) # logger.info("descripcion="+descripcion) try : plot = unicode( descripcion, "utf-8" ).encode("iso-8859-1") except: plot = descripcion # ---------------------------------------------------------------------------- # Busca los enlaces a los videos de : "Megavideo" # ------------------------------------------------------------------------------------ listavideos = servertools.findvideos(data) for video in listavideos: videotitle = video[0] url1 = video[1].replace("&","&") logger.info("url ="+url) if url.endswith(".jpg"):break server = video[2] if server=="Megavideo" or "Veoh": xbmctools.addnewvideo( __channel__ , "play" , category , server , title.strip().replace("(Megavideo)","").replace(" "," ") + " - " + videotitle , url1 , thumbnail , plot ) else: xbmctools.addnewvideo( __channel__ , "play" , category , server , title.strip().replace(server,"").replace(" "," ") + " - " + videotitle , url1 , thumbnail , plot ) # ------------------------------------------------------------------------------------ # ---- Extrae los videos directos ----- # Extrae los enlaces a los v�deos (Directo) patronvideos = "file: '([^']+)'" servidor = "Directo" extraevideos(patronvideos,data,category,title,thumbnail,plot,servidor) # --------------------------------------- # Extrae los enlaces a los v�deos (izlesene) patronvideos = 'http://www.izlesene.com/.+?video=([0-9]{7})' servidor = "izlesene" extraevideos(patronvideos,data,category,title,thumbnail,plot,servidor) # --- Extrae los videos de veoh ---- patronvideos = 'var embed_code[^>]+> <param name="movie" value="http://www.veoh.com/static/swf/webplayer/WebPlayer.swf.*?permalinkId=(.*?)&player=videodetailsembedded&videoAutoPlay=0&id=anonymous"></param>' servidor = "Veoh" extraevideos(patronvideos,data,category,title+" - Video en Veoh",thumbnail,plot,servidor) # --------------------------------------- #var embed_code = '<embed id="VideoPlayback" src="http://video.google.com/googleplayer.swf?docid=1447612366747092264&hl=en&fs=true" style="width:496px;height:401px" allowFullScreen="true" allowScriptAccess="always" type="application/x-shockwave-flash" wmode="window"> </embed>' ; # --- Extrae los videos de google ---- patronvideos = '<embed id="VideoPlayback" src="http://video.google.com/googleplayer.swf.*?docid=(.*?)&hl=en&' servidor = "Google" extraevideos(patronvideos,data,category,title+" - [Video en google]",thumbnail,plot,servidor) # --------------------------------------- # --- Extrae los videos de http://n59.stagevu.com ---- patronvideos = '"http://.*?.stagevu.com/v/.*?/(.*?).avi"' servidor = "Stagevu" extraevideos(patronvideos,data,category,title,thumbnail,plot,servidor) # --- Extrae los videos de dailymotion.com ---- patronvideos = 'value="http://www.dailymotion.com/([^"]+)"' servidor = "Dailymotion" extraevideos(patronvideos,data,category,title,thumbnail,plot,servidor) # --- Extrae los videos de vimeo.com ---- patronvideos = "http://vimeo.com.*?clip_id=([0-9]{8})" servidor = "Vimeo" extraevideos(patronvideos,data,category,title,thumbnail,plot,servidor) # --- Extrae los videos de yahoo.com ---- patronvideos = "http://.*?video.yahoo.com.*?id=([v0-9]{10})" servidor = "Yahoo" extraevideos(patronvideos,data,category,title,thumbnail,plot,servidor) # --Muestra Una opcion mas para videos documentales relacionados con el tema-- print "esta es la url :%s" %url try: patron = "http://www.sonolatino.com.*?\_(.*?)\.html" matches = re.compile(patron,re.DOTALL).findall(url) url = uri titulo = "Ver Videos Relacionados" xbmctools.addnewfolder( __channel__ , "Relacionados" , category , titulo , url , "" , "L�sta algunos videos relacionados con el mismo video musical" ) url = "http://www.sonolatino.com/ajax.php?p=detail&do=show_more_best&vid="+matches[0] titulo = "Ver Videos mas vistos" xbmctools.addnewfolder( __channel__ , "Relacionados" , category , titulo , url , "" , "L�sta algunos mas vistos relacionados con el video musical" ) titulo = "Ver Videos del mismo Artista" url = "http://www.sonolatino.com/ajax.php?p=detail&do=show_more_artist&vid="+matches[0] xbmctools.addnewfolder( __channel__ , "Relacionados" , category , titulo , url , "" , "L�sta algunos videos relacionados con el mismo Artista" ) except: pass patron = '<h1 class="h2_artistnuevo">([^<]+)</h1>' matches = re.compile(patron,re.DOTALL).findall(data) if len(matches)>0: xbmctools.addnewfolder( "trailertools" , "buscartrailer" , category , "[Buscar la cancion en Youtube:] "+matches[0] , title , os.path.join(IMAGES_PATH, 'youtube_logo.png') , "Busca el video en Youtube" ) try: artista = matches[0].split("-")[0].strip() xbmctools.addnewfolder( "trailertools" , "buscartrailer" , category , "[Buscar artista en Youtube:] "+artista , title , os.path.join(IMAGES_PATH, 'youtube_logo.png') , "Busca el video en Youtube" ) except: pass # Label (top-right)... xbmcplugin.setPluginCategory( handle=pluginhandle, category=category ) # Disable sorting... xbmcplugin.addSortMethod( handle=pluginhandle, sortMethod=xbmcplugin.SORT_METHOD_NONE ) # End of directory... xbmcplugin.endOfDirectory( handle=pluginhandle, succeeded=True )
def mainlist(params,url,category): logger.info("[sonolatino.py] mainlist") xbmctools.addnewfolder( __channel__ , "Videosnuevos" , category , "Videos Musicales - Nuevos" ,"http://www.sonolatino.com/newvideos.html","","") xbmctools.addnewfolder( __channel__ , "TipoVideo" , category , "Videos Musicales - Categorias" ,"","","") #xbmctools.addnewfolder( __channel__ , "tagvideos" , category , "Tag de Videos","http://www.sonolatino.com/index.html",os.path.join(IMAGES_PATH, 'tag.png'),"") xbmctools.addnewfolder( __channel__ , "topVideos" , category , "Top Videos Musicales Online" ,"http://www.sonolatino.com/topvideos.html","","") xbmctools.addnewfolder( __channel__ , "listatipoVideo", category , "Videos Musicales Siendo Vistas Ahora","http://www.sonolatino.com/index.html","","") xbmctools.addnewfolder( __channel__ , "Videodeldia" , category , "Video Musical del dia" ,"http://www.sonolatino.com/index.html","","") xbmctools.addnewfolder( __channel__ , "search" , category , "Buscar" ,"","","") #xbmctools.addnewfolder( __channel__ , "creartag" , category , "Crear la lista de categorias","http://www.sonolatino.com/",tecleadoultimo,os.path.join(IMAGES_PATH, 'search_icon.png'),"") # Label (top-right)... xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category=category ) # Disable sorting... xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE ) # End of directory... xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True )
def TipoVideo(params, url, category): logger.info("[sonolatino.py] TipoVideo") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Bachata","http://www.sonolatino.com/bachata","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Best Rock Songs","http://www.sonolatino.com/toprock","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Blues","http://www.sonolatino.com/blues","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Champeta","http://www.sonolatino.com/champeta","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Country Pop","http://www.sonolatino.com/countrypop","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Cumbia","http://www.sonolatino.com/cumbia","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Dance","http://www.sonolatino.com/dance","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Dance Punk","http://www.sonolatino.com/dancepunk","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Duranguense","http://www.sonolatino.com/duranguense","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Electro hop","http://www.sonolatino.com/electro-hop","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Electro pop","http://www.sonolatino.com/electropop","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Electronica","http://www.sonolatino.com/electronica","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Emo","http://www.sonolatino.com/emo","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Especiales","http://www.sonolatino.com/especiales","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Flamenco","http://www.sonolatino.com/flamenco","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Folklorica","http://www.sonolatino.com/folklorica","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Funk Rock","http://www.sonolatino.com/funkrock","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Grupera","http://www.sonolatino.com/grupera","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Grupos Nuevos","http://www.sonolatino.com/grupos-nuevos","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Hard rock","http://www.sonolatino.com/Hard-rock","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Hip Hop","http://www.sonolatino.com/hiphop","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "House","http://www.sonolatino.com/house","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Humor","http://www.sonolatino.com/humor","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Indie pop","http://www.sonolatino.com/indie-pop","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Indie Rock","http://www.sonolatino.com/indierock","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Jazz","http://www.sonolatino.com/jazz","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Merengue","http://www.sonolatino.com/merengue","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Merengue Urbano","http://www.sonolatino.com/merengue-urbano","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Metal","http://www.sonolatino.com/metal","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Modelos","http://www.sonolatino.com/modelos","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Neo Soul","http://www.sonolatino.com/neosoul","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "New Wave","http://www.sonolatino.com/newwave","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Norte�a","http://www.sonolatino.com/nortena","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Pop","http://www.sonolatino.com/pop","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Pop Punk","http://www.sonolatino.com/poppunk","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Pop Rap","http://www.sonolatino.com/poprap","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Pop Rock","http://www.sonolatino.com/poprock","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Post grunge","http://www.sonolatino.com/Post-grunge","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Post Hardcore","http://www.sonolatino.com/posthardcore","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Punk","http://www.sonolatino.com/punk","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "R'n'B","http://www.sonolatino.com/rnb","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Ranchera","http://www.sonolatino.com/ranchera","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Rap","http://www.sonolatino.com/rap","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Reggae Fusion","http://www.sonolatino.com/reggaefusion","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Reggaeton","http://www.sonolatino.com/reggaeton","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Rock & Alternative","http://www.sonolatino.com/rock","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Salsa","http://www.sonolatino.com/salsa","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Chicas","http://www.sonolatino.com/chicas","","") xbmctools.addnewfolder(__channel__ , "listatipoVideo" , category , "Chicos","http://www.sonolatino.com/chicos","","") # Label (top-right)... xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category=category ) # Disable sorting... xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE ) # End of directory... xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True )
def listatipoVideo(params,url,category): logger.info("[sonolatino.py] listatipodocumental") # busca tipo de listado por : FECHA | VISTAS | RATING # url = listarpor(params,url,category) if len(url)==0 : return # Descarga la p�gina data = scrapertools.cachePage(url) # Extrae las entradas (carpetas) if url == "http://www.sonolatino.com/index.html": patronvideos = '<li class="item">[^<]+<a href="([^"]+)"><img src="([^"]+)" alt="([^"]+)" class="imag".*?/></a>' cat = "viendose" else: patronvideos = '<li class="video">[^<]+<div class="video_i">[^<]+<a href="([^"]+)"' patronvideos += '>[^<]+<img src="([^"]+)" alt="([^"]+)".*?<span class="artist_name">([^<]+)</span>' cat = "tipo" matches = re.compile(patronvideos,re.DOTALL).findall(data) scrapertools.printMatches(matches) #logger.info("matches = "+matches[0]) scrapedplot = "" for match in matches: # Titulo scrapedtitle = scrapertools.unescape(match[2]) # URL scrapedurl = match[0] # Thumbnail scrapedthumbnail = match[1] # procesa el resto if cat == "tipo": scrapedplot = scrapertools.unescape(match[3]) else: for campo in re.findall("/(.*?)/",match[0]): scrapedplot = campo # Depuracion if (DEBUG): logger.info("scrapedtitle="+scrapedtitle) logger.info("scrapedurl="+scrapedurl) logger.info("scrapedthumbnail="+scrapedthumbnail) # A�ade al listado de XBMC xbmctools.addnewfolder( __channel__ , "detail" , category , scrapedtitle + " - " + scrapedplot , scrapedurl , scrapedthumbnail , scrapedplot ) # ------------------------------------------- # Busqueda de la siguiente pagina if cat == "tipo": patron_pagina_sgte = '</span><a href="([^"]+)"' paginasiguientes(patron_pagina_sgte,data,category,cat) # Label (top-right)... xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category=category ) # Disable sorting... xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE ) # End of directory... xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True )