Necesito una mano con el desarrollo de un addon

ponchofcult

Usuario Novato
15 Nov 2017
16
1
3
33
Hola, que tal ! Vengo acá para preguntarles a ustedes que son unos cracks algunas cosillas que no logro resolver, estoy tratando de desarrollar un addon y algún canal o canales para Alfa pero hay cosas que todavía no entiendo del todo, para el addon estoy usando un framework que se llama Codequick y esta muy fácil de usar (tambien quiero aprender a hacerlo con beautifulsoup, selenium, etc... pero primero meter el primer gol xD luego vendrán los otros) ya he logrado crear menues, submenues, los elementos con su label y su thumbnail incluso reproducido algunas cosas mas que nada con resolveURL pero mi problema es con los archivos torrent o magnet, no consigo reproducirlos con Elementum, lo que se es que se necesita un enlace parecido a este "plugin://plugin.video.elementum/play?uri=%s" también esta funcion o modo no se como se llame "xbmc.executebuiltin" también veo muchos signos de '%' o '%s' '%3A' '%2F' buscando por internet vi que algunos son una especie de codificación pero no entiendo si yo debo ponerlos o se ponen solos o como esta el show tampoco se donde debo colocar cada cosa dejo mi codigo para ver si alguien encuentra a Wally jaja

Python:
# -*- coding: utf-8 -*-

from __future__ import unicode_literals

# noinspection PyUnresolvedReferences
from codequick import Route, Resolver, Listitem, utils, run
from codequick.utils import urljoin_partial, bold
import urlquick
import xbmcgui
import re
import resolveurl
import xbmc
import urllib


from codequick import Resolver, Route, Listitem

@Route.register
def root(plugin,content_type="segment"):
    headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36"}
    resp = urlquick.get("https://todotorrents.net/pelicula/24564/El-rey-Arturo-Versin-Extendida", headers=headers, max_age=-1)
    root_elem = resp.parse("div",attrs={"class":"text-center"})
    videos_list = root_elem.iterfind("p")

    for elem in videos_list:
        item = Listitem()
        item.label = elem.find("a").text
        url = elem.get("href")
        item.set_callback(play_video, url=url)
        yield item


@Resolver.register
def play_video(plugin, url):   
    url = url
    uri = "plugin://plugin.video.elementum/play?uri=%s"
    # resolved = resolveurl.resolve(url)
    # return resolved
    # return plugin.extract_source(url)
    xbmc.executebuiltin( "PlayMedia("+"plugin://plugin.video.elementum/play?uri=%s" % url+")" )
Lo que esta comentado es lo que use para reproducir videos normales como de youtube, les dejo también los documentos de codequick para el que este interesado en programar con ese framework ya que esta muy fácil Documentación, de antemano muchas gracias !
 
Lo que mencionas es url_encoding o codificación de url. Es necesario codificar la url que pases en el parámetro url a Elementum, ya que para llamar a cualquier addon externo de la manera plugin:// se está llamando como una url, como un enlace, vamos, similar al que tienes en el navegador web.

Y, lógicamente, no se puede colocar cualquier carácter en un parámetro de url porque se "malinterpreta" como parte de la url en lugar de como parte del parámetro. Ejemplo simple, no puedes poner una / [diagonal] en un parámetro porque se malinterpretaría como una ruta en lugar de parte del parámetro. En su lugar, se "escapa" con %2F.

Dale una leída por esta sección de General Add-on Development en la wiki de Kodi [en inglés] y mira la función build_url, nota la llamada a urlencode. Te recomiendo que también des una leída a Special protocol y List of built-in functions en la sección de Add-on development (tu principal fuente de conocimiento si apenas empiezas) de esa misma wiki para que te des una idea de cómo funcionan algunas cosas.

Si te sientes más aventurero y te quieres adentrar a cosas más avanzadas, puedes mirar Kodi Documentation: Python para ver documentación un poco más compleja pero más "completa".

Cabe decir que el apoyo con crear tu propio add-on que puedes obtener en este foro es limitado por diversas razones históricas, así que te recomiendo leer mucho y aprender por tu cuenta, quizá viendo cómo lo hacen algunos add-ons (pero da el respectivo crédito ;) ). Pero si quieres ayuda con algún canal, mejora o sugerencia sobre el código de Alfa, tienes todo nuestro apoyo, ej. cómo agregar añadir a videoteca o autoplay a los canales o cualquier cosa que se te venga a la mente.
 
  • Me encanta
Reacciones: ponchofcult

ponchofcult

Usuario Novato
15 Nov 2017
16
1
3
33
Lo que mencionas es url_encoding o codificación de url. Es necesario codificar la url que pases en el parámetro url a Elementum, ya que para llamar a cualquier addon externo de la manera plugin:// se está llamando como una url, como un enlace, vamos, similar al que tienes en el navegador web.

Y, lógicamente, no se puede colocar cualquier carácter en un parámetro de url porque se "malinterpreta" como parte de la url en lugar de como parte del parámetro. Ejemplo simple, no puedes poner una / [diagonal] en un parámetro porque se malinterpretaría como una ruta en lugar de parte del parámetro. En su lugar, se "escapa" con %2F.

Dale una leída por esta sección de General Add-on Development en la wiki de Kodi [en inglés] y mira la función build_url, nota la llamada a urlencode. Te recomiendo que también des una leída a Special protocol y List of built-in functions en la sección de Add-on development (tu principal fuente de conocimiento si apenas empiezas) de esa misma wiki para que te des una idea de cómo funcionan algunas cosas.

Si te sientes más aventurero y te quieres adentrar a cosas más avanzadas, puedes mirar Kodi Documentation: Python para ver documentación un poco más compleja pero más "completa".

Cabe decir que el apoyo con crear tu propio add-on que puedes obtener en este foro es limitado por diversas razones históricas, así que te recomiendo leer mucho y aprender por tu cuenta, quizá viendo cómo lo hacen algunos add-ons (pero da el respectivo crédito ;) ). Pero si quieres ayuda con algún canal, mejora o sugerencia sobre el código de Alfa, tienes todo nuestro apoyo, ej. cómo agregar añadir a videoteca o autoplay a los canales o cualquier cosa que se te venga a la mente.
Muchísimas gracias, un montón de información para leer jaja así que a darle si de echo también he tratado de empaparme de como hacer un canal, lo que pasa es que la pagina a la que le quiero hacer el addon es una de conciertos de pop japones (aidoru-online) y como en Alfa no hay alguna sección de musica o algo parecido supuse que no seria lo idóneo hacer un canal de esa pagina, pero si quiero hacer algun que otro canal de peliculas o series, donde me he trabado con Alfa es igual en la reproducción de archivos pero ahora que me baje el canal de ejemplo que tienen de naruto creo esta bien explicado, solo tengo que agarrarle la onda al regex que no esta tan difícil la verdad pero si tiene sus cositas, muchas gracias de nuevo :D
 
  • Me gusta
Reacciones: SistemaRayoXP

ponchofcult

Usuario Novato
15 Nov 2017
16
1
3
33
Gracias de nueva cuenta @SistemaRayoXP, me gastaría revivir este tema ya que estoy contento porque ya casi que termine mi addon que ya funciona en un 80% bastante bien, y quiero ver si alguien me puede ayudar a encontrar que provoca un problema que tengo que no me deja terminar.

Y ese problema es que solo me funcionan los torrent que descargo y mando a Elementum, Torrest o incluso con Torrentin como intemediario si el torrent tiene mas de 1 video, me dan a elegir que video reproducir o mediante RunPlugin carga normalmente si tiene mas de un video me lo da a elegir, si solo tiene uno solamente carga y al final no pasa nada.

El problema mayor (aunque es lo que deberia de usar) es cuando uso PlayMedia ya que Kodi se crashea de buenas a primeras, no me sale ningun error claro que entienda yo a simple vista por eso voy a colocar mis logs que me han salido una de Elementum y otra de Torrest a ver si alguien que tenga mas conocimiento que yo puede saber que es lo que esta pasando también colocare un enlace para descargar mi addon y si pueden probarlo, también para ver si también se crashea para otros usuarios ya que al fina de cuentas además de para mi, estoy haciendo el addon para personas que probablemente no sepan que es Kodi o como solucionar problemillas como estos a la primera, se los agradezco un montón desde ya, si prueban el addon solo necesitan primero registrarse en aidoru-online.me y poner sus datos en settings

log elementum: hastebin
log torrest: hastebin

addon: plugin.video.aidoru-online