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.
:oops:
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():

Código: Seleccionar todo

    def isConfirmed(self):
        return self.confirmado
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 :lol:

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
:lol: :lol: :lol: :lol: me parce que hablamos idiomas diferentes, no se de dónde sacas la traducción a lo escrito, igual la respuesta era para otro hilo por que soy incapaz de encajarlo en la conversación :lol: :lol: :lol: :lol: a ver si va aser la edad ;)

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?