Ejemplo n.º 1
0
def reset_password(item):
	logger.info("tvalacarta.channels.configuracion reset_password")

	email = plugintools.keyboard_input( config.get_setting("account_email") ,"Introduce tu email")
	if len(email.strip())==0:
		plugintools.message("Olvidé mi contraseña","No has introducido ningún email")
		return

	result = api.accounts_reset_password_request( email )

	if result["error"]:
		plugintools.message("Olvidé mi contraseña","Se ha producido un error",result["error_message"])
		return

	request_id = result["body"]["request_id"]
	
	canceled = plugintools.message("Olvidé mi contraseña","Te llegará un correo con un enlace","Haz click sobre él y luego pulsa OK para introducir tu nueva contraseña")

	if not canceled:
		password = plugintools.keyboard_input("","Introduce tu nueva contraseña",hidden=True)
		password_confirmation = plugintools.keyboard_input("","Confirma tu nueva contraseña",hidden=True)

		result = api.accounts_reset_password_confirmation(request_id , password)

		if not result["error"]:
			plugintools.message("Olvidé mi contraseña","Tu contraseña ha sido modificada")
		else:
			plugintools.message("Olvidé mi contraseña","Error al cambiar la contraseña", result["error_message"] )

	else:
		plugintools.message("Olvidé mi contraseña","El proceso se ha interrumpido","Tu contraseña no ha cambiado")

	plugintools.refresh_items()
Ejemplo n.º 2
0
def reset_password(item):
	logger.info("tvalacarta.channels.configuracion reset_password")

	email = plugintools.keyboard_input( config.get_setting("account_email") ,"Introduce tu email")
	if len(email.strip())==0:
		plugintools.message("Olvidé mi contraseña","No has introducido ningún email")
		return

	result = api.accounts_reset_password_request( email )

	if result["error"]:
		plugintools.message("Olvidé mi contraseña","Se ha producido un error",result["error_message"])
		return

	request_id = result["body"]["request_id"]
	
	canceled = plugintools.message("Olvidé mi contraseña","Te llegará un correo con un enlace","Haz click sobre él y luego pulsa OK para introducir tu nueva contraseña")

	if not canceled:
		password = plugintools.keyboard_input("","Introduce tu contraseña",hidden=True)
		password_confirmation = plugintools.keyboard_input("","Confirma tu contraseña",hidden=True)

		result = api.accounts_reset_password_confirmation(request_id , password)

		if not result["error"]:
			plugintools.message("Olvidé mi contraseña","Tu contraseña ha sido modificada")
		else:
			plugintools.message("Olvidé mi contraseña","Error al cambiar la contraseña", result["error_message"] )

	else:
		plugintools.message("Olvidé mi contraseña","El proceso se ha interrumpido","Tu contraseña no ha cambiado")

	plugintools.refresh_items()
Ejemplo n.º 3
0
def register(item):
	logger.info("tvalacarta.channels.configuracion register")

	email = plugintools.keyboard_input( config.get_setting("account_email") ,"Introduce tu email")
	password = plugintools.keyboard_input("","Introduce tu contraseña",hidden=True)
	if len(password)<6:
		plugintools.message("Crear nueva cuenta","La contraseña debe tener al menos 6 caracteres")
		return

	password_confirmation = plugintools.keyboard_input("","Confirma tu contraseña",hidden=True)

	if password<>password_confirmation:
		plugintools.message("Crear nueva cuenta","La contraseña y la confirmacion", "deben ser iguales")
		return

	result = api.accounts_register( email , password )

	if not result["error"]:
		config.set_setting("account_type_registered","1")
		config.set_setting("account_email",email)
		config.set_setting("account_session",result["body"]["s"])

		plugintools.refresh_items()

		plugintools.message("Crear nueva cuenta","Sesion iniciada con "+email)
	else:
		plugintools.message("Crear nueva cuenta","Error al crear la nueva cuenta", result["error_message"] )
Ejemplo n.º 4
0
def login(item):
	logger.info("tvalacarta.channels.configuracion login")

	email = plugintools.keyboard_input( config.get_setting("account_email") ,"Introduce tu email")
	if email=="":
		return

	password = plugintools.keyboard_input("","Introduce tu contraseña",hidden=True)
	if password=="":
		return

	result = api.accounts_login( email , password)

	if not result["error"]:
		# Login con éxito, actualiza los datos y quita el id anónimo
		config.set_setting("account_type_registered","1")
		config.set_setting("account_email",email)
		config.set_setting("account_session",result["body"]["s"])
		config.set_setting("account_anonymous_id","")

		plugintools.refresh_items()
		plugintools.message("Iniciar sesión","Sesion iniciada con "+email)

	else:
		# Login sin éxito, invalida la sesión y deja el login como anónimo
		config.set_setting("account_session","")
		config.set_setting("account_type_registered","0")

		plugintools.message("Iniciar sesión","Identificacion no valida",result["error_message"])
Ejemplo n.º 5
0
def change_password(item):
	logger.info("tvalacarta.channels.configuracion change_password")

	old_password = plugintools.keyboard_input("","Introduce tu ANTIGUA contraseña",hidden=True)
	if len(old_password)<6:
		plugintools.message("Cambiar contraseña","La contraseña debe tener al menos 6 caracteres")
		return

	password = plugintools.keyboard_input("","Introduce tu NUEVA contraseña",hidden=True)
	if len(password)<6:
		plugintools.message("Cambiar contraseña","La contraseña debe tener al menos 6 caracteres")
		return

	password_confirmation = plugintools.keyboard_input("","Confirma tu NUEVA contraseña",hidden=True)

	if password<>password_confirmation:
		plugintools.message("Cambiar contraseña","La contraseña y la confirmacion", "deben ser iguales")
		return

	result = api.accounts_change_password(old_password,password)

	if not result["error"]:
		plugintools.message("Cambiar contraseña","Tu contraseña ha sido modificada")
	else:
		plugintools.message("Cambiar contraseña","Error al cambiar la contraseña", result["error_message"] )

	plugintools.refresh_items()
Ejemplo n.º 6
0
def register(item):
	logger.info("tvalacarta.channels.configuracion register")

	email = plugintools.keyboard_input( config.get_setting("account_email") ,"Introduce tu email")
	password = plugintools.keyboard_input("","Introduce tu contraseña",hidden=True)
	if len(password)<6:
		plugintools.message("Crear nueva cuenta","La contraseña debe tener al menos 6 caracteres")
		return

	password_confirmation = plugintools.keyboard_input("","Confirma tu contraseña",hidden=True)

	if password<>password_confirmation:
		plugintools.message("Crear nueva cuenta","La contraseña y la confirmacion", "deben ser iguales")
		return

	result = api.accounts_register( email , password )

	if not result["error"]:
		config.set_setting("account_type_registered","1")
		config.set_setting("account_email",email)
		config.set_setting("account_session",result["body"]["s"])

		plugintools.refresh_items()

		plugintools.message("Crear nueva cuenta","Sesion iniciada con "+email)
	else:
		plugintools.message("Crear nueva cuenta","Error al crear la nueva cuenta", result["error_message"] )
Ejemplo n.º 7
0
def login(item):
    logger.info("tvalacarta.channels.configuracion login")

    email = plugintools.keyboard_input(config.get_setting("account_email"),
                                       "Introduce tu email")
    if email == "":
        return

    password = plugintools.keyboard_input("",
                                          "Introduce tu contraseña",
                                          hidden=True)
    if password == "":
        return

    result = api.accounts_login(email, password)

    if not result["error"]:
        # Login con éxito, actualiza los datos y quita el id anónimo
        config.set_setting("account_type_registered", "1")
        config.set_setting("account_email", email)
        config.set_setting("account_session", result["body"]["s"])
        config.set_setting("account_anonymous_id", "")

        plugintools.refresh_items()
        plugintools.message("Iniciar sesión", "Sesion iniciada con " + email)

    else:
        # Login sin éxito, invalida la sesión y deja el login como anónimo
        config.set_setting("account_session", "")
        config.set_setting("account_type_registered", "0")

        plugintools.message("Iniciar sesión", "Identificacion no valida",
                            result["error_message"])
Ejemplo n.º 8
0
def change_password(item):
	logger.info("tvalacarta.channels.configuracion change_password")

	old_password = plugintools.keyboard_input("","Introduce tu ANTIGUA contraseña",hidden=True)
	if len(old_password)<6:
		plugintools.message("Cambiar contraseña","La contraseña debe tener al menos 6 caracteres")
		return

	password = plugintools.keyboard_input("","Introduce tu NUEVA contraseña",hidden=True)
	if len(password)<6:
		plugintools.message("Cambiar contraseña","La contraseña debe tener al menos 6 caracteres")
		return

	password_confirmation = plugintools.keyboard_input("","Confirma tu NUEVA contraseña",hidden=True)

	if password<>password_confirmation:
		plugintools.message("Cambiar contraseña","La contraseña y la confirmacion", "deben ser iguales")
		return

	result = api.accounts_change_password(old_password,password)

	if not result["error"]:
		plugintools.message("Cambiar contraseña","Tu contraseña ha sido modificada")
	else:
		plugintools.message("Cambiar contraseña","Error al cambiar la contraseña", result["error_message"] )

	plugintools.refresh_items()
