Generar un código QR

DieFeM

Miembro del equipo
Colaborador
4 Ago 2023
63
33
18
41
Girona, España
En mi dispositivo AndroidTV no hay un navegador compatible con el método call_browser (que se usa para abrir enlaces web), me preguntaba que opinan de generar un código QR como último recurso en aquellos dispositivos, como el mío, en los que call_browser no encuentre un navegador.

Esto lo pregunto antes de indagar en si es o no posible. No quisiera profundizar mas antes de saber si esto se ha planteado y descartado anteriormente.
 
Upvote 0
Según la situación, es plausible esto. Si es un enlace para consulta sería posible. Pero para escenarios como abrir un sitio para descargar un Torrent pues no tiene mucho sentido.

Sería cuestión de hacer el IU y usar alguna librería de Python que genere los QRs.

En cuanto a tu problema en particular, creo que amerita revisar ese método, porque recuerdo un método integrado de Python que permite llamar al navegador por defecto y que no se utiliza actualmente en la función call_browser.

Pensando incluso más allá, podría utilizarse el QR para mostrar los enlaces a los logs, al menos aquellos que no se borran tras el primer acceso.
 
  • Me gusta
Reacciones: DieFeM

DieFeM

Miembro del equipo
Colaborador
4 Ago 2023
63
33
18
41
Girona, España
Bueno, pues así, a modo experimental, para probar vamos... he añadido la librería
Por favor, Acceder o Registrarse para ver el contenido de los enlaces
, la cual requiere
Por favor, Acceder o Registrarse para ver el contenido de los enlaces
y
Por favor, Acceder o Registrarse para ver el contenido de los enlaces
y requieren python 3.7+, de lo que me he dado cuenta tarde, aunque hay otra que funciona con python 2 (aparentemente)
Por favor, Acceder o Registrarse para ver el contenido de los enlaces
.
Aunque he estado mirando el codigo de
Por favor, Acceder o Registrarse para ver el contenido de los enlaces
, y leyendo algunos artículos al respecto (
Por favor, Acceder o Registrarse para ver el contenido de los enlaces
,
Por favor, Acceder o Registrarse para ver el contenido de los enlaces
), aun no me he atrevido con la interfaz, así que he hecho uso de un método mas básico.

PS: Con PyQRCode y una version antigua de pypng (0.17, ya que la ultima solo funciona con 3.5+) funciona bien en Kodi 18 y en 20.
 
Última edición:
  • Me encanta
Reacciones: SistemaRayoXP
¡Se ve genial! Me agrada la implementación, es simple y directa. Podrías mover el código del QR y de la ventana a por ejemplo platformtools a una función tipo dialog_qr_message(heading, message, url) por poner un ejemplo, para poder utilizarlo en cualquier parte en el add-on.

Puedes revisar este enlace:
Por favor, Acceder o Registrarse para ver el contenido de los enlaces

La biblioteca qrcode está disponible al menos desde Kodi Isengard. Podría importarse desde el xml del add-on o integrar el código directo en /lib, y en el caso de pypng se puede utilizar la versión antigua que enlazaste.

Para el GUI, puedes ver
Por favor, Acceder o Registrarse para ver el contenido de los enlaces
en la clase RenumberWindow que utiliza
Por favor, Acceder o Registrarse para ver el contenido de los enlaces
para que te des una idea "por encima" de cómo crear una ventana. El principal reto es familiarizarse un poco con los conceptos de controles que se manejan con los GUIs, y acomodarlos para que queden estéticos :fresco:. A diferencia de WindowDialogXML, en esta clase tú defines la ventana manualmente desde el código, mientras que en la otra la defines en un archivo XML que se pone en resources.

Cabe mencionar que gran parte del código del GUI en Alfa está desactualizado respecto a Matrix, así que hay algunas funciones que, válgase la redundancia, funcionan diferente y parecen estar rotas en algunos casos. Haz tus pruebas y revisa la documentación de Kodi para corroborar.
 
  • Me gusta
Reacciones: DieFeM

DieFeM

Miembro del equipo
Colaborador
4 Ago 2023
63
33
18
41
Girona, España
Bueno, de momento he movido el código, a ver si me aclaro con el GUI y puedo sacar algo medio decente. :D

Por otro lado no tengo idea de como se importa el código desde otro addon, yo simplemente me los he bajado de pypi.org y los he metido en lib.
¿Me podrías decir alguna parte del código que me pueda servir de ejemplo, por favor?

He usado strings localizados que ya existen, supongo que habrá que añadir alguno.

generictools.py 3438
Python:
Por favor, Acceder o Registrarse para ver el contenido
platformtools.py 146 (después de dialog_browse que es la última dialog_*)
Python:
Por favor, Acceder o Registrarse para ver el contenido
 
  • Me gusta
Reacciones: SistemaRayoXP

DieFeM

Miembro del equipo
Colaborador
4 Ago 2023
63
33
18
41
Girona, España
Última edición:
  • Me asombra
Reacciones: SistemaRayoXP

DieFeM

Miembro del equipo
Colaborador
4 Ago 2023
63
33
18
41
Girona, España
Ah, pues sería mas sencillo, como lo hago ahora sale un cartel preguntando al usuario si quiere instalar el módulo al clicar.

Pero, me pregunto, al no estar disponible antes de jarvis, no sería mas compatible dejarlo opcional, al fin y al cabo es una funcionalidad menor que en la mayoría de los casos no se va a utilizar si existe un navegador compatible.
Aunque se podría querer usar para otros menesteres en un futuro. No se... :rolleyes: