Página 2 de 4
Re: Cuadro de configuracion personalizado
Publicado: 05 Dic 2015, 16:59
por SeiTaN
super_berny escribió:SeiTaN escribió:¿No es más sencillo crear una propiedad para la ventana? "is_confirmed" boolean que se cambia cuando se ejecuta "__save_values()", y que se acceda por un metodo publico, ¿"is_confirmed()"? Así no habría que estar creando un control como flag.
Pues si, lo apunto para la proxima revision
He tardado un minuto
Código: Seleccionar todo
def __init__( self, list_controls , dict_values, caption=""):
self.dict_values= dict_values
self.modificado = False
self.confirmado = False
Añadida la linea en __save_values()
Código: Seleccionar todo
def __save_values(self):
self.confirmado = True
for v in self.controles.values():
y para obtener el valor....
Código: Seleccionar todo
ventana = guitools.SettingWindow(list_controls, dict_values, "Filtrado de enlaces por Serie")
ventana.doModal()
confirmed = ventana.isConfirmed()
if confirmed:
logger.info("he pulsado en ok")
Re: Cuadro de configuracion personalizado
Publicado: 05 Dic 2015, 17:09
por super_berny
SeiTaN escribió:He tardado un minuto
Como eres...
Yo dos minutos en añadir la documentacion y subir la version modificada al primer post

Re: Cuadro de configuracion personalizado
Publicado: 05 Dic 2015, 18:55
por SeiTaN
A ver si pasamos del xml a json, porque de expresiones regulares estoy cortito xDD
Mientras sigo indagando a ver si algun alma caritativa me dice como va.
Código: Seleccionar todo
<language>
<es>Español</es>
<la>Latino</la>
<vos>VOS</vos>
<vo>VO</vo>
<japovose>VOSE</japovose>
<jp-sub>VOSE</jp-sub>
</language>
como puedo obtener un diccionario con <element>value</element> como key y value, es decir, me terminaría asi...
Código: Seleccionar todo
IDIOMAS = {'es': 'Español', 'la': 'Latino', 'vos': 'VOS', 'vo': 'VO', 'japovose': 'VOSE', 'jp-sub': 'VOSE'}
Re: Cuadro de configuracion personalizado
Publicado: 06 Dic 2015, 01:23
por robalo
@SeiTaN te paso el procedimiento que uso para pasar los .xml de los canales a .json que aunque no es para el mismo caso te ayudará a ponerte en marcha.
Código: Seleccionar todo
def xml_to_json():
_json = """{
"id" : "%s",
"name" : "%s",
"language" : "%s",
"update_url" : "%s",
"active" : %s,
"include_in_global_search" : %s,
"version" : %s,
"adult" : %s,
"date" : "%s",
"changes" : "%s",
"fanart" : "%s",
"thumbnail" : "%s",
"category" : %s
}
"""
ruta = os.path.join( config.get_runtime_path() , "channels" )
files = os.listdir(ruta)
for file in files:
if file.endswith('.xml'):
x = open( os.path.join(ruta,file), "r" )
j = open( os.path.join(ruta,file.replace('.xml', '.json')), "w" )
_xml = x.read()
x.close()
id = scrapertools.find_single_match(_xml, '<id>([^<]+)<')
name = scrapertools.find_single_match(_xml, '<name>([^<]+)<')
language = scrapertools.find_single_match(_xml, '<language>([^<]+)<')
update_url = scrapertools.find_single_match(_xml, '<update_url>([^<]+)<')
active = scrapertools.find_single_match(_xml, '<active>([^<]+)<')
include_in_global_search = scrapertools.find_single_match(_xml, '<include_in_global_search>([^<]+)<')
version = scrapertools.find_single_match(_xml, '<version>([^<]+)<')
adult = scrapertools.find_single_match(_xml, '<adult>([^<]+)<')
date = scrapertools.find_single_match(_xml, '<date>([^<]+)<')
changes = scrapertools.find_single_match(_xml, '<changes>([^<]+)<')
fanart = scrapertools.find_single_match(_xml, '<fanart>([^<]+)<')
thumbnail = scrapertools.find_single_match(_xml, '<thumbnail>([^<]+)<')
_json2 = _json % (id, name, language, update_url, active, include_in_global_search, version, adult, date, changes, fanart, thumbnail, "%s")
if '<categories>' in _xml:
categorias = re.compile('<category>(.*?)</category>',re.DOTALL).findall(_xml)
categoria = "[\n "
for c in categorias:
categoria+= '"' + c + '",\n '
categoria = categoria[:-10] + "\n ]"
_json3 = _json2 % categoria
j.write(_json3)
j.close()
Re: Cuadro de configuracion personalizado
Publicado: 06 Dic 2015, 12:49
por SeiTaN
Hola robalo, pero lamento que no me vale, ya que la estructura es distinta de lo que yo necesito.
Dejo de escribir en este hilo para no desviarle el hilo a super_berny
Gracias.
Re: Cuadro de configuracion personalizado
Publicado: 06 Dic 2015, 21:35
por robalo
Re: Cuadro de configuracion personalizado
Publicado: 07 Dic 2015, 18:43
por jesus
En otras ocasiones yo he resuelto este problema sin cuadros de diálogo, usando items. Es una forma de que al hacer una app multiplataforma no te vuelvas loco implementando mil componentes cada vez que te peleas con una nueva plataforma.
Añades un item "Configuración del canal", que tenga como hijos "Usuario:", "Contraseña:", "Nº de resultados:", etc...
Y cuando eliges uno de esos items te sale el diálogo estándar según el tipo (texto, lista, etc.).
Re: Cuadro de configuracion personalizado
Publicado: 07 Dic 2015, 18:50
por SeiTaN
Jesús ya que te tengo a mano y sino te importa, en Plex u otras plataformas, ¿¿se puede usar algo parecido al contextMenu??
Gracias.
Re: Cuadro de configuracion personalizado
Publicado: 07 Dic 2015, 19:00
por jesus
No
De hecho la configuración del plugin es algo que va en el cliente, según desde dónde la ejecutes probablemente ni funcione. Es un problema que tienen los usuarios de Plex.
La solución de usar items valdría para Plex, aunque no podrías hacer listas de selección. Sólo pedir textos planos.
Re: Cuadro de configuracion personalizado
Publicado: 08 Dic 2015, 11:53
por super_berny
jesus escribió:En otras ocasiones yo he resuelto este problema sin cuadros de diálogo, usando items.
Si, en mi primera version (¿recuerdas?) tb utilice los items para eso, pero era mas limitado y un problema sobretodo por el boton atras (action_back si no recuerdo mal). Me parece q nemo y robalo han estado trabajando en eso, pero no he tenido ocasion de mirarlo aun.
jesus escribió:Y cuando eliges uno de esos items te sale el diálogo estándar según el tipo (texto, lista, etc.).
Ilustranos Jesus, ¿como sacas un dialogo estandar del tipo lista o bool?
jesus escribió:...Es una forma de que al hacer una app multiplataforma no te vuelvas loco implementando mil componentes cada vez que te peleas con una nueva plataforma.
Pero cuando hablas de sacar el dialogo estandar tb te estas refiriendo solo a xbmc ¿no? Si quieres esos cuadros en otras plataformas no te queda otra q implementarlos, que es lo q yo propongo: un guitools por cada plataforma. En plex ni idea, pero en html por ejemplo no se me antoja dificil. ¿q otras plataformas deberian tenerlo?