Ejemplo n.º 9
0
def agrega_lista(params):

    parser2 = parser.replace(
        "(Dedicado al rey de las Listas: [COLOR blue]Sebas[COLOR skyblue])",
        "*** Agregar Lista ***")

    #plugintools.add_item(action="",url="",title=parser2,thumbnail=logo,fanart=fondo,folder=False,isPlayable=False)

    titulo = plugintools.keyboard_input(
        '', 'Introduzca [COLOR red]Nombre[/COLOR] de la Lista')
    url = plugintools.keyboard_input(
        '', 'Introduzca [COLOR red]URL[/COLOR] de la Lista')
    logo1 = plugintools.keyboard_input(
        '', 'Introduzca [COLOR red]Url del Logo[/COLOR] de la Lista')
    fondo1 = plugintools.keyboard_input(
        '', 'Introduzca [COLOR red]Url del Fondo[/COLOR] de la Lista')

    file_listas = open(mis_listas, "a+")
    file_listas.write("<Lista>\n")
    file_listas.write("<Nombre>" + titulo + "<<\n")
    file_listas.write("<Url>" + url + "<<\n")
    file_listas.write("<Logo>" + logo1 + "<<\n")
    file_listas.write("<Fondo>" + fondo1 + "<<\n")
    file_listas.write("<Fin Lista>\n")

    file_listas.close()

    return
Ejemplo n.º 10
0
def monova0_bum(params):
    plugintools.log('[%s %s] [BUM+] Monova... %s' %
                    (addonName, addonVersion, repr(params)))

    thumbnail = 'http://upload.wikimedia.org/wikipedia/en/f/f4/Monova.jpg'
    fanart = 'http://www.gadgethelpline.com/wp-content/uploads/2013/10/Digital-Piracy.png'
    show = 'list'
    plugintools.modo_vista(show)

    try:
        texto = ""
        texto = 'the strain spanish'
        texto = plugintools.keyboard_input(texto)
        plugintools.set_setting("alluc_search", texto)
        params["plot"] = texto
        texto = texto.lower()
        if texto == "":
            errormsg = plugintools.message(
                "Arena+", "Por favor, introduzca el término a buscar")
            #return errormsg
        else:
            texto = texto.lower().strip()
            texto = texto.replace(" ", "+")

            # https://isohunt.to/torrents/?ihq=the+strain+spanish
            url = 'https://www.monova.org/search.php?sort=5&term=' + texto + '&verified=1'
            params["url"] = url
            url = params.get("url")
            referer = 'https://monova.org'
            monova1_bum(params)
    except:
        pass
Ejemplo n.º 11
0
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 )
Ejemplo n.º 12
0
def mundoplus0(params):
    plugintools.log("[Arena+ 0.3.3].Mundoplus.tv " + repr(params))
    try:
        texto = ""
        texto = 'strain'
        texto = plugintools.keyboard_input(texto)
        plugintools.set_setting("mundoplus_search", texto)
        params["plot"] = texto
        texto = texto.lower()
        if texto == "":
            errormsg = plugintools.message(
                "Arena+", "Por favor, introduzca serie a buscar")
            return errormsg
        else:
            texto = texto.lower().strip()
            texto = texto.replace(" ", "+")
            url = 'http://www.mundoplus.tv/programacion/buscador.php?canal=g_todos&fecha=TODAS&buscar=' + texto
            #url = 'http://www.alluc.com/stream/'+texto+'++lang:es'
            #url=baseurl+'stream/?q='+texto+'&stream=Streams'
            #url=baseurl+'stream/'+texto
            params["url"] = url
            url = params.get("url")
            referer = 'http://www.mundoplus.tv'
            plugintools.log("Texto a buscar: " + title)
            mundoplus1(params)

    except:
        pass
Ejemplo n.º 13
0
def bitsnoop0_bum(params):
    plugintools.log('[%s %s] [BUM+] BitSnoop... %s' % (addonName, addonVersion, repr(params)))

    try:
        texto = "";
        texto='riddick'
        texto = plugintools.keyboard_input(texto)
        plugintools.set_setting("alluc_search",texto)
        params["plot"]=texto
        texto = texto.lower()
        if texto == "":
            errormsg = plugintools.message("PalcoTV","Por favor, introduzca el canal a buscar")
            #return errormsg
        else:
            texto = texto.lower().strip()
            texto = texto.replace(" ", "+")
            
            # http://bitsnoop.com/search/all/the+strain+spanish/c/d/1/
            url = 'http://bitsnoop.com/search/all/'+texto+'/c/d/1/'
            params["url"]=url            
            url = params.get("url")
            referer = 'http://www.bitsnoop.com'
            bitsnoop1_bum(params)
    except:
         pass    
Ejemplo n.º 14
0
def cambia_hora_marcador(params):

    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()

    pide = plugintools.keyboard_input(
        diferencia,
        'Introduzca Diferencia (con [COLOR red]Signo Menos[/COLOR] si son a Disminuir) [COLOR green]XX:XX[/COLOR]'
    )

    if pide <> diferencia:
        file_hora = open(fich_hora, "w+")
        file_hora.write(pide)
        file_hora.close()
        xbmcgui.Dialog().ok(
            "- Tenga en Cuenta -",
            "Para que el cambio tenga efecto en la Guía, tendrá que salir del Parser y volver a entrar."
        )

    return
Ejemplo n.º 15
0
def monova0_bum(params):
    plugintools.log('[%s %s] [BUM+] Monova... %s' % (addonName, addonVersion, repr(params)))

    thumbnail = 'http://upload.wikimedia.org/wikipedia/en/f/f4/Monova.jpg'
    fanart = 'http://www.gadgethelpline.com/wp-content/uploads/2013/10/Digital-Piracy.png'    
    show = 'list'
    plugintools.modo_vista(show)
    
    try:
        texto = "";
        texto='the strain spanish'
        texto = plugintools.keyboard_input(texto)
        plugintools.set_setting("alluc_search",texto)
        params["plot"]=texto
        texto = texto.lower()
        if texto == "":
            errormsg = plugintools.message("PalcoTV","Por favor, introduzca el término a buscar")
            #return errormsg
        else:
            texto = texto.lower().strip()
            texto = texto.replace(" ", "+")
            
            # https://isohunt.to/torrents/?ihq=the+strain+spanish
            url = 'https://www.monova.org/search.php?sort=5&term='+texto+'&verified=1'
            params["url"]=url            
            url = params.get("url")
            referer = 'https://monova.org'
            monova1_bum(params)
    except:
         pass
Ejemplo n.º 16
0
def get_search():
    qry =plugintools.keyboard_input('','ค้นหา')
    showsList = vte.getsearch(qry)
    for show in showsList:
        thumb = show.get('thumbnail')
        plugintools.add_item(title=show.get('title'), action='showepisodes', url=show.get('url'), thumbnail=thumb)
    plugintools.close_item_list()
Ejemplo n.º 17
0
def ir_a(params):
    vextra = params.get("extra")
    extra = vextra[0]
    maxpag = vextra[1]
    url = params.get("url")
    #Eliminamos el número de página de la URL para poder contruir la nueva
    url = url[:url.rfind("/")]
    #Pedimos al usuario la página
    mipagina = plugintools.keyboard_input()

    if not mipagina.isdigit():
        plugintools.message("ERROR", "Por favor, introduzca un número.")
        plugintools.add_item(action="ir_a",
                             url=url,
                             title="[COLORred][B] Ir a página...[/B][/COLOR]",
                             extra=extra,
                             thumbnail=thumbnail,
                             fanart=fanart,
                             folder=True,
                             isPlayable=False)
    else:
        miurl = url + '/' + mipagina
        plugintools.add_item(action="hdfull_seccion",
                             title="[COLORred][B] Continúa a la página " +
                             str(mipagina) + "[/B][/COLOR]",
                             url=miurl,
                             thumbnail=thumbnail,
                             fanart=fanart,
                             extra=extra,
                             folder=True,
                             isPlayable=False)
Ejemplo n.º 18
0
def bitsnoop0(params):
    plugintools.log("[movie.ultra.7k 0.3.0].BitSnoop" + repr(params))

    try:
        texto = ""
        texto = 'riddick'
        texto = plugintools.keyboard_input(texto)
        plugintools.set_setting("alluc_search", texto)
        params["plot"] = texto
        texto = texto.lower()
        if texto == "":
            errormsg = plugintools.message(
                "Movie Ultra 7K", "Por favor, introduzca el canal a buscar")
            #return errormsg
        else:
            texto = texto.lower().strip()
            texto = texto.replace(" ", "+")

            # http://bitsnoop.com/search/all/the+strain+spanish/c/d/1/
            url = 'http://bitsnoop.com/search/all/' + texto + '/c/d/1/'
            params["url"] = url
            url = params.get("url")
            referer = 'http://www.bitsnoop.com'
            bitsnoop1(params)
    except:
        pass
Ejemplo n.º 19
0
def bitsnoop0_bum(params):
    plugintools.log('[%s %s] [BUM+] BitSnoop... %s' %
                    (addonName, addonVersion, repr(params)))

    try:
        texto = ""
        texto = 'riddick'
        texto = plugintools.keyboard_input(texto)
        plugintools.set_setting("alluc_search", texto)
        params["plot"] = texto
        texto = texto.lower()
        if texto == "":
            errormsg = plugintools.message(
                "Arena+", "Por favor, introduzca el canal a buscar")
            #return errormsg
        else:
            texto = texto.lower().strip()
            texto = texto.replace(" ", "+")

            # http://bitsnoop.com/search/all/the+strain+spanish/c/d/1/
            url = 'http://bitsnoop.com/search/all/' + texto + '/c/d/1/'
            params["url"] = url
            url = params.get("url")
            referer = 'http://www.bitsnoop.com'
            bitsnoop1_bum(params)
    except:
        pass
Ejemplo n.º 20
0
def isohunt0_bum(params):
    plugintools.log('[%s %s] [BUM+] Isohunt... %s' %
                    (addonName, addonVersion, repr(params)))

    thumbnail = 'http://www.userlogos.org/files/logos/dfordesmond/isohunt%201.png'
    fanart = 'http://2.bp.blogspot.com/_NP40rzexJsc/TMGWrixybJI/AAAAAAAAHCU/ij1--_DQEZo/s1600/Keep_Seeding____by_Carudo.jpg'
    show = 'list'
    plugintools.modo_vista(show)

    try:
        texto = ""
        texto = 'riddick'
        texto = plugintools.keyboard_input(texto)
        plugintools.set_setting("alluc_search", texto)
        params["plot"] = texto
        texto = texto.lower()
        if texto == "":
            errormsg = plugintools.message(
                "Arena+", "Por favor, introduzca el canal a buscar")
            #return errormsg
        else:
            texto = texto.lower().strip()
            texto = texto.replace(" ", "+")

            # https://isohunt.to/torrents/?ihq=the+strain+spanish
            url = 'https://isohunt.to/torrents/?ihq=' + texto + '&Torrent_sort=seeders.desc'
            params["url"] = url
            url = params.get("url")
            referer = 'https://isohunt.to'
            isohunt1_bum(params)
    except:
        pass
Ejemplo n.º 21
0
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 )
Ejemplo n.º 22
0
def ciberdocus3(params):
	plugintools.setview("tvshows")

	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://www.ciberdocumentales.com/index.php?keysrc="+buscar+"&categoria=0"

	else:
		url_busca = params.get("url")

	#headers = {"User-Agent": 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0', "Referer": url}
	#r=requests.get(url, headers=headers)
	data = plugintools.read(url_busca)	
	

	
	group_channel = plugintools.find_single_match(data,'var xajaxRequestUri="(.*?)<div id="paginador">')
	plugintools.log("group_channel= "+group_channel)
	cada_canal = plugintools.find_multiple_matches(group_channel,'<div class="fotonoticia">(.*?)>Ha sido visto')	

	for item in cada_canal:
		plugintools.log("item= "+item)
		
		url_canal=plugintools.find_single_match(item,'<div class="opcionesbot"><a target="_blank" href="(.*?)"')
		titulo_canal=plugintools.find_single_match(item,'alt="(.*?)"')
		caratula_canal='http://www.ciberdocumentales.com'+plugintools.find_single_match(item,'src="(.*?)"')

		##Capturo la Sinopsis en un Diccionario para usarla en "plugintools.add_item(" mediante la variable "info_labels"
		sinopsis = plugintools.find_single_match(item,'h3></a><br /><br />(.*?)</div>')
		plugintools.log("Sinopsis= "+sinopsis)
		datamovie = {}
		datamovie["Plot"]=sinopsis
		
		url_montada = 'plugin://plugin.video.SportsDevil/?mode=1&amp;item=catcher%3dstreams%26url='+url_canal+'%26referer='+url_ref
		plugintools.add_item(action="runPlugin", title=titulo_canal, url=url_montada, thumbnail=caratula_canal, info_labels=datamovie , fanart=fanart, folder = False, isPlayable=True)

	
	if recursividad == "1":
		#Resuelvo la posibilidad de mas de 1 Página en la Busqueda
		
		mas_pag = plugintools.find_single_match(data,'<div class="pagination">(.*?)</div>')
		##Si no está vacio... es decir, q hay mas de 1 página
		if len(mas_pag) > 1:
			cadena_busqueda='/index.php?keysrc='+buscar+'&categoria=0&page='
			total_pag=plugintools.find_multiple_matches(mas_pag, 'a href="([^"]+)')
			#Con esto te devuelve una lista: ['/index.php?keysrc=cine&categoria=0&page=2', '/index.php?keysrc=cine&categoria=0&page=3', '/index.php?keysrc=cine&categoria=0&page=2']

			ult_pag=int(total_pag[-2].replace(cadena_busqueda, ""))
			
			for num_pag in range(2, ult_pag+1):
				recursividad="0"
				url_pag=url_ref+'index.php?keysrc='+buscar+'&categoria=0&page='+str(num_pag)  ## Obtengo las páginas así: http://www.ciberdocumentales.com/index.php?keysrc=cine&categoria=0&page=2
				print url_pag
				plugintools.add_item(action="ciberdocus3",title="[COLORred][B]Página Numero: " + str(num_pag) + "  [/B][/COLOR]", url=url_pag, extra=recursividad,  thumbnail=thumbnail, fanart=fanart, folder=True, isPlayable=False)
Ejemplo n.º 23
0
def url_tester(params):
    url_test = plugintools.keyboard_input("", "Probar URL!")
    params["plot"] = url_test
    url_test = url_test.lower()
    if url_test == "":
        errormsg = plugintools.message(
            "Arena+", "Por favor, introduzca el canal a buscar")
    else:
        plugintools.log('[%s %s] Probando URL... %s' %
                        (addonName, addonVersion, url_test))
        url_test = url_test.strip()
        params["url"] = url_test
        title = multiparse_title('URL Tester', url_test, 'list')
        params["title"] = title
        if url_test.startswith("rtmp") == True:
            server_rtmp(params)
            print params
            plugintools.add_item(action="launch_rtmp",
                                 title=title + ' [I][COLOR lightyellow][' +
                                 params.get("server") + '][/I][/COLOR]',
                                 url=url_test,
                                 folder=False,
                                 isPlayable=True)
        else:
            plugintools.add_item(action="launch_rtmp",
                                 title=title,
                                 url=url_test,
                                 folder=False,
                                 isPlayable=True)
Ejemplo n.º 24
0
def isohunt0_bum(params):
    plugintools.log('[%s %s] [BUM+] Isohunt... %s' % (addonName, addonVersion, repr(params)))

    thumbnail = 'http://www.userlogos.org/files/logos/dfordesmond/isohunt%201.png'
    fanart = 'http://2.bp.blogspot.com/_NP40rzexJsc/TMGWrixybJI/AAAAAAAAHCU/ij1--_DQEZo/s1600/Keep_Seeding____by_Carudo.jpg'    
    show = 'list'
    plugintools.modo_vista(show)
    
    try:
        texto = "";
        texto='riddick'
        texto = plugintools.keyboard_input(texto)
        plugintools.set_setting("alluc_search",texto)
        params["plot"]=texto
        texto = texto.lower()
        if texto == "":
            errormsg = plugintools.message("PalcoTV","Por favor, introduzca el canal a buscar")
            #return errormsg
        else:
            texto = texto.lower().strip()
            texto = texto.replace(" ", "+")
            
            # https://isohunt.to/torrents/?ihq=the+strain+spanish
            url = 'https://isohunt.to/torrents/?ihq='+texto+'&Torrent_sort=seeders.desc'
            params["url"]=url            
            url = params.get("url")
            referer = 'https://isohunt.to'
            isohunt1_bum(params)
    except:
         pass       
Ejemplo n.º 25
0
def pornhd_buscador(params):
    parametros = {}
    clave = plugintools.keyboard_input(
        "", "Escriba las palabras a buscar").replace(" ", "+")
    parametros["url"] = sec["BUSCADOR"] + clave
    parametros["extra"] = 'PornHD - Resultados para: "' + clave + '"'

    pornhd_videos(parametros)
Ejemplo n.º 26
0
def search(params):
    plugintools.log("soritvch.search " + repr(params))

    last_search = plugintools.get_setting("last_search")
    texto = plugintools.keyboard_input(last_search)
    plugintools.set_setting("last_search", texto)

    params["texto"] = texto

    youtube_search(params)
