def searchresults(params,Url,category):
	logger.info("[tupornotv.py] searchresults")
	
	buscador.salvar_busquedas(params,Url,category)
	url = "http://www.tuporno.tv/buscador/?str=%s" %Url
	itemlist = getsearchresults(params,url,category)
	xbmctools.renderItems(itemlist, params, url, category)
Exemplo n.º 2
0
def searchresults(params, Url, category):
    logger.info("[tupornotv.py] searchresults")

    buscador.salvar_busquedas(params, Url, category)
    url = "http://www.tuporno.tv/buscador/?str=%s" % Url
    itemlist = getsearchresults(params, url, category)
    xbmctools.renderItems(itemlist, params, url, category)
Exemplo n.º 3
0
def search(params, url, category):
    logger.info("[programastv.py] search")

    keyboard = xbmc.Keyboard('')
    keyboard.doModal()
    if (keyboard.isConfirmed()):
        tecleado = keyboard.getText()
        if len(tecleado) > 0:
            #convert to HTML
            tecleado = tecleado.replace(" ", "+")
            searchUrl = "http://programastvonline.blogspot.com/search?q=" + tecleado
            itemlist = []
            itemlist.append(
                Item(channel=CHANNELNAME,
                     title=tecleado,
                     action="parsear",
                     url="http://programastvonline.blogspot.com/search?q=" +
                     tecleado,
                     folder=True))

            #searchresults(params,searchUrl,category)
    xbmctools.renderItems(itemlist, params, url, category)
    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 search(params, url, category):
    logger.info("[programastv.py] search")

    keyboard = xbmc.Keyboard("")
    keyboard.doModal()
    if keyboard.isConfirmed():
        tecleado = keyboard.getText()
        if len(tecleado) > 0:
            # convert to HTML
            tecleado = tecleado.replace(" ", "+")
            searchUrl = "http://programastvonline.blogspot.com/search?q=" + tecleado
            itemlist = []
            itemlist.append(
                Item(
                    channel=CHANNELNAME,
                    title=tecleado,
                    action="parsear",
                    url="http://programastvonline.blogspot.com/search?q=" + tecleado,
                    folder=True,
                )
            )

            # searchresults(params,searchUrl,category)
    xbmctools.renderItems(itemlist, params, url, category)
    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 searchresults(params,tecleado,category):
	logger.info("[cinetube.py] searchresults")
	
	buscador.salvar_busquedas(params,tecleado,category)
	tecleado = tecleado.replace(" ", "+")
	url = "http://www.cinetube.es/buscar/peliculas/?palabra="+tecleado+"&categoria=&valoracion="
	itemlist = getsearchresults(params,url,category)
	xbmctools.renderItems(itemlist, params, url, category)
Exemplo n.º 6
0
def listfavorites(params, url, category):
    logger.info("[megalivewall.py] listfavorites")

    itemlist = getlistfavorites(params, url, category)
    if len(itemlist) > 0:
        xbmctools.renderItems(itemlist,
                              params,
                              url,
                              category,
                              isPlayable='true')
Exemplo n.º 7
0
def playByID(params, url, category):
    logger.info("[megalivewall.py] listchannel")

    itemlist = getplayByID(params, url, category)
    if len(itemlist) > 0:
        xbmctools.renderItems(itemlist,
                              params,
                              url,
                              category,
                              isPlayable='true')
Exemplo n.º 8
0
def detalle(params,url,category):
    logger.info("[a3.py] detalle")
    
    title = urllib.unquote_plus( params.get("title") )
    thumbnail = urllib.unquote_plus( params.get("thumbnail") )
    plot = urllib.unquote_plus( params.get("plot") )
    server = "directo"

    item = Item(channel=CHANNELNAME, title=title , url=url, thumbnail=thumbnail , plot=plot , server=server , folder=True)
    itemlist = channel.detalle( item )
    xbmctools.renderItems(itemlist, params, url, category)
Exemplo n.º 9
0
def listfavorites(params,url,category):
	logger.info("[megalivewall.py] listfavorites")
	
	itemlist = getlistfavorites(params,url,category)
	if len(itemlist)>0:
		xbmctools.renderItems(itemlist, params, url, category,isPlayable='true')
Exemplo n.º 10
0
def listcategory(params, url, category):
    logger.info("[megalivewall.py] listcategory")

    itemlist = getlistcategory(params, url, category)
    xbmctools.renderItems(itemlist, params, url, category)
Exemplo n.º 11
0
def listWall(params, url, category):
    logger.info("[megalivewall.py] listWall")

    itemlist = getlistWall(params, url, category)
    xbmctools.renderItems(itemlist, params, url, category, isPlayable='true')
Exemplo n.º 12
0
def novedades(params,url,category):
    logger.info("[myhentaitube.py] novedades")

    itemlist = getnovedades(params,url,category)
    xbmctools.renderItems(itemlist, params, url, category)
def novedades(params,url,category):
	logger.info("[tupornotv.py] novedades")

	itemlist = getnovedades(params,url,category)
	xbmctools.renderItems(itemlist, params, url, category)
Exemplo n.º 14
0
def categorias(params, url, category):
    logger.info("[tupornotv.py] categorias")

    itemlist = getcategorias(params, url, category)
    xbmctools.renderItems(itemlist, params, url, category)
Exemplo n.º 15
0
def nextsearchpage(params, url, category):
    logger.info("[tupornotv.py] nextsearchpage")

    itemlist = getsearchresults(params, url, category)
    xbmctools.renderItems(itemlist, params, url, category)
