Verständnissfrage - xbmcgui.ListItem

  • ich habe mal eine Frage zu xbmcgui.ListItem()

    ich habe ein dictionary listitems indem alle meine Items stehen, die ich an kodi übergeben möchte.


    die sitems sind alle in sp_items vorhanden...

    was ich nicht verstehe, wie muß addon_handle aufgebaut sein und
    und ich versuche das ganze wie folgt aus KODI als Content aufzurufen "plugin://plugin.program.serienplaner,?methode=get_item_serienplaner"
    aber irgendwie kommt in Kodi nichts an...


    ich habe das gefühl, da fehlt noch was....

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

  • Das komma da drin scheint mir schon mal zu viel zu sein

    hmm okay, hatte ich so von einem Anderen Programm in meinem Skin übernommen aber das lässt sich ja testen...


    addon_handle ist ein argument welches kodi dem python plugin übergibt.
    Um mehr sagen zu können bräuchte ich die ganze Datei

    hier ist mal die default.py

  • hm...
    jetzt bekomme ich einen Fehler angezeigt:

    Python
    Error Type: <type 'exceptions.TypeError'>
     Error Contents: an integer is required
     Traceback (most recent call last):
     File "G:\Kodi\portable_data\addons\plugin.program.serienplaner\default.py", line 659, in <module>
     xbmcplugin.addDirectoryItem(handle=addon_handle, url=url, listitem=li)
     TypeError: an integer is required

    irgendwie komm ich damit nicht so richtig klar...

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

  • ich komm mit der sys.argv nicht so richtig weiter...

    wenn ich mir die sys.argv mal im [definition='1','3']Debug[/definition] anzeigen lassen.
    beim Aufruf kommt dann folgendes:

    Code
    [plugin.program.serienplaner 0.0.1]: SerienPlaner sysargv: ['default.py', '?methode=get_item_serienplaner']

    normal sollte es doch aber so aussehen, oder:

    Code
    [plugin.program.serienplaner 0.0.1]: SerienPlaner sysargv: ['plugin://plugin.program.serienplaner/', '..', '?methode=get_item_serienplaner']

    irgendwie fehlt dort auch sys.argv[1]
    lt Tutorial sollte dort "The process handle for this add-on, as a numeric string" drin stehen...

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

  • Zeig' mal die addon.xml. Irgendwie habe ich den Verdacht, Dein Serienplaner ist kein Plugin, sondern nur ein Script. Scripte haben kein handle.

    sysargv[0] = ausgeführtes Script 'default.py'
    sysargv[1] = Parameter, die an das Script übergeben werden, in deinem Fall '?methode=get_item_serienplaner'

    Das Voranstellen eines '?' als Einleitung eines Parameterhashes ist ohnehin suboptimal, denn
    1. macht man sowas nur bei URLs (und Plugins)
    2. wird es ohnehin später bei der Parameterbehandlung weggeworfen

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960

    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Hab grad festegestellt das ich einen Fehler im Aufruf hatte...

    sieht jetzt so aus:

    Code
    plugin://plugin.program.serienplaner?methode=get_item_serienplaner

    jetzt bekomme ich die Fehlermeldung:

    Code
    10:11:21 T:6056 ERROR: Keymapping error: no such action 'plugin://plugin.program.serienplaner?methode=get_item_serienplaner ' defined
    10:11:21 T:6056 DEBUG: CApplication::ExecuteXBMCAction: Tried translating, but failed to understand plugin://plugin.program.serienplaner?methode=get_item_serienplaner

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

  • <extension point="xbmc.python.script" library="default.py" />

    Yupp, ist ein Script und kein Plugin...

    Ein Script kannst Du nicht mit plugin://blabla aufrufen, das geht nur über RunScript(blabla).

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960

    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • hmmm... komisch

    ich schau mir ja an wie es in anderen pluginsa gelöst wurde...

    Code
    <addon id="plugin.program.newscenter" name="NewsCenter" version="0.0.4" provider-name="NewsCenter">
        <requires>
            <import addon="xbmc.python" version="2.1.0"/>
            <import addon="script.module.feedparser" version="5.1.3"/>
    	<import addon="script.module.requests" version="2.3.0" />
        </requires>
        <extension point="xbmc.python.script" library="default.py" />
        <extension point="xbmc.service" library="starter.py" start="startup" />
    XML
    <content>plugin://plugin.program.newscenter?methode=get_buli_naechsterspieltag_items&buliliga=$INFO[Window(Home).Property(NewsCenter.Buli.LigaInfo)]</content>


    wo habe ich da jetzt den Denkfehler?

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

  • AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960

    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • nachdem ich nun das plugin als Content aufrufen kann möchte cih das ganze nun auch refreshen oder updaten...
    In der Wiki habe ich dazu container.update und container.refresh aber das klappt irgendwie nicht...

    ich wollte den container.update aufrufen, nachdem die listitems übergeben wurden
    also hinter

    Python
    listitems.append(dict(zip(properties, data)))    
    
    
            return listitems
        finally:
            xbmc.executebuiltin("Container.Update(plugin://plugin.program.serienplaner/?methode=get_item_serienplaner)")

    ich bekomme auch keine Fehlermeldung... er geht einfach nicht.
    stimmt da was am aufruf nicht?

    ich möchte diesen Container updaten:

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!