Ejemplo n.º 27
0
def settings(params):
    plugintools.log("ruyaiptv.settings "+repr(params))

    if plugintools.get_setting("pincode")!="":
        text = plugintools.keyboard_input(default_text="", title="Enter PIN Code")

        if text==plugintools.get_setting("pincode"):
            plugintools.open_settings_dialog()

    else:
        plugintools.open_settings_dialog()
Ejemplo n.º 28
0
def vanema_lukk(name):
        plugintools.log(pnimi+sync_data("UGFyZW50YWwgbG9jayA="))
        a = 'XXX', 'Adult', 'Adults','ADULT','ADULTS','adult','adults','P**n','P**N','p**n','P**n','xxx'
        if any(s in name for s in a):
           xbmc.executebuiltin((u'XBMC.Notification("Parental Lock", "Channels may contain adult content", 2000)'))
           text = plugintools.keyboard_input(default_text="", title=get_live("UGFyZW50YWwgbG9jaw=="))
           if text==plugintools.get_setting(sync_data("dmFuZW1ha29vZA==")):
              return
           else:
              exit()
        else:
           name = ""
Ejemplo n.º 29
0
def vanema_lukk(name):
        plugintools.log(pnimi+sync_data("UGFyZW50YWwgbG9jayA="))
        a = 'XXX', 'Adult', 'Adults','ADULT','ADULTS','adult','adults','P**n','P**N','p**n','P**n','xxx'
        if any(s in name for s in a):
           xbmc.executebuiltin((u'XBMC.Notification("Parental Lock", "Channels may contain adult content", 2000)'))
           text = plugintools.keyboard_input(default_text="", title=get_live("UGFyZW50YWwgbG9jaw=="))
           if text==plugintools.get_setting(sync_data("dmFuZW1ha29vZA==")):
              return
           else:
              exit()
        else:
           name = ""
Ejemplo n.º 30
0
def get_search():
    qry = plugintools.keyboard_input('', 'ค้นหา')
    showsList = add.getsearch(qry)
    for show in showsList:
        thumb = show.get('thumbnail')
        plugintools.add_item(title=show.get('title'),
                             action=show.get('action'),
                             url=show.get('url'),
                             thumbnail=thumb,
                             gtitle=show.get('title'))
    xbmc.executebuiltin('Container.SetViewMode(502)')
    plugintools.close_item_list()
Ejemplo n.º 31
0
def general_playlists(params):
    plugintools.log("soritvch.general_playlists " + repr(params))
    #data2 = xbmcgui.Dialog().input("Search to youtube")
    last_search = plugintools.get_setting("last_search")
    data2 = plugintools.keyboard_input(last_search)
    if not data2:
        cap1 = plugintools.get_localized_string(50001)
        cap2 = plugintools.get_localized_string(50002)  # Canceled
        plugintools.message(cap1, cap2)
        exit = sys.exit()
        return exit
    data2 = data2.strip()
    plugintools.set_setting("last_search", data2)
    data2 = data2.replace(" ", "+")
    sch_lng = plugintools.get_setting("sch_lng")
    #plugintools.message("-",sch_lng)
    url = params.get("url") + data2 + "+" + sch_lng
    #xbmcgui.Dialog().ok("Search to youtube", url)

    try:
        data = plugintools.read(url)
    except:
        cap1 = plugintools.get_localized_string(50001)
        cap2 = plugintools.get_localized_string(50003)  # 0 Results
        plugintools.message(cap1, cap2)
        exit = sys.exit()
        return exit

    plugintools.log("data=" + data)
    pattern = '<h3 class="yt-lockup-title "><a href="(.*?)</h3>'
    matches = plugintools.find_multiple_matches(data, pattern)

    for entry in matches:
        plugintools.log("=====================================")
        plugintools.log("entry=" + entry)
        video_id = plugintools.find_single_match(entry, 'v=(.*?)" class')
        plugintools.log("video_id=" + video_id)
        title = plugintools.find_single_match(entry, 'dir="ltr">(.*?)</a>')
        title2 = plugintools.find_single_match(entry, '"> -(.*?).</span>')
        title = title + "[COLOR yellow]-" + title2 + "[/COLOR]"
        title = title.replace('&quot;', '"')
        title = title.strip()
        plot = ""
        thumbnail = "http://img.youtube.com/vi/" + video_id + "/0.jpg"
        url = "plugin://plugin.video.youtube/?path=/root/video&action=play_video&videoid=" + video_id
        plugintools.add_item(action="play",
                             title=title,
                             plot=plot,
                             url=url,
                             thumbnail=thumbnail,
                             isPlayable=False,
                             folder=False)
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 red][I](" + 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)
Ejemplo n.º 33
0
def ivoox_search(params):
    texto = ""
    texto = plugintools.keyboard_input(texto)
    texto = texto.lower()
    if texto == "":
        errormsg = plugintools.message(
            "PalcoTV", "Por favor, introduzca el término de búsqueda")
    else:
        texto = texto.lower()
        texto_a = texto.replace(" ", "+").strip()
        texto_b = texto.replace(" ", "-").strip()
        url = 'http://www.ivoox.com/' + texto_a + '_sb.html?sb=' + texto_b
        params["url"] = url
        Secciones_Ivoox(params)
Ejemplo n.º 34
0
def ooooooO0oo(name):
    plugintools.log(pnimi + o0OOO("UGFyZW50YWwgbG9jayA="))
    III1iII1I1ii = 'XXX', 'Adult', 'Adults', 'ADULT', 'ADULTS', 'adult', 'adults', 'P**n', 'P**N', 'p**n', 'P**n', 'xxx'
    if any(s in name for s in III1iII1I1ii):
        xbmc.executebuiltin((
            u'XBMC.Notification("Parental Lock", "Channels may contain adult content", 2000)'
        ))
        oOOo0 = plugintools.keyboard_input(default_text="",
                                           title=O0O("UGFyZW50YWwgbG9jaw=="))
        if oOOo0 == plugintools.get_setting(o0OOO("dmFuZW1ha29vZA==")):
            return
        else:
            exit()
    else:
        name = ""
Ejemplo n.º 35
0
def vanema_lukk(name):
    plugintools.log(pnimi + "Parental lock ")
    a = ''
    if any(s in name for s in a):
        xbmc.executebuiltin((
            u'XBMC.Notification("Parental-Lock", "Channels may contain adult content", 2000)'
        ))
        text = plugintools.keyboard_input(
            default_text="",
            title="Parental-Lock: Please enter your Parental Code")
        if text == plugintools.get_setting("vanemakood"):
            return
        else:
            exit()
    else:
        name = ""
Ejemplo n.º 36
0
def MiamiTV_playlists(params):
    #url = plugintools.read( params.get("url") )
    url = params.get("url")

    texto = plugintools.keyboard_input("")
    num = strtoint(texto)
    if num == 9898:
        #url = 'http://usaserver.miamitvchannel.com/miamitv/smil:miamitv/chunklist_w1612796246_b2592000.m3u8'
        plugintools.play_resolved_url(url)
    else:
        #line1 = T_PSWD
        #time = 5000 #in miliseconds
        #xbmc.executebuiltin('Notification(%s, %s, %d, %s)'%(__addonname__,line1, time, __icon__))
        cap1 = plugintools.get_localized_string(50001)
        cap2 = plugintools.get_localized_string(50004)  # wrong password
        plugintools.message(cap1, cap2)
        return False
Ejemplo n.º 37
0
def get_search():
    qry = plugintools.keyboard_input('', 'ค้นหา')
    showsList = nim.getsearch(qry)
    for show in showsList:
        thumb = show.get('thumbnail')
        if thumb == None:
            thumb = ""
        if show.get('title') != u"Next":
            plugintools.add_item(title=show.get('title'),
                                 action='showepisodes',
                                 url=show.get('url'),
                                 thumbnail=thumb)
        else:
            plugintools.add_item(title=show.get('title'),
                                 action='showmovie',
                                 url=show.get('url'),
                                 thumbnail=thumb)
    plugintools.close_item_list()
Ejemplo n.º 38
0
def url_tester(params):
    url_test = plugintools.keyboard_input("", "Probar URL!")
    params["plot"]=url_test
    url_test = url_test.lower()
    if url_test == "":
        errormsg = plugintools.message("Arena+","Por favor, introduzca el canal a buscar")        
    else:
        plugintools.log('[%s %s] Probando URL... %s' % (addonName, addonVersion, url_test))
        url_test = url_test.strip()
        params["url"]=url_test
        title = multiparse_title('URL Tester', url_test, 'list')
        params["title"]=title
        if url_test.startswith("rtmp") == True:
            server_rtmp(params)
            print params
            plugintools.add_item(action="launch_rtmp", title=title+' [I][COLOR lightyellow]['+params.get("server")+'][/I][/COLOR]', url=url_test, folder=False, isPlayable=True)
        else:
            plugintools.add_item(action="launch_rtmp", title=title, url=url_test, folder=False, isPlayable=True)
Ejemplo n.º 39
0
def xhamster_bus(params):
    plugintools.log('[%s %s] Buscando videos... %s' %
                    (addonName, addonVersion, repr(params)))
    texto = ""
    texto = plugintools.keyboard_input(texto)
    texto = texto.lower(
    )  # Pasamos el texto a minúsculas para evitar problemas
    if texto == "":
        errormsg = plugintools.message(
            "Movie Ultra 7K", "Por favor, introduzca el canal a buscar")
        #return errormsg
    else:
        texto = texto.lower().strip()
        texto = texto.replace(" ", "+")
        url_bus = 'http://es.xhamster.com/search.php?from=&q=' + texto + '&qcat=video'
        params = plugintools.get_params()
        params["url"] = url_bus
        xhamster_bus1(params)  # pasando los resultados a xhamster_bus1
Ejemplo n.º 40
0
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)
Ejemplo n.º 41
0
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)
Ejemplo n.º 42
0
def cambia_hora_marcador(params):

	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()

	pide = plugintools.keyboard_input(diferencia, 'Introduzca Diferencia (con [COLOR red]Signo Menos[/COLOR] si son a Disminuir) [COLOR green]XX:XX[/COLOR]')
	
	if pide <> diferencia:
		file_hora=open(fich_hora, "w+")
		file_hora.write(pide)
		file_hora.close()
		xbmcgui.Dialog().ok( "- Tenga en Cuenta -" , "Para que el cambio tenga efecto en la Guía, tendrá que salir del Parser y volver a entrar." )

	return
Ejemplo n.º 43
0
def livetv_catchup_search(params):
    plugintools.log("ruyaiptv.livetv_catchup_search "+repr(params))

    token = plugintools.get_setting("token")
    if token=="":
        return

    current_page , next_page = get_current_and_next_page(params.get("page"))

    if params.get("url")=="":
        terms = plugintools.keyboard_input(default_text="", title="Enter search terms")
    else:
        terms = params.get("url")

    items = api.livetv_catchup_search(terms,num_page=current_page)
    for item in items:
        plugintools.add_item( action="play_catchup", title=item["title"] , url=item["url"] , plot=item["plot"], thumbnail=item["thumbnail"], fanart=os.path.join(THUMBNAIL_PATH,"fanart2.jpg") , isPlayable=True, folder=False )

    if len(items)>=MAX_ITEMS_PER_PAGE:
        plugintools.add_item( action="livetv_catchup_by_genre", title=">> Next page" , url=terms, page=next_page, fanart=os.path.join(THUMBNAIL_PATH,"fanart2.jpg") , folder=True )

    plugintools.set_view( plugintools.EPISODES )
Ejemplo n.º 44
0
def tvshows_search(params):
    plugintools.log("ruyaiptv.tvshows_search "+repr(params))

    token = plugintools.get_setting("token")
    if token=="":
        return

    current_page , next_page = get_current_and_next_page(params.get("page"))

    if params.get("url")=="":
        terms = plugintools.keyboard_input(default_text="", title="Enter search terms")
    else:
        terms = params.get("url")

    items = api.tvshow_search(token,terms,num_page=current_page)
    for item in items:
        plugintools.add_item( action="tvshow_seasons", title=item["title"] , url=item["title"] , plot=item["plot"], thumbnail=item["thumbnail"], fanart=item["fanart"], folder=True )

    if len(items)>=MAX_ITEMS_PER_PAGE:
        plugintools.add_item( action="tvshows_search", title=">> Next page" , url=terms , page=next_page, fanart=os.path.join(THUMBNAIL_PATH,"fanart1.jpg") , folder=True )

    plugintools.set_view( plugintools.TV_SHOWS )
Ejemplo n.º 45
0
def mundoplus0(params):
    
    try:
        texto = "";
        texto='strain'
        texto = plugintools.keyboard_input(texto)
        plugintools.set_setting("mundoplus_search",texto)
        params["plot"]=texto
        texto = texto.lower()        
        if texto == "": errormsg = plugintools.message("PalcoTV","Por favor, introduzca serie a buscar");return errormsg
        else:
            texto = texto.lower().strip()
            texto = texto.replace(" ", "+")
            url = 'http://www.mundoplus.tv/programacion/buscador.php?canal=g_todos&fecha=TODAS&buscar='+texto
            #url = 'http://www.alluc.com/stream/'+texto+'++lang:es'
            #url=baseurl+'stream/?q='+texto+'&stream=Streams'
            #url=baseurl+'stream/'+texto
            params["url"]=url
            url = params.get("url")
            referer = 'http://www.mundoplus.tv'
            plugintools.log("Texto a buscar: "+title)
            mundoplus1(params)

    except: pass
Ejemplo n.º 46
0
def movies_search(params):
    plugintools.log("ruyaiptv.movies_search "+repr(params))

    token = plugintools.get_setting("token")
    if token=="":
        return

    current_page , next_page = get_current_and_next_page(params.get("page"))

    if params.get("url")=="":
        terms = plugintools.keyboard_input(default_text="", title="Enter search terms")
    else:
        terms = params.get("url")

    items = api.movie_search(token,terms=terms,num_page=current_page)
    for item in items:
        if item["title"].endswith("(3D)"):
            item["title"] = item["title"].replace("(3D)","[COLOR red](3D)[/COLOR]")
        plugintools.add_item( action="play_movie", title=item["title"] , url=item["url"] , plot=item["plot"], thumbnail=item["thumbnail"], fanart=item["fanart"], isPlayable=True, folder=False )

    if len(items)>=MAX_ITEMS_PER_PAGE:
        plugintools.add_item( action="movies_search", title=">> Next page" , url=terms, page=next_page, fanart=os.path.join(THUMBNAIL_PATH,"fanart0.jpg") , folder=True )

    plugintools.set_view( plugintools.MOVIES )
Ejemplo n.º 47
0
def get_next_items( item ):

    plugintools.log("navigation.get_next_items item="+item.tostring())

    try:
        # ----------------------------------------------------------------
        #  Main menu
        # ----------------------------------------------------------------
        if item.channel=="navigation":

            if item.action=="mainlist":
                plugintools.log("navigation.get_next_items Main menu")
                itemlist = channelselector.getmainlist("bannermenu")

        elif item.channel=="channelselector":

            if item.action=="channeltypes":
                plugintools.log("navigation.get_next_items Channel types menu")
                itemlist = channelselector.getchanneltypes("bannermenu")

            elif item.action=="listchannels":
                plugintools.log("navigation.get_next_items Channel list menu")
                itemlist = channelselector.filterchannels(item.category,"bannermenu")

        elif item.channel=="configuracion":
            plugintools.open_settings_dialog()
            return []

        else:

            if item.action=="":
                item.action="mainlist"

            plugintools.log("navigation.get_next_items Channel code ("+item.channel+"."+item.action+")")

            try:
                exec "import channels."+item.channel+" as channel"
            except:
                exec "import core."+item.channel+" as channel"

            from platformcode import xbmctools

            if item.action=="play":
                plugintools.log("navigation.get_next_items play")

                # Si el canal tiene una acción "play" tiene prioridad
                if hasattr(channel, 'play'):
                    plugintools.log("pelisalacarta.platformcode.launcher Channel has its own 'play' method")
                    itemlist = channel.play(item)
                    if len(itemlist)>0:
                        item = itemlist[0]

                        # FIXME: Este error ha que tratarlo de otra manera, al dar a volver sin ver el vídeo falla
                        try:
                            xbmctools.play_video(channel=item.channel, server=item.server, url=item.url, category=item.category, title=item.title, thumbnail=item.thumbnail, plot=item.plot, extra=item.extra, subtitle=item.subtitle, video_password = item.password, fulltitle=item.fulltitle, Serie=item.show)
                        except:
                            pass

                    else:
                        import xbmcgui
                        ventana_error = xbmcgui.Dialog()
                        ok = ventana_error.ok ("plugin", "No hay nada para reproducir")
                else:
                    plugintools.log("pelisalacarta.platformcode.launcher No channel 'play' method, executing core method")

                    # FIXME: Este error ha que tratarlo de otra manera, por al dar a volver sin ver el vídeo falla
                    # Mejor hacer el play desde la ventana
                    try:
                        xbmctools.play_video(channel=item.channel, server=item.server, url=item.url, category=item.category, title=item.title, thumbnail=item.thumbnail, plot=item.plot, extra=item.extra, subtitle=item.subtitle, video_password = item.password, fulltitle=item.fulltitle, Serie=item.show)
                    except:
                        pass


                return []

            elif item.action=="findvideos":
                plugintools.log("navigation.get_next_items findvideos")

                # Si el canal tiene una acción "findvideos" tiene prioridad
                if hasattr(channel, 'findvideos'):
                    plugintools.log("pelisalacarta.platformcode.launcher Channel has its own 'findvideos' method")
                    itemlist = channel.findvideos(item)
                else:
                    itemlist = []

                if len(itemlist)==0:
                    from servers import servertools
                    itemlist = servertools.find_video_items(item)

                if len(itemlist)==0:
                    itemlist = [ Item(title="No se han encontrado vídeos", thumbnail=os.path.join( plugintools.get_runtime_path() , "resources" , "images" , "thumb_error.png" )) ]

            else:

                if item.action=="search":
                    tecleado = plugintools.keyboard_input()
                    if tecleado!="":
                        tecleado = tecleado.replace(" ", "+")
                        itemlist = channel.search(item,tecleado)
                elif item.channel=="novedades" and item.action=="mainlist":
                    itemlist = channel.mainlist(item,"bannermenu")
                elif item.channel=="buscador" and item.action=="mainlist":
                    itemlist = channel.mainlist(item,"bannermenu")
                else:
                    exec "itemlist = channel."+item.action+"(item)"

                for loaded_item in itemlist:

                    if loaded_item.thumbnail=="":
                        if loaded_item.folder:
                            loaded_item.thumbnail = os.path.join( plugintools.get_runtime_path() , "resources" , "images" , "thumb_folder.png" )
                        else:
                            loaded_item.thumbnail = os.path.join( plugintools.get_runtime_path() , "resources" , "images" , "thumb_nofolder.png" )

                if len(itemlist)==0:
                    itemlist = [ Item(title="No hay elementos para mostrar", thumbnail=os.path.join( plugintools.get_runtime_path() , "resources" , "images" , "thumb_error.png" )) ]

    except:
        import traceback
        plugintools.log("navigation.get_next_items "+traceback.format_exc())
        itemlist = [ Item(title="Se ha producido un error", thumbnail=os.path.join( plugintools.get_runtime_path() , "resources" , "images" , "thumb_error.png" )) ]


    return itemlist