Exemplo n.º 16
0
def novedades(params, url, category):
    logger.info("[tupornotv.py] novedades")

    itemlist = getnovedades(params, url, category)
    xbmctools.renderItems(itemlist, params, url, category)
def mainlist(params,url,category):
	logger.info("[letmewatchthis.py] mainlist")
	
	itemlist = getmainlist(params,url,category)
	xbmctools.renderItems(itemlist, params, url, category)
Exemplo n.º 18
0
def parsear(params, url, category):
    logger.info("[programastv.py] parsear")

    itemlist = parse(params, url, category)
    xbmctools.renderItems(itemlist, params, url, category)
Exemplo n.º 19
0
def searchvideos(params, url, category):
    logger.info("[programastv.py] parse")

    # ------------------------------------------------------
    # Descarga la página
    # ------------------------------------------------------
    data = scrapertools.cachePage(url)
    #logger.info(data)
    # ------------------------------------------------------
    # Extrae las entradas
    # ------------------------------------------------------
    #quitamos a partir de los comentarios
    data = data[0:data.index('class=\'post-footer\'>')]
    videos = servertools.findvideos(data)

    #xbmc.output( videos[0][2] + " es 02")
    #xbmc.output( videos[1][2] + " es 12")
    #TODO extract plot y thumbnail
    if len(videos) > 0:
        if (videos[0][2] == "Megavideo") and (videos[1][2] == "Megaupload"):
            xbmc.output("asumimos que solo hay un video con dos mirrors")
            patronvideos = 'class=\'post-title entry-title\'>.+?<a href=\'.+?\'>(.+?)</a>'
            matches = re.compile(patronvideos, re.DOTALL).findall(data)
            xbmc.output(matches[0])
            xbmctools.addnewvideo(CHANNELNAME, "play", category, "Megavideo",
                                  matches[0], videos[0][1], "", "")
            xbmctools.addnewvideo(CHANNELNAME, "play", category, "Megaupload",
                                  matches[0], videos[1][1], "", "")
        elif len(videos) == 1:
            if re.search('&amp;xtp=(.+?)_VIDEO', videos[0][1]):
                patronvideos = '&amp;xtp=(.+?)_VIDEO'
                matches = re.compile(patronvideos, re.DOTALL).findall(data)
                videos[0][1] = matches[0]
            xbmc.output("aqui estamos")
            patronvideos = 'class=\'post-title entry-title\'>.+?<a href=\'.+?\'>(.+?)</a>'
            matches = re.compile(patronvideos, re.DOTALL).findall(data)
            xbmctools.addnewvideo(CHANNELNAME, "play", category, videos[0][2],
                                  matches[0], videos[0][1], "", "")
        else:
            xbmc.output("hay mas de 1 video")
            for video in videos:
                if video[2].find("youtube") != -1:
                    continue
                #xbmc.output(video[2] + video[1] + " 2 + 1")
                indexvideo = data.index(video[1])
                #xbmc.output(str(indexvideo))
                #if (video[2]=="Megaupload"):
                #    #xbmc.output(str(indexvideo))
                #    indexvideo=data.rindex(">-",0,indexvideo)
                #    #xbmc.output(str(indexvideo))
                indexvideo1 = data.rindex(">-", 0, indexvideo)
                #xbmc.output(str(indexvideo1))
                indexvideo2 = data.rindex(">-", 0, indexvideo1)
                #xbmc.output(str(indexvideo2))
                #xbmc.output(data[indexvideo2+1:indexvideo1])
                nombre = re.sub('<.+?>', '',
                                data[indexvideo2 + 3:indexvideo1 - 5])
                while re.search('egaupl', nombre) or re.search(
                        'egavid', nombre):
                    indexvideo3 = data.rindex(">-", 0, indexvideo2)
                    nombre = re.sub('<.+?>', '',
                                    data[indexvideo3 + 3:indexvideo2 - 5])
                    indexvideo2 = indexvideo3
                xbmctools.addnewvideo(CHANNELNAME, "play", category, video[2],
                                      nombre + " " + video[2], video[1], "",
                                      "")
    else:
        xbmc.output("es un listado")
        #xbmc.output(data)
        data = data[data.index('class=\'post-header-line-1\'') + 33:]
        #xbmc.output(data)
        xbmc.output("aqui llego")

        p = MyParser()
        p.feed(data)
        p.close()
        itemlist = []
        for k, v in p.anchors.items():
            print k, "=>", v

            if re.search('programastvonline.blogspot.com', v[0]):
                itemlist.append(
                    Item(channel=CHANNELNAME,
                         title=k,
                         action="parsear",
                         url=v[0],
                         folder=True))
        xbmctools.renderItems(itemlist, params, url, category)

        #'egaupl', nombre)

        #myparser=MyParser(data)
        #myparser.parse(data)
        #links = myparser.get_hyperlinks()   # get the hyperlinks list
        #xbmc.output(str(len(links)))   # print all the links
        #descriptions = myparser.get_descriptions()   # get the hyperlinks list
        #xbmc.output("b",descriptions)   # print all the links
        #xbmc.output("aqui llego 1")
        #post-header-line-1
        #format = formatter.NullFormatter()           # create default formatter
        #htmlparser = LinksExtractor(format)        # create new parser object


#        for video in listavideos:
#            videotitle = video[0]
#            scrapedurl = video[1]
#            server = video[2]
#            xbmctools.addnewvideo( CHANNELNAME , "play" , category , server , title.strip()+" "+match[1]+" "+match[2]+" "+videotitle , scrapedurl , thumbnail , plot )

# ------------------------------------------------------------------------------------
# Busca los enlaces a los videos
# ------------------------------------------------------------------------------------

# ------------------------------------------------------------------------------------

# 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)
Exemplo n.º 20
0
def secciones(params, url, category):
    logger.info("[programastv.py] seccions")

    itemlist = getsecciones(params, url, category)
    xbmctools.renderItems(itemlist, params, url, category)
def listpeliconcaratula(params,url,category):
	logger.info("[cinetube.py] listpeliconcaratula")

	itemlist = getlistpeliconcaratula(params,url,category)
	xbmctools.renderItems(itemlist, params, url, category)
def run():
    logger.info("[pelisalacarta.py] run")
    
    # Verifica si el path de usuario del plugin está creado
    if not os.path.exists(config.DATA_PATH):
        logger.debug("[pelisalacarta.py] Path de usuario no existe, se crea: "+config.DATA_PATH)
        os.mkdir(config.DATA_PATH)

    # Imprime en el log los parámetros de entrada
    logger.info("[pelisalacarta.py] sys.argv=%s" % str(sys.argv))
    
    # Crea el diccionario de parametros
    params = dict()
    if len(sys.argv)>=2 and len(sys.argv[2])>0:
        params = dict(part.split('=') for part in sys.argv[ 2 ][ 1: ].split('&'))
    logger.info("[pelisalacarta.py] params=%s" % str(params))
    
    # Extrae la url de la página
    if (params.has_key("url")):
        url = urllib.unquote_plus( params.get("url") )
    else:
        url=''

    # Extrae la accion
    if (params.has_key("action")):
        action = params.get("action")
    else:
        action = "selectchannel"

    # Extrae el server
    if (params.has_key("server")):
        server = params.get("server")
    else:
        server = ""

    # Extrae la categoria
    if (params.has_key("category")):
        category = urllib.unquote_plus( params.get("category") )
    else:
        if params.has_key("channel"):
            category = params.get("channel")
        else:
            category = ""

    # Extrae la serie
    if (params.has_key("Serie")):
        serie = params.get("Serie")
    else:
        serie = ""
    logger.info("[pelisalacarta.py] url="+url+", action="+action+", server="+server+", category="+category+", serie="+serie)

    #JUR - Gestión de Errores de Internet (Para que no casque el plugin 
    #      si no hay internet (que queda feo)
    try:

        # Accion por defecto - elegir canal
        if ( action=="selectchannel" ):
            import channelselector as plugin
            plugin.mainlist(params, url, category)

        # Actualizar version
        elif ( action=="update" ):
            try:
                import updater
                updater.update(params)
            except ImportError:
                logger.info("[pelisalacarta.py] Actualizacion automática desactivada")
                
            import channelselector as plugin
            plugin.mainlist(params, url, category)

        # Reproducir un STRM
        elif (action=="strm"):
            import xbmctools
            xbmctools.playstrm(params, url, category)

        # El resto de acciones vienen en el parámetro "action", y el canal en el parámetro "channel"
        else:

            # Actualiza el canal si ha cambiado    
            if action=="mainlist" and config.getSetting("updatechannels")=="true":
                try:
                    import updater
                    actualizado = updater.updatechannel(params.get("channel"))
    
                    if actualizado:
                        import xbmcgui
                        advertencia = xbmcgui.Dialog()
                        advertencia.ok("pelisalacarta",params.get("channel"),config.getLocalizedString(30063))
                except:
                    logger.info("Actualización de canales desactivada")

            # Ejecuta el canal
            exec "import "+params.get("channel")+" as channel"
            generico = False
            try:
                generico = channel.isGeneric()
            except:
                generico = False

            print "generico=" , generico 
            
            # Es un canal específico de xbmc
            if not generico:
                exec "channel."+action+"(params, url, category)"
            
            # Es un canal genérico
            else:
                if params.has_key("title"):
                    title = urllib.unquote_plus( params.get("title") )
                else:
                    title = ""
                if params.has_key("thumbnail"):
                    thumbnail = urllib.unquote_plus( params.get("thumbnail") )
                else:
                    thumbnail = ""
                if params.has_key("plot"):
                    plot = urllib.unquote_plus( params.get("plot") )
                else:
                    plot = ""
                if params.has_key("server"):
                    server = urllib.unquote_plus( params.get("server") )
                else:
                    server = "directo"
            
                import xbmctools
                if action=="play":
                    xbmctools.playvideo(params.get("channel"),server,url,category,title,thumbnail,plot)
                else:
                    from item import Item
                    item = Item(channel=params.get("channel"), title=title , url=url, thumbnail=thumbnail , plot=plot , server=server)
        
                    if action!="findvideos":
                        exec "itemlist = channel."+action+"(item)"
                    else:
                        # Intenta ejecutar una posible funcion "findvideos" del canal
                        try:
                            exec "itemlist = channel."+action+"(item)"
                        # Si no funciona, lanza el método genérico para detectar vídeos
                        except:
                            itemlist = findvideos(item)

                    xbmctools.renderItems(itemlist, params, url, category)
    
    except urllib2.URLError,e:
        for line in sys.exc_info():
            logger.error( "%s" % line )
        import xbmcgui
        ventana_error = xbmcgui.Dialog()
        # Agarra los errores surgidos localmente enviados por las librerias internas
        if hasattr(e, 'reason'):
            logger.info("Razon del error, codigo: %d , Razon: %s" %(e.reason[0],e.reason[1]))
            texto = config.getLocalizedString(30050) # "No se puede conectar con el sitio web"
            ok = ventana_error.ok ("pelisalacarta", texto)
        # Agarra los errores con codigo de respuesta del servidor externo solicitado     
        elif hasattr(e,'code'):
            logger.info("codigo de error HTTP : %d" %e.code)
            texto = (config.getLocalizedString(30051) % e.code) # "El sitio web no funciona correctamente (error http %d)"
            ok = ventana_error.ok ("pelisalacarta", texto)    
        else:
            pass
Exemplo n.º 23
0
def listchannel(params,url,category):
	logger.info("[megalivewall.py] listchannel")
	
	itemlist = getlistchannel(params,url,category)
	xbmctools.renderItems(itemlist, params, url, category,isPlayable='true')
Exemplo n.º 24
0
def run():
    logger.info("[launcher.py] run")

    # Extract parameters from sys.argv
    params, channel_name, title, fulltitle, url, thumbnail, plot, action, server, extra, subtitle, category, show, password = extract_parameters(
    )
    logger.info(
        "[launcher.py] channel_name=%s, title=%s, fulltitle=%s, url=%s, thumbnail=%s, plot=%s, action=%s, server=%s, extra=%s, subtitle=%s, category=%s, show=%s, password=%s"
        % (channel_name, title, fulltitle, url, thumbnail, plot, action,
           server, extra, subtitle, category, show, password))

    from core.item import Item
    item = Item(channel=channel_name,
                title=title,
                fulltitle=fulltitle,
                url=url,
                thumbnail=thumbnail,
                plot=plot,
                server=server,
                category=category,
                extra=extra,
                subtitle=subtitle,
                show=show,
                password=password)

    try:
        # Actualizar version
        if (action == "configuracion"):
            logger.info("[launcher.py] configuracion")
            config.open_settings()

        elif (action == "vacio"):
            logger.info("[launcher.py] vacio")

        elif action == "play":
            import channel
            generico = True
            itemlist = channel.play(item)
            if len(itemlist) == 0:
                return
            item = itemlist[0]

            if item.url.lower().endswith(".jpg") or item.url.lower().endswith(
                    ".png"):
                import os
                slideshowpath = os.path.join(config.get_data_path(),
                                             "slideshow")
                if not os.path.exists(slideshowpath):
                    try:
                        os.mkdir(slideshowpath)
                    except:
                        pass

                urllib.urlretrieve(item.url,
                                   os.path.join(slideshowpath, "temp.jpg"))
                import xbmc
                xbmc.executebuiltin("SlideShow(" + slideshowpath + ")")
            else:
                import xbmcplugin, xbmcgui, xbmc, xbmcaddon, sys
                xlistitem = xbmcgui.ListItem(item.title,
                                             iconImage="DefaultVideo.png",
                                             thumbnailImage=item.thumbnail,
                                             path=item.url)
                xlistitem.setInfo("video", {
                    "Title": item.title,
                    "Plot": item.plot,
                    "Genre": item.category
                })

                #xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, xbmcgui.ListItem(path=item.url))

                # Añadimos el listitem a una lista de reproducción (playlist)
                playlist = xbmc.PlayList(xbmc.PLAYLIST_VIDEO)
                playlist.clear()
                playlist.add(item.url, xlistitem)

                # Reproduce
                xbmcPlayer = xbmc.Player(xbmc.PLAYER_CORE_AUTO)
                xbmcPlayer.play(playlist)

        else:
            import channel
            generico = True

            if action == "search":
                logger.info("[launcher.py] search")
                import xbmc
                keyboard = xbmc.Keyboard("")
                keyboard.doModal()
                if (keyboard.isConfirmed()):
                    tecleado = keyboard.getText()
                    tecleado = tecleado.replace(" ", "+")
                    itemlist = channel.search(item, tecleado)
                else:
                    itemlist = []

            else:
                exec "itemlist = channel." + action + "(item)"

            # Activa el modo biblioteca
            #import xbmcplugin
            #import sys
            #handle = sys.argv[1]
            #xbmcplugin.setContent(int( handle ),"movies")

            # Añade los items a la lista de XBMC

            import xbmctools
            xbmctools.renderItems(itemlist, params, url, category)

    except urllib2.URLError, e:
        import sys
        for line in sys.exc_info():
            logger.error("%s" % line)
        import xbmcgui
        ventana_error = xbmcgui.Dialog()
        # Agarra los errores surgidos localmente enviados por las librerias internas
        if hasattr(e, 'reason'):
            logger.info("Razon del error, codigo: %d , Razon: %s" %
                        (e.reason[0], e.reason[1]))
            texto = "No se puede conectar con el sitio web"
            ok = ventana_error.ok("plugin", texto)
        # Agarra los errores con codigo de respuesta del servidor externo solicitado
        elif hasattr(e, 'code'):
            logger.info("codigo de error HTTP : %d" % e.code)
            texto = ("El sitio web no funciona correctamente (error http %d)" %
                     e.code)
            ok = ventana_error.ok("plugin", texto)
Exemplo n.º 25
0
def playByID(params,url,category):
	logger.info("[megalivewall.py] listchannel")
	
	itemlist = getplayByID(params,url,category)
	if len(itemlist)>0:
		xbmctools.renderItems(itemlist, params, url, category,isPlayable='true')	
Exemplo n.º 26
0
def mainlist(params,url,category):
    logger.info("[a3.py] mainlist")
    
    itemlist = channel.mainlist()
    xbmctools.renderItems(itemlist, params, url, category)
Exemplo n.º 27
0
def mainlist(params, url, category):
    logger.info("[megalivewall.py] mainlist")

    itemlist = getmainlist(params, url, category)
    xbmctools.renderItems(itemlist, params, url, category)
Exemplo n.º 28
0
def run():
    logger.info("[launcher.py] run")
    
    # Extract parameters from sys.argv
    params, channel_name, title, fulltitle, url, thumbnail, plot, action, server, extra, subtitle, category, show, password = extract_parameters()
    logger.info("[launcher.py] channel_name=%s, title=%s, fulltitle=%s, url=%s, thumbnail=%s, plot=%s, action=%s, server=%s, extra=%s, subtitle=%s, category=%s, show=%s, password=%s" % (channel_name, title, fulltitle, url, thumbnail, plot, action, server, extra, subtitle, category, show, password))

    from core.item import Item
    item = Item(channel=channel_name, title=title , fulltitle=fulltitle, url=url, thumbnail=thumbnail , plot=plot , server=server, category=category, extra=extra, subtitle=subtitle, show=show, password=password)

    try:
        # Actualizar version
        if ( action=="configuracion" ):
            logger.info("[launcher.py] configuracion")
            config.open_settings( )

        elif ( action=="vacio" ):
            logger.info("[launcher.py] vacio")

        elif action=="play":
            import channel
            generico = True
            itemlist = channel.play(item)
            if len(itemlist)==0:
                return
            elif len(itemlist)==1:

                item = itemlist[0]

                if item.url.lower().endswith(".jpg") or item.url.lower().endswith(".png"):
                    import os
                    slideshowpath = os.path.join(config.get_data_path(),"slideshow")
                    if not os.path.exists(slideshowpath):
                        try:
                            os.mkdir(slideshowpath)
                        except:
                            pass

                    urllib.urlretrieve(item.url, os.path.join(slideshowpath,"temp.jpg"))
                    import xbmc
                    xbmc.executebuiltin( "SlideShow("+slideshowpath+")" )
                else:
                    import xbmcplugin,xbmcgui,xbmc,xbmcaddon,sys
                    xlistitem = xbmcgui.ListItem( item.title, iconImage="DefaultVideo.png", thumbnailImage=item.thumbnail, path=item.url)
                    xlistitem.setInfo( "video", { "Title": item.title, "Plot" : item.plot , "Genre" : item.category } )

                    #xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, xbmcgui.ListItem(path=item.url))

                    # Añadimos el listitem a una lista de reproducción (playlist)
                    playlist = xbmc.PlayList( xbmc.PLAYLIST_VIDEO )
                    playlist.clear()
                    playlist.add( item.url, xlistitem )

                    # Reproduce
                    xbmcPlayer = xbmc.Player()
                    xbmcPlayer.play(playlist)

                return

        # if other action
        # OR
        # len(itemlist)>1 for action=="play":

        import channel
        generico = True

        if action=="search":
            logger.info("[launcher.py] search")
            import xbmc
            keyboard = xbmc.Keyboard("")
            keyboard.doModal()
            if (keyboard.isConfirmed()):
                tecleado = keyboard.getText()
                tecleado = tecleado.replace(" ", "+")
                itemlist = channel.search(item,tecleado)
            else:
                itemlist = []

        else:
            exec "itemlist = channel."+action+"(item)"

        # Activa el modo biblioteca
        #import xbmcplugin
        #import sys
        #handle = sys.argv[1]
        #xbmcplugin.setContent(int( handle ),"movies")

        # Añade los items a la lista de XBMC

        import xbmctools
        xbmctools.renderItems(itemlist, params, url, category)

    except urllib2.URLError,e:
        import sys
        for line in sys.exc_info():
            logger.error( "%s" % line )
        import xbmcgui
        ventana_error = xbmcgui.Dialog()
        # Agarra los errores surgidos localmente enviados por las librerias internas
        if hasattr(e, 'reason'):
            logger.info("Razon del error, codigo: %d , Razon: %s" %(e.code,e.reason))
            texto = "No se puede conectar con el sitio web"
            ok = ventana_error.ok ("plugin", texto)
        # Agarra los errores con codigo de respuesta del servidor externo solicitado     
        elif hasattr(e,'code'):
            logger.info("codigo de error HTTP : %d" %e.code)
            texto = ("El sitio web no funciona correctamente (error http %d)" % e.code)
            ok = ventana_error.ok ("plugin", texto)    
Exemplo n.º 29
0
def masVotados(params, url, category):
    logger.info("[tupornotv.py] masVotadas")

    itemlist = getmasVotados(params, url, category)
    xbmctools.renderItems(itemlist, params, url, category)
Exemplo n.º 30
0
def mainlist(params,url,category):
    logger.info("[myhentaitube.py] mainlist")
    
    itemlist = getmainlist(params,url,category)
    xbmctools.renderItems(itemlist, params, url, category)
Exemplo n.º 31
0
def run():
	logger.info("[GreekTV.py] run")
	
	# Verifica si el path de usuario del plugin est� creado
	if not os.path.exists(config.DATA_PATH):
		logger.debug("[GreekTV.py] Path de usuario no existe, se crea: "+config.DATA_PATH)
		os.mkdir(config.DATA_PATH)

	# Imprime en el log los par�metros de entrada
	logger.info("[GreekTV.py] sys.argv=%s" % str(sys.argv))
	
	# Crea el diccionario de parametros
	params = dict()
	if len(sys.argv)>=2 and len(sys.argv[2])>0:
		params = dict(part.split('=') for part in sys.argv[ 2 ][ 1: ].split('&'))
	logger.info("[GreekTV.py] params=%s" % str(params))
	
	# Extrae la url de la p�gina
	if (params.has_key("url")):
		url = urllib.unquote_plus( params.get("url") )
	else:
		url=''

	# Extrae la accion
	if (params.has_key("action")):
		action = params.get("action")
	else:
		action = "selectchannel"

	# Extrae el server
	if (params.has_key("server")):
		server = params.get("server")
	else:
		server = ""

	# Extrae la categoria
	if (params.has_key("category")):
		category = urllib.unquote_plus( params.get("category") )
	else:
		if params.has_key("channel"):
			category = params.get("channel")
		else:
			category = ""


	try:
		# Accion por defecto - elegir canal
		if ( action=="selectchannel" ):
			import channelselector as plugin
			plugin.listchannels(params, url, category)
		# Actualizar version
		elif ( action=="update" ):
			import updater
			updater.update(params)
			import channelselector as plugin
			plugin.listchannels(params, url, category)
		# El resto de acciones vienen en el par�metro "action", y el canal en el par�metro "channel"
		else:
			exec "import "+params.get("channel")+" as channel"
			generico = False
			try:
				generico = channel.isGeneric()
			except:
				generico = False

			print "generico=" , generico 
			
			if not generico:
				exec "channel."+action+"(params, url, category)"
			else:
				if params.has_key("title"):
					title = urllib.unquote_plus( params.get("title") )
				else:
					title = ""
				if params.has_key("thumbnail"):
					thumbnail = urllib.unquote_plus( params.get("thumbnail") )
				else:
					thumbnail = ""
				if params.has_key("plot"):
					plot = urllib.unquote_plus( params.get("plot") )
				else:
					plot = ""
				if params.has_key("server"):
					server = urllib.unquote_plus( params.get("server") )
				else:
					server = "directo"
			
				import xbmctools
				if action=="play":
					xbmctools.playvideo(params.get("channel"),server,url,category,title,thumbnail,plot)
				else:
					from item import Item
					item = Item(channel=params.get("channel"), title=title , url=url, thumbnail=thumbnail , plot=plot , server=server)
		
					exec "itemlist = channel."+action+"(item)"
					xbmctools.renderItems(itemlist, params, url, category)

	except urllib2.URLError,e:
		ventana_error = xbmcgui.Dialog()
		# Agarra los errores surgidos localmente enviados por las librerias internas
		if hasattr(e, 'reason'):
			logger.info("Razon del error, codigo: %d , Razon: %s" %(e.reason[0],e.reason[1]))
			texto = config.getLocalizedString(30050) # "No se puede conectar con el sitio web"
			ok = ventana_error.ok ("pelisalacarta", texto)
		# Agarra los errores con codigo de respuesta del servidor externo solicitado 	
		elif hasattr(e,'code'):
			logger.info("codigo de error HTTP : %d" %e.code)
			texto = (config.getLocalizedString(30051) % e.code) # "El sitio web no funciona correctamente (error http %d)"
			ok = ventana_error.ok ("pelisalacarta", texto)	
		else:
			pass
def secciones(params, url, category):
    logger.info("[programastv.py] seccions")

    itemlist = getsecciones(params, url, category)
    xbmctools.renderItems(itemlist, params, url, category)
def series(params,url,category):
	logger.info("[letmewatchthis.py] series")

	itemlist = getpeliculas(params,url,category)
	xbmctools.renderItems(itemlist, params, url, category)
def parsear(params, url, category):
    logger.info("[programastv.py] parsear")

    itemlist = parse(params, url, category)
    xbmctools.renderItems(itemlist, params, url, category)
Exemplo n.º 35
0
def run():
    logger.info("[pelisalacarta.py] run")

    # Verifica si el path de usuario del plugin está creado
    if not os.path.exists(config.DATA_PATH):
        logger.debug(
            "[pelisalacarta.py] Path de usuario no existe, se crea: " +
            config.DATA_PATH)
        os.mkdir(config.DATA_PATH)

    # Imprime en el log los parámetros de entrada
    logger.info("[pelisalacarta.py] sys.argv=%s" % str(sys.argv))

    # Crea el diccionario de parametros
    params = dict()
    if len(sys.argv) >= 2 and len(sys.argv[2]) > 0:
        params = dict(part.split('=') for part in sys.argv[2][1:].split('&'))
    logger.info("[pelisalacarta.py] params=%s" % str(params))

    # Extrae la url de la página
    if (params.has_key("url")):
        url = urllib.unquote_plus(params.get("url"))
    else:
        url = ''

    # Extrae la accion
    if (params.has_key("action")):
        action = params.get("action")
    else:
        action = "selectchannel"

    # Extrae el server
    if (params.has_key("server")):
        server = params.get("server")
    else:
        server = ""

    # Extrae la categoria
    if (params.has_key("category")):
        category = urllib.unquote_plus(params.get("category"))
    else:
        if params.has_key("channel"):
            category = params.get("channel")
        else:
            category = ""

    # Extrae la serie
    if (params.has_key("Serie")):
        serie = params.get("Serie")
    else:
        serie = ""
    logger.info("[pelisalacarta.py] url=" + url + ", action=" + action +
                ", server=" + server + ", category=" + category + ", serie=" +
                serie)

    #JUR - Gestión de Errores de Internet (Para que no casque el plugin
    #      si no hay internet (que queda feo)
    try:

        # Accion por defecto - elegir canal
        if (action == "selectchannel"):
            import channelselector as plugin
            plugin.mainlist(params, url, category)

        # Actualizar version
        elif (action == "update"):
            try:
                import updater
                updater.update(params)
            except ImportError:
                logger.info(
                    "[pelisalacarta.py] Actualizacion automática desactivada")

            import channelselector as plugin
            plugin.mainlist(params, url, category)

        # Reproducir un STRM
        elif (action == "strm"):
            import xbmctools
            xbmctools.playstrm(params, url, category)

        # El resto de acciones vienen en el parámetro "action", y el canal en el parámetro "channel"
        else:

            # Actualiza el canal si ha cambiado
            if action == "mainlist" and config.getSetting(
                    "updatechannels") == "true":
                try:
                    import updater
                    actualizado = updater.updatechannel(params.get("channel"))

                    if actualizado:
                        import xbmcgui
                        advertencia = xbmcgui.Dialog()
                        advertencia.ok("pelisalacarta", params.get("channel"),
                                       config.getLocalizedString(30063))
                except:
                    for line in sys.exc_info():
                        logger.error("%s" % line)
                    logger.info("Actualización de canales desactivada")

            # Ejecuta el canal
            exec "import " + params.get("channel") + " as channel"
            generico = False
            try:
                generico = channel.isGeneric()
            except:
                generico = False

            print "generico=", generico

            # Es un canal específico de xbmc
            if not generico:
                exec "channel." + action + "(params, url, category)"

            # Es un canal genérico
            else:
                if params.has_key("title"):
                    title = urllib.unquote_plus(params.get("title"))
                else:
                    title = ""
                if params.has_key("thumbnail"):
                    thumbnail = urllib.unquote_plus(params.get("thumbnail"))
                else:
                    thumbnail = ""
                if params.has_key("plot"):
                    plot = urllib.unquote_plus(params.get("plot"))
                else:
                    plot = ""
                if params.has_key("server"):
                    server = urllib.unquote_plus(params.get("server"))
                else:
                    server = "directo"
                if params.has_key("extradata"):
                    extradata = urllib.unquote_plus(params.get("extradata"))
                else:
                    extradata = ""
                if params.has_key("category"):
                    category = urllib.unquote_plus(params.get("category"))
                else:
                    category = ""
                if params.has_key("Serie"):
                    Serie = urllib.unquote_plus(params.get("Serie"))
                else:
                    Serie = ""

                import xbmctools
                if action == "play":
                    xbmctools.playvideo(params.get("channel"), server, url,
                                        category, title, thumbnail, plot)
                else:
                    from item import Item
                    item = Item(channel=params.get("channel"),
                                title=title,
                                url=url,
                                thumbnail=thumbnail,
                                plot=plot,
                                server=server,
                                category=category,
                                extra=extradata)

                    if action != "findvideos":
                        exec "itemlist = channel." + action + "(item)"
                    else:
                        # Intenta ejecutar una posible funcion "findvideos" del canal
                        try:
                            exec "itemlist = channel." + action + "(item)"
                        # Si no funciona, lanza el método genérico para detectar vídeos
                        except:
                            itemlist = findvideos(item)

                    xbmctools.renderItems(itemlist, params, url, category)

    except urllib2.URLError, e:
        for line in sys.exc_info():
            logger.error("%s" % line)
        import xbmcgui
        ventana_error = xbmcgui.Dialog()
        # Agarra los errores surgidos localmente enviados por las librerias internas
        if hasattr(e, 'reason'):
            logger.info("Razon del error, codigo: %d , Razon: %s" %
                        (e.reason[0], e.reason[1]))
            texto = config.getLocalizedString(
                30050)  # "No se puede conectar con el sitio web"
            ok = ventana_error.ok("pelisalacarta", texto)
        # Agarra los errores con codigo de respuesta del servidor externo solicitado
        elif hasattr(e, 'code'):
            logger.info("codigo de error HTTP : %d" % e.code)
            texto = (
                config.getLocalizedString(30051) % e.code
            )  # "El sitio web no funciona correctamente (error http %d)"
            ok = ventana_error.ok("pelisalacarta", texto)
        else:
            pass