Ejemplo n.º 48
0
def kickass0_bum(params):
    plugintools.log('[%s %s] [BUM+] Kickass... %s' %
                    (addonName, addonVersion, repr(params)))

    try:
        texto = ""
        #texto='riddick'
        texto = plugintools.keyboard_input(
            texto, "Buscador Unificado de Torrents (BUM+)")
        plugintools.set_setting("alluc_search", texto)
        params["plot"] = texto
        texto = texto.lower()
        if texto == "":
            errormsg = plugintools.message(
                "Arena+", "Por favor, introduzca el canal a buscar")
            #return errormsg
        else:
            texto = texto.lower().strip()
            texto = texto.replace(" ", "+")
            # https://kickass.to/usearch/birdman%20lang_id:14/
            url = 'https://kickass.to/usearch/' + texto + '/'
            params["url"] = url
            url = params.get("url")
            referer = 'http://www.kickass.to'
    except:
        pass

    # Archivo de control de resultados (evita la recarga del cuadro de diálogo de búsqueda tras cierto tiempo)
    bumfile = tmp + 'bum.dat'
    if not os.path.isfile(
            bumfile
    ):  # Si no existe el archivo de control, se crea y se registra la búsqueda
        controlbum = open(bumfile, "a")
        controlbum.close()
        ahora = datetime.now()
        print 'ahora', ahora
        anno_actual = ahora.year
        mes_actual = ahora.month
        hora_actual = ahora.hour
        min_actual = ahora.minute
        seg_actual = ahora.second
        hoy = ahora.day
        # Si el día o mes está entre el 1 y 9, nos devuelve un sólo dígito, así que añadimos un 0 (cero) delante:
        if hoy <= 9:
            hoy = "0" + str(hoy)
        if mes_actual <= 9:
            mes_actual = "0" + str(ahora.month)
        timestamp = str(ahora.year) + str(mes_actual) + str(hoy) + str(
            hora_actual) + str(min_actual) + str(seg_actual)
        controlbum = open(tmp + 'bum.dat', "wb")
        controlbum.seek(0)
        controlbum.write(timestamp + ":" + texto)
        controlbum.close()
    else:
        controlbum = open(tmp + 'bum.dat', "r")
        controlbum.seek(0)
        data = controlbum.readline()
        controlbum.close()
        plugintools.log("BUM+= " + data)
        plugintools.log("Control de BUM+ activado. Analizamos timestamp...")
        data = data.split(":")
        timestamp = data[0]
        term_search = data[1]
        ahora = datetime.now()
        print 'ahora', ahora
        anno_actual = ahora.year
        mes_actual = ahora.month
        hora_actual = ahora.hour
        min_actual = ahora.minute
        seg_actual = ahora.second
        hoy = ahora.day
        # Si el día o mes está entre el 1 y 9, nos devuelve un sólo dígito, así que añadimos un 0 (cero) delante:
        if hoy <= 9:
            hoy = "0" + str(hoy)
        if mes_actual <= 9:
            mes_actual = "0" + str(ahora.month)
        timenow = str(ahora.year) + str(mes_actual) + str(hoy) + str(
            hora_actual) + str(min_actual) + str(seg_actual)
        # Comparamos valores (hora actual y el timestamp del archivo de control)
        if term_search == texto:
            result = int(timenow) - int(timestamp)
            print 'result', result
            if result > 90:  # Control fijado en 90 segundos; esto significa que una misma búsqueda no podremos realizarla en menos de 90 segundos, y en ese tiempo debe reproducirse el torrent
                # Borramos registro actual y guardamos el nuevo (crear una función que haga esto y no repetir!)
                ahora = datetime.now()
                print 'ahora', ahora
                anno_actual = ahora.year
                mes_actual = ahora.month
                hora_actual = ahora.hour
                min_actual = ahora.minute
                seg_actual = ahora.second
                hoy = ahora.day
                # Si el día o mes está entre el 1 y 9, nos devuelve un sólo dígito, así que añadimos un 0 (cero) delante:
                if hoy <= 9:
                    hoy = "0" + str(hoy)
                if mes_actual <= 9:
                    mes_actual = "0" + str(ahora.month)
                timestamp = str(ahora.year) + str(mes_actual) + str(hoy) + str(
                    hora_actual) + str(min_actual) + str(seg_actual)
                controlbum = open(tmp + 'bum.dat', "wb")
                controlbum.seek(0)
                controlbum.write(timestamp + ":" + texto)
                controlbum.close()
                kickass_results(params)
            else:
                plugintools.log("Recarga de página")
                kickass_results(params)
        else:
            # Borramos registro actual y guardamos el nuevo (crear una función que haga esto y no repetir!)
            ahora = datetime.now()
            print 'ahora', ahora
            anno_actual = ahora.year
            mes_actual = ahora.month
            hora_actual = ahora.hour
            min_actual = ahora.minute
            seg_actual = ahora.second
            hoy = ahora.day
            # Si el día o mes está entre el 1 y 9, nos devuelve un sólo dígito, así que añadimos un 0 (cero) delante:
            if hoy <= 9:
                hoy = "0" + str(hoy)
            if mes_actual <= 9:
                mes_actual = "0" + str(ahora.month)
            timestamp = str(ahora.year) + str(mes_actual) + str(hoy) + str(
                hora_actual) + str(min_actual) + str(seg_actual)
            controlbum = open(tmp + 'bum.dat', "wb")
            controlbum.seek(0)
            controlbum.write(timestamp + ":" + texto)
            controlbum.close()
            kickass1_bum(params)
Ejemplo n.º 49
0
def get_next_items( item ):

    plugintools.log("navigation.get_next_items item="+item.tostring())

    try:
        # ----------------------------------------------------------------
        #  Main menu
        # ----------------------------------------------------------------
        if item.channel=="navigation":

            if item.action=="mainlist":
                plugintools.log("navigation.get_next_items Main menu")
                itemlist = channelselector.getmainlist("bannermenu")

        elif item.channel=="channelselector":

            if item.action=="channeltypes":
                plugintools.log("navigation.get_next_items Channel types menu")
                itemlist = channelselector.getchanneltypes("bannermenu")

            elif item.action=="listchannels":
                plugintools.log("navigation.get_next_items Channel list menu")
                itemlist = channelselector.filterchannels(item.category,"bannermenu")

        else:

            if item.action=="":
                item.action="mainlist"

            plugintools.log("navigation.get_next_items Channel code ("+item.channel+"."+item.action+")")

            try:
                exec "import channels."+item.channel+" as channel"
            except:
                exec "import core."+item.channel+" as channel"

            from platformcode import platformtools

            if item.action=="play":
                plugintools.log("navigation.get_next_items play")

                # Si el canal tiene una acción "play" tiene prioridad
                if hasattr(channel, 'play'):
                    plugintools.log("navigation.get_next_items play Channel has its own 'play' method")
                    itemlist = channel.play(item)
                    if len(itemlist)>0:
                        item = itemlist[0]

                        # FIXME: Este error ha que tratarlo de otra manera, al dar a volver sin ver el vídeo falla
                        try:
                            platformtools.play_video(item)
                        except:
                            pass

                    else:
                        import xbmcgui
                        ventana_error = xbmcgui.Dialog()
                        ok = ventana_error.ok ("plugin", "No hay nada para reproducir")
                else:
                    plugintools.log("navigation.get_next_items play No channel 'play' method, executing core method")

                    # FIXME: Este error ha que tratarlo de otra manera, por al dar a volver sin ver el vídeo falla
                    # Mejor hacer el play desde la ventana
                    try:
                        platformtools.play_video(item)
                    except:
                        import traceback
                        plugintools.log(traceback.format_exc())
                        pass

                return []

            elif item.action=="findvideos":
                plugintools.log("navigation.get_next_items findvideos")

                # Si el canal tiene una acción "findvideos" tiene prioridad
                if hasattr(channel, 'findvideos'):
                    plugintools.log("navigation.get_next_items play Channel has its own 'findvideos' method")
                    itemlist = channel.findvideos(item)
                else:
                    itemlist = []

                if len(itemlist)==0:
                    from core import servertools
                    itemlist = servertools.find_video_items(item)

                if len(itemlist)==0:
                    itemlist = [ Item(title="No se han encontrado vídeos", thumbnail="http://media.tvalacarta.info/pelisalacarta/thumb_error.png") ]

            else:

                if item.action=="search":
                    tecleado = plugintools.keyboard_input()
                    if tecleado!="":
                        tecleado = tecleado.replace(" ", "+")
                        itemlist = channel.search(item,tecleado)
                elif item.channel=="novedades" and item.action=="mainlist":
                    itemlist = channel.mainlist(item,"bannermenu")
                elif item.channel=="buscador" and item.action=="mainlist":
                    itemlist = channel.mainlist(item,"bannermenu")
                else:
                    exec "itemlist = channel."+item.action+"(item)"

                for loaded_item in itemlist:

                    if loaded_item.thumbnail=="":
                        if loaded_item.folder:
                            loaded_item.thumbnail = "http://media.tvalacarta.info/pelisalacarta/thumb_folder.png"
                        else:
                            loaded_item.thumbnail = "http://media.tvalacarta.info/pelisalacarta/thumb_nofolder.png"

                if len(itemlist)==0:
                    itemlist = [ Item(title="No hay elementos para mostrar", thumbnail="http://media.tvalacarta.info/pelisalacarta/thumb_error.png" ) ]

    except:
        import traceback
        plugintools.log("navigation.get_next_items "+traceback.format_exc())
        itemlist = [ Item(title="Se ha producido un error", thumbnail="http://media.tvalacarta.info/pelisalacarta/thumb_error.png") ]


    return itemlist
Ejemplo n.º 50
0
def kickass0_bum(params):
    plugintools.log('[%s %s] [BUM+] Kickass... %s' % (addonName, addonVersion, repr(params)))

    try:
        texto = "";
        #texto='riddick'
        texto = plugintools.keyboard_input(texto, "Buscador Unificado de Torrents (BUM+)")
        plugintools.set_setting("alluc_search",texto)
        params["plot"]=texto
        texto = texto.lower()
        if texto == "":
            errormsg = plugintools.message("Arena+","Por favor, introduzca el canal a buscar")
            #return errormsg
        else:           
            texto = texto.lower().strip()
            texto = texto.replace(" ", "+")
            # https://kickass.to/usearch/birdman%20lang_id:14/
            url = 'https://kickass.to/usearch/'+texto+'/'
            params["url"]=url            
            url = params.get("url")
            referer = 'http://www.kickass.to'            
    except:
         pass      

    # Archivo de control de resultados (evita la recarga del cuadro de diálogo de búsqueda tras cierto tiempo)
    bumfile = tmp + 'bum.dat'
    if not os.path.isfile(bumfile):  # Si no existe el archivo de control, se crea y se registra la búsqueda
        controlbum = open(bumfile, "a")
        controlbum.close()
        ahora = datetime.now()
        print 'ahora',ahora
        anno_actual = ahora.year
        mes_actual = ahora.month
        hora_actual = ahora.hour
        min_actual = ahora.minute
        seg_actual = ahora.second
        hoy = ahora.day
        # Si el día o mes está entre el 1 y 9, nos devuelve un sólo dígito, así que añadimos un 0 (cero) delante:
        if hoy <= 9:
            hoy = "0" + str(hoy)
        if mes_actual <= 9:
            mes_actual = "0" + str(ahora.month)
        timestamp = str(ahora.year) + str(mes_actual) + str(hoy) + str(hora_actual) + str(min_actual) + str(seg_actual)
        controlbum = open(tmp + 'bum.dat', "wb")
        controlbum.seek(0)
        controlbum.write(timestamp+":"+texto)
        controlbum.close()
    else:
        controlbum = open(tmp + 'bum.dat', "r")
        controlbum.seek(0)
        data = controlbum.readline()
        controlbum.close()        
        plugintools.log("BUM+= "+data)           
        plugintools.log("Control de BUM+ activado. Analizamos timestamp...")
        data = data.split(":")
        timestamp = data[0]
        term_search = data[1]
        ahora = datetime.now()
        print 'ahora',ahora
        anno_actual = ahora.year
        mes_actual = ahora.month
        hora_actual = ahora.hour
        min_actual = ahora.minute
        seg_actual = ahora.second
        hoy = ahora.day
        # Si el día o mes está entre el 1 y 9, nos devuelve un sólo dígito, así que añadimos un 0 (cero) delante:
        if hoy <= 9:
            hoy = "0" + str(hoy)
        if mes_actual <= 9:
            mes_actual = "0" + str(ahora.month)
        timenow = str(ahora.year) + str(mes_actual) + str(hoy) + str(hora_actual) + str(min_actual) + str(seg_actual)
        # Comparamos valores (hora actual y el timestamp del archivo de control)
        if term_search == texto:
            result = int(timenow) - int(timestamp)
            print 'result',result
            if result > 90:  # Control fijado en 90 segundos; esto significa que una misma búsqueda no podremos realizarla en menos de 90 segundos, y en ese tiempo debe reproducirse el torrent
                # Borramos registro actual y guardamos el nuevo (crear una función que haga esto y no repetir!)
                ahora = datetime.now()
                print 'ahora',ahora
                anno_actual = ahora.year
                mes_actual = ahora.month
                hora_actual = ahora.hour
                min_actual = ahora.minute
                seg_actual = ahora.second
                hoy = ahora.day
                # Si el día o mes está entre el 1 y 9, nos devuelve un sólo dígito, así que añadimos un 0 (cero) delante:
                if hoy <= 9:
                    hoy = "0" + str(hoy)
                if mes_actual <= 9:
                    mes_actual = "0" + str(ahora.month)
                timestamp = str(ahora.year) + str(mes_actual) + str(hoy) + str(hora_actual) + str(min_actual) + str(seg_actual)
                controlbum = open(tmp + 'bum.dat', "wb")
                controlbum.seek(0)
                controlbum.write(timestamp+":"+texto)
                controlbum.close()                
                kickass_results(params)
            else:
                plugintools.log("Recarga de página")
                kickass_results(params)
        else:
            # Borramos registro actual y guardamos el nuevo (crear una función que haga esto y no repetir!)
            ahora = datetime.now()
            print 'ahora',ahora
            anno_actual = ahora.year
            mes_actual = ahora.month
            hora_actual = ahora.hour
            min_actual = ahora.minute
            seg_actual = ahora.second
            hoy = ahora.day
            # Si el día o mes está entre el 1 y 9, nos devuelve un sólo dígito, así que añadimos un 0 (cero) delante:
            if hoy <= 9:
                hoy = "0" + str(hoy)
            if mes_actual <= 9:
                mes_actual = "0" + str(ahora.month)
            timestamp = str(ahora.year) + str(mes_actual) + str(hoy) + str(hora_actual) + str(min_actual) + str(seg_actual)
            controlbum = open(tmp + 'bum.dat', "wb")
            controlbum.seek(0)
            controlbum.write(timestamp+":"+texto)
            controlbum.close()                
            kickass1_bum(params)