def searchvideos(params, url, category):
    logger.info("[programastv.py] parse")

    # ------------------------------------------------------
    # Descarga la página
    # ------------------------------------------------------
    data = scrapertools.cachePage(url)
    # logger.info(data)
    # ------------------------------------------------------
    # Extrae las entradas
    # ------------------------------------------------------
    # quitamos a partir de los comentarios
    data = data[0 : data.index("class='post-footer'>")]
    videos = servertools.findvideos(data)

    # xbmc.output( videos[0][2] + " es 02")
    # xbmc.output( videos[1][2] + " es 12")
    # TODO extract plot y thumbnail
    if len(videos) > 0:
        if (videos[0][2] == "Megavideo") and (videos[1][2] == "Megaupload"):
            xbmc.output("asumimos que solo hay un video con dos mirrors")
            patronvideos = "class='post-title entry-title'>.+?<a href='.+?'>(.+?)</a>"
            matches = re.compile(patronvideos, re.DOTALL).findall(data)
            xbmc.output(matches[0])
            xbmctools.addnewvideo(CHANNELNAME, "play", category, "Megavideo", matches[0], videos[0][1], "", "")
            xbmctools.addnewvideo(CHANNELNAME, "play", category, "Megaupload", matches[0], videos[1][1], "", "")
        elif len(videos) == 1:
            if re.search("&amp;xtp=(.+?)_VIDEO", videos[0][1]):
                patronvideos = "&amp;xtp=(.+?)_VIDEO"
                matches = re.compile(patronvideos, re.DOTALL).findall(data)
                videos[0][1] = matches[0]
            xbmc.output("aqui estamos")
            patronvideos = "class='post-title entry-title'>.+?<a href='.+?'>(.+?)</a>"
            matches = re.compile(patronvideos, re.DOTALL).findall(data)
            xbmctools.addnewvideo(CHANNELNAME, "play", category, videos[0][2], matches[0], videos[0][1], "", "")
        else:
            xbmc.output("hay mas de 1 video")
            for video in videos:
                xbmc.output(video[2] + video[1])
                indexvideo = data.index(video[1])
                # xbmc.output(str(indexvideo))
                # if (video[2]=="Megaupload"):
                #    #xbmc.output(str(indexvideo))
                #    indexvideo=data.rindex(">-",0,indexvideo)
                #    #xbmc.output(str(indexvideo))
                indexvideo1 = data.rindex(">-", 0, indexvideo)
                # xbmc.output(str(indexvideo1))
                indexvideo2 = data.rindex(">-", 0, indexvideo1)
                # xbmc.output(str(indexvideo2))
                # xbmc.output(data[indexvideo2+1:indexvideo1])
                nombre = re.sub("<.+?>", "", data[indexvideo2 + 3 : indexvideo1 - 5])
                while re.search("egaupl", nombre) or re.search("egavid", nombre):
                    indexvideo3 = data.rindex(">-", 0, indexvideo2)
                    nombre = re.sub("<.+?>", "", data[indexvideo3 + 3 : indexvideo2 - 5])
                    indexvideo2 = indexvideo3
                xbmctools.addnewvideo(
                    CHANNELNAME, "play", category, video[2], nombre + " " + video[2], video[1], "", ""
                )
    else:
        xbmc.output("es un listado")
        # xbmc.output(data)
        data = data[data.index("class='post-header-line-1'") + 33 :]
        # xbmc.output(data)
        xbmc.output("aqui llego")

        p = MyParser()
        p.feed(data)
        p.close()
        itemlist = []
        for k, v in p.anchors.items():
            print k, "=>", v

            if re.search("programastvonline.blogspot.com", v[0]):
                itemlist.append(Item(channel=CHANNELNAME, title=k, action="parsear", url=v[0], folder=True))
        xbmctools.renderItems(itemlist, params, url, category)

        #'egaupl', nombre)

        # myparser=MyParser(data)
        # myparser.parse(data)
        # links = myparser.get_hyperlinks()   # get the hyperlinks list
        # xbmc.output(str(len(links)))   # print all the links
        # descriptions = myparser.get_descriptions()   # get the hyperlinks list
        # xbmc.output("b",descriptions)   # print all the links
        # xbmc.output("aqui llego 1")
        # post-header-line-1
        # format = formatter.NullFormatter()           # create default formatter
        # htmlparser = LinksExtractor(format)        # create new parser object

    #        for video in listavideos:
    #            videotitle = video[0]
    #            scrapedurl = video[1]
    #            server = video[2]
    #            xbmctools.addnewvideo( CHANNELNAME , "play" , category , server , title.strip()+" "+match[1]+" "+match[2]+" "+videotitle , scrapedurl , thumbnail , plot )

    # ------------------------------------------------------------------------------------
    # Busca los enlaces a los videos
    # ------------------------------------------------------------------------------------

    # ------------------------------------------------------------------------------------

    # 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)
Exemplo n.º 37
0
def capitulos(params,url,category):
	logger.info("[anifenix.py] capitulos")
	
	itemlist = getcapitulos(params,url,category)
	xbmctools.renderItems(itemlist, params, url, category)
Exemplo n.º 38
0
def mainlist(params,url,category):
	logger.info("[anifenix.py] mainlist")
	
	itemlist = getmainlist(params,url,category)
	xbmctools.renderItems(itemlist, params, url, category)
def masVotados(params,url,category):
	logger.info("[tupornotv.py] masVotadas")
	
	itemlist = getmasVotados(params,url,category)
	xbmctools.renderItems(itemlist, params, url, category)
Exemplo n.º 40
0
def mainlist(params,url,category):
	logger.info("[megalivewall.py] mainlist")
	
	itemlist = getmainlist(params,url,category)
	xbmctools.renderItems(itemlist, params, url, category)
def categorias(params,url,category):
	logger.info("[tupornotv.py] categorias")

	itemlist = getcategorias(params,url,category)
	xbmctools.renderItems(itemlist, params, url, category)
Exemplo n.º 42
0
def listcategory(params,url,category):
	logger.info("[megalivewall.py] listcategory")
	
	itemlist = getlistcategory(params,url,category)
	xbmctools.renderItems(itemlist, params, url, category)
def nextsearchpage(params,url,category):
	logger.info("[tupornotv.py] nextsearchpage")
	
	itemlist = getsearchresults(params,url,category)
	xbmctools.renderItems(itemlist, params, url, category)	
def searchresults(params,url,category):
	logger.info("[cinetube.py] searchresults")

	itemlist = getsearchresults(params,url,category)
	xbmctools.renderItems(itemlist, params, url, category)