def get_next_items( item ):

    plugintools.log("navigation.get_next_items item="+item.tostring())

    try:
        # ----------------------------------------------------------------
        #  Main menu
        # ----------------------------------------------------------------
        if item.channel=="navigation":
		            # --- Update channels list ---------------------------------------
            from core import config
            if item.action=="mainlist":
                plugintools.log("navigation.get_next_items Main menu")

                if config.get_setting("updatechannels")=="true":
                    try:
                        from core import updater
                        actualizado = updater.updatechannel("channelselector")

                        if actualizado:
                            import xbmcgui
                            advertencia = xbmcgui.Dialog()
                            advertencia.ok("tvalacarta",config.get_localized_string(30064))
                    except:
                        pass
            # ----------------------------------------------------------------

            if item.action=="mainlist":
                plugintools.log("navigation.get_next_items Main menu")
                itemlist = channelselector.getmainlist("bannermenu")

        elif item.channel=="channelselector":

            if item.action=="channeltypes":
                plugintools.log("navigation.get_next_items Channel types menu")
                itemlist = channelselector.getchanneltypes("bannermenu")

            elif item.action=="listchannels":
                plugintools.log("navigation.get_next_items Channel list menu")
                itemlist = channelselector.filterchannels(item.category,"bannermenu")

        elif item.channel=="configuracion":
            plugintools.open_settings_dialog()
            return []

        else:

            if item.action=="":
                item.action="mainlist"

            plugintools.log("navigation.get_next_items Channel code ("+item.channel+"."+item.action+")")

            # --- Update channels files --------------------------------------
            if item.action=="mainlist":
                from core import config
                if config.get_setting("updatechannels")=="true":
                    try:
                        from core import updater
                        actualizado = updater.updatechannel(item.channel)

                        if actualizado:
                            import xbmcgui
                            advertencia = xbmcgui.Dialog()
                            advertencia.ok("plugin",item.channel,config.get_localized_string(30063))
                    except:
                        pass
            # ----------------------------------------------------------------

            try:
                exec "import channels."+item.channel+" as channel"
            except:
                exec "import core."+item.channel+" as channel"

            from platformcode import xbmctools

            if item.action=="play":
                plugintools.log("navigation.get_next_items play")

                # Si el canal tiene una acción "play" tiene prioridad
                if hasattr(channel, 'play'):
                    plugintools.log("streamondemand-pureita.navigation.py Channel has its own 'play' method")
                    itemlist = channel.play(item)
                    if len(itemlist)>0:
                        item = itemlist[0]

                        # FIXME: Este error ha que tratarlo de otra manera, al dar a volver sin ver el vídeo falla
                        try:
                            xbmctools.play_video(channel=item.channel, server=item.server, url=item.url, category=item.category, title=item.title, thumbnail=item.thumbnail, plot=item.plot, extra=item.extra, subtitle=item.subtitle, video_password = item.password, fulltitle=item.fulltitle, Serie=item.show)
                        except:
                            pass

                    else:
                        import xbmcgui
                        ventana_error = xbmcgui.Dialog()
                        ok = ventana_error.ok ("plugin", "No hay nada para reproducir")
                else:
                    plugintools.log("streamondemand-pureita.navigation.py No channel 'play' method, executing core method")

                    # FIXME: Este error ha que tratarlo de otra manera, por al dar a volver sin ver el vídeo falla
                    # Mejor hacer el play desde la ventana
                    try:
                        xbmctools.play_video(channel=item.channel, server=item.server, url=item.url, category=item.category, title=item.title, thumbnail=item.thumbnail, plot=item.plot, extra=item.extra, subtitle=item.subtitle, video_password = item.password, fulltitle=item.fulltitle, Serie=item.show)
                    except:
                        pass


                return []

            elif item.action=="findvideos":
                plugintools.log("navigation.get_next_items findvideos")

                # Si el canal tiene una acción "findvideos" tiene prioridad
                if hasattr(channel, 'findvideos'):
                    plugintools.log("streamondemand-pureita.navigation.py Channel has its own 'findvideos' method")
                    itemlist = channel.findvideos(item)
                else:
                    itemlist = []

                if len(itemlist)==0:
                    from servers import servertools
                    itemlist = servertools.find_video_items(item)

                if len(itemlist)==0:
                    itemlist = [ Item(title="No se han encontrado vídeos", thumbnail=os.path.join( plugintools.get_runtime_path() , "resources" , "images" , "thumb_error.png" )) ]
            # ---------------add_serie_to_library-----------
            elif item.action=="add_serie_to_library":
                plugintools.log("navigation.get_next_items add_serie_to_library")
                from platformcode import library
                import xbmcgui
                
                # Obtiene el listado desde el que se llamó
                action = item.extra
                    
                # Esta marca es porque el item tiene algo más aparte en el atributo "extra"
                if "###" in item.extra:
                    action = item.extra.split("###")[0]
                    item.extra = item.extra.split("###")[1]

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

                # Progreso
                pDialog = xbmcgui.DialogProgress()
                ret = pDialog.create('streamondemand-pureita', 'Añadiendo episodios...')
                pDialog.update(0, 'Añadiendo episodio...')
                totalepisodes = len(itemlist)
                plugintools.log ("navigation.get_next_items Total Episodios:"+str(totalepisodes))
                i = 0
                errores = 0
                nuevos = 0
                for item in itemlist:
                    i = i + 1
                    pDialog.update(i*100/totalepisodes, 'Añadiendo episodio...',item.title)
                    plugintools.log("streamondemand-pureita.navigation.py add_serie_to_library, title="+item.title)
                    if (pDialog.iscanceled()):
                        return
                
                    try:
                        #(titulo="",url="",thumbnail="",server="",plot="",canal="",category="Cine",Serie="",verbose=True,accion="strm",pedirnombre=True):
                        # Añade todos menos el que dice "Añadir esta serie..." o "Descargar esta serie..."
                        if item.action!="add_serie_to_library" and item.action!="download_all_episodes":
                            nuevos = nuevos + library.savelibrary( titulo=item.title , url=item.url , thumbnail=item.thumbnail , server=item.server , plot=item.plot , canal=item.channel , category="Series" , Serie=item.show.strip() , verbose=False, accion="play_from_library", pedirnombre=False, subtitle=item.subtitle, extra=item.extra )
                    except IOError:
                        import sys
                        for line in sys.exc_info():
                            logger.error( "%s" % line )
                        plugintools.log("streamondemand-pureita.navigation.py Error al grabar el archivo "+item.title)
                        errores = errores + 1
                        
                pDialog.close()
                    
                # Actualizacion de la biblioteca
                itemlist=[]
                if errores > 0:
                    itemlist.append(Item(title="ERRORE, la serie NON si è aggiunta alla biblioteca o la fatto in modo incompleto"))
                    plugintools.log ("navigation.get_next_items No se pudo añadir "+str(errores)+" episodios")
                else:
                    itemlist.append(Item(title="La serie è stata aggiunta alla biblioteca"))
                    plugintools.log ("navigation.get_next_items Ningún error al añadir "+str(errores)+" episodios")
                    
                # FIXME:jesus Comentado porque no funciona bien en todas las versiones de XBMC
                #library.update(totalepisodes,errores,nuevos)
                #xbmctools.renderItems(itemlist, params, url, category)
                    
                #Lista con series para actualizar
                from core import config
                nombre_fichero_config_canal = os.path.join( config.get_library_path() , "series.xml" )
                if not os.path.exists(nombre_fichero_config_canal):
                    nombre_fichero_config_canal = os.path.join( config.get_data_path() , "series.xml" )

                plugintools.log("nombre_fichero_config_canal="+nombre_fichero_config_canal)
                if not os.path.exists(nombre_fichero_config_canal):
                    f = open( nombre_fichero_config_canal , "w" )
                else:
                    f = open( nombre_fichero_config_canal , "r" )
                    contenido = f.read()
                    f.close()
                    f = open( nombre_fichero_config_canal , "w" )
                    f.write(contenido)
                from platformcode import library
                f.write( library.title_to_folder_name(item.show)+","+item.url+","+item.channel+"\n")
                f.close();
                return itemlist
            # --------------------------------------------------------------------
            elif item.action=="download_all_episodes":
                plugintools.log("navigation.get_next_items download_all_episodes")
                download_all_episodes(item,channel)
			#---------------------------------------------------------------------
            else:

                if item.action=="search":
                    tecleado = plugintools.keyboard_input()
                    if tecleado!="":
                        tecleado = tecleado.replace(" ", "+")
                        itemlist = channel.search(item,tecleado)
                elif item.channel=="novedades" and item.action=="mainlist":
                    itemlist = channel.mainlist(item,"bannermenu")
                elif item.channel=="buscador" and item.action=="mainlist":
                    itemlist = channel.mainlist(item,"bannermenu")
                else:
                    exec "itemlist = channel."+item.action+"(item)"

                for loaded_item in itemlist:

                    if loaded_item.thumbnail=="":
                        if loaded_item.folder:
                            loaded_item.thumbnail = os.path.join( plugintools.get_runtime_path() , "resources" , "images" , "thumb_folder.png" )
                        else:
                            loaded_item.thumbnail = os.path.join( plugintools.get_runtime_path() , "resources" , "images" , "thumb_nofolder.png" )

                if len(itemlist)==0:
                    itemlist = [ Item(title="No hay elementos para mostrar", thumbnail=os.path.join( plugintools.get_runtime_path() , "resources" , "images" , "thumb_error.png" )) ]

    except:
        import traceback
        plugintools.log("navigation.get_next_items "+traceback.format_exc())
        itemlist = [ Item(title="Se ha producido un error", thumbnail=os.path.join( plugintools.get_runtime_path() , "resources" , "images" , "thumb_error.png" )) ]


    return itemlist
Ejemplo n.º 52
0
def series_search(params):
    q = plugintools.keyboard_input("", title="Text to search")
    itemlist = api.series_search(0,1000,q)
    add_items_to_xbmc(params,itemlist)
    plugintools.set_view(plugintools.TV_SHOWS)