Container.content(sets) geht nicht ausserhalb eines Container mit einer Variable.......

  • Hallo,


    ich habe in meiner variables xml datei folgende variable :


    Code
    <variable name="value_ground11_value">
    <value condition="Container.Content(movies) | Window.IsVisible(VideoPlaylist) | Container.Content(musicvideos)">$INFO[ListItem.Country]</value>
    <value condition="Container.Content(sets)">$INFO[Window(Home).Property(SkinHelper.ListItem.Country)]</value>
    </variable>

    er nimmt aber das "Container.Content(sets)" nicht an, also er erkennt nicht das es ein Set ist, egal ob anstatt dem skinhelper befehl was anderes rein schreibe, er macht es nicht.

    habe auch bereits "SubString(ListItem.Path,videodb://movies/sets,left)" versucht, auch dies geht nicht AUSSERHALB meines Containers in der Ansicht.


    Hat jemand ne andere idee?

  • Hey,

    er nimmt aber das "Container.Content(sets)" nicht an, also er erkennt nicht das es ein Set ist, egal ob anstatt dem skinhelper befehl was anderes rein schreibe, er macht es nicht.

    Container.content(sets)

    wäre nur true wenn du auch in der Ebene Zusammenstellungen bist - also dort wo es nur Sets gibt.
    Ich nem mal an du bist in Filme indem sich Filme und Sets befinden können.

    Versuch mal ListItem.IsCollection.
    Bzw. musst dann in der Zeile drüber auch dasI "sCollection" ausschließen weil der Content ja trotzdem Movies ist.
    Oder du setzt es darüber in der VAR.

    Grüße

  • Jap der Hinweis mit dem ausschließen war es, vielen dank

    Die Frage ist aber auch wo du es verwenden willst? Das ist ja mittlerweile richtig tricky geworden..
    In den Dialoginfos soll man ja z.B. kein content mehr verwenden - da das zu "missverständnissen" kommen kann wenn die Info aus einem Content geöffnet wird.
    Als Beispiel ich würde einen Filmcontent auf Serienebene öffnen, oder im Home ein Widget - per "i"..
    Dort wäre container.content entweder leer (im Home), oder tvshows (bei Serien)..

    Da würde ich generell drüber Nachdenken ob es nicht mal ListItem.DBType versuchst.. Dann könnte man die variable für Ansichten und Infos nutzen sofern das die helper Property hergeben
    - das "alte" Setinfo Script von Phil konnte die Infos ja z.B. nur für das Fenster videos bereitstellen..

    Grüße

  • Würde vielleicht sinn machen - DBType geht auch in Widgets, und spätestens in kodi 18 wenn Variablen auch außerhalb von videos ohne Container ID sich
    immer auf den Fokus beziehen, kann man dann auch solche komplexen Info VAR´s global im Skin verwendet wenn man es mit DBType macht.
    Den gibts in Videos als auch in von contents gefüllte Listen. Content gibts ja nur in "Datenbanklisten".

    Grüße

  • Hattest du bei dir variablen drin mit dennen man sich ähnliche filme anzeigen lassen kann ?

    Ja.. Geht aber nur mittels Substrings..
    Solang man nicht gerade 10 genres pro Film/Serie hat klappt das ganz gut - ich verwende z.B. meist nur zwei Eindeutige und nicht so viel verschiedene..
    Hat man zuviele genre kannst fast gleich eine Randomliste verwenden bei sowas.

    Da die VAR von oben nach unten bis zum Match Verglichen wird, trifft er dann halt bei einem Film der genre Action / Krimi hätte, wenn Action über Krimi in
    der VAR kommt Action..

    Da Substrings bzw. Contains nicht zwischen String ethält string gehen musst es als "Reintext" geschrieben machen. Ich hab dann halt Deutsche und Englische Bezeichnungen verwendet
    mit allem was mir so einfiel an Varianten - aber hier ist die Hauptsache ja das er überhaupt was anzeigt.

    Grüße

  • Je nach Genre in deiner DB halt - bei uns läuft das schon jahrelang ohne das mal nichts dabei rauskam..
    Was auch mit etwas umbauen geht:

    Wenn eine Playliste z.B. mit zuletzt gesehenen Filmen/Serien als "Quelle" nimmst und per ID die Als ListItem.Genre angibst.

    Hast zuletzt wenn Film gesehen der Action enthält kommen Actionfilme..
    Also so ne Art "Because you Watched" aber ohne Script mit Bombensicheren Infolabels da es ein "richtiger" Playlistcontent ist.

    Nur die clicks sind teils tricky falls mans in video oder der Dialogviedeoinfo verwendet.

    Grüße

  • die onclicks starten doch bei filmen standard gemäß den film aus der dialogvideoinfo.


    Bei serien hab ich es noch gar nicht probiert.


    Das mit der methode habe ich so nich nicht getestet, aktuell gehe ich direkt auf die playlisten.

    Muss ich mir mal ansehen

    Wie würde der aufruf dann aussehen wenn ich das nutzen möchte ?

  • Momentan greift du ja auf ListItem des Focussierten Filmes zu.
    Das geht aber genausogut über einen "Hiddencontainer". Irgendwo außerhalb einen Container mit einem Content der nach "irgendwas filtert was dir so einfällt".
    Z.b. zuletzt gesehene Filme als Sortierung, oder Sortierung nach "am meisten gesehen".
    Dem Container gibst eine ID und greift dann mit Container(ID).ListItem.Genre auf den zu statts auf den Focus.
    Dann kämen wenn zuletzt einen Actionfilm gesehen hast Actionfilme raus (im Idealfall).

    Grüße

  • okay das hört sich ja interessant an.

    Also quasi empfohlen aufgrund von zuletzt gesehen.


    Achja das mit dem oninfo geht nun doch, mit der condition “container.content(xx)

    Kennst du dich mit den möglichkeiten des content aus ? Zb bezogen auf musik usw ?
    Also was es alled für möglichkeiten gibt ?

  • doch das geht siehe hier :


    Code
    <content sortby="title" sortorder="ascending">$INFO[ListItem.Path].actors/</content>


    so durchsucht er den pfad des film ordners :thumbup:

    aber was ist den da der richtige onclick damit er ´mir die filme der schauspieler anzeigt?

    Und du nutzt den helper nicht ne, wie lässt du dir zb set discarts anzeigen oder die plots ?

    Lässt du das einfach leer ?

  • Da greifst aber tief in die Trickkiste;), da muss man auch erst draufkommen.
    Kann natürlich Gefährlich werden, ich hab gar keine Ahnung ob wirklich alle Scrappermethoden das Verzeichnis Überhaupt anlegen.

    Die textinfos hol ich schon seit Eden aus Phils
    https://github.com/phil65/script.skin.info.service

    Das läuft immer noch, und zwar absolut stabil bei mir und das schon seit Ewigkeiten. Da seh ich keinerlei Grund dafür was anderes zu verwenden.
    Die SetDiscs benötige ich persönlich für mich gar nicht - für mich ist das lächerlich da irgendwo eine Reihe von 5 oder mehr, Daumengroße,
    unidentifizierbare runde Artworks irgendwo mit unterzubringen nur damit es "voll" wird.

    Artworks bin ich auch der Meinung das solche wie Logos oder Discs entweder Stilmittel sein sollten oder für irgendetwas gut sein müssen.
    Logisch für mich ist da eine Disc bei Musik, oder aber als eine Art Indikator "das kommt von einer original quelle" in der Art davon hab ich auch die
    Blueray oder DVD.
    Alles andere wie das reine runterladen irgendwelcher "Scheibenbilder" macht für mich keinen Sinn - und da wir zu 99% TV Aufnahmen haben mal gar nicht.


    Aber zu deiner Frage:
    Der Skin Infoservice hat bei SetDiscs das Problem das die Propertys nicht anständig geleert werden und Discs von Sets die vorher größer waren im Speicher bleiben.
    Da wir z.B. im Flex aber eh einen "hiddencontainer" in den myNAV´s für diverse andere sachen haben, hab ich sie daraus genommen.

    Der sieht dann so aus für Musik und Video.

    Kann man für allerlei brauchen wie zum Anzeigen wieviele Filme drin sind oder genres usw.

    Mit Container(ID).ListItemNowrap(1).Art(discart) kann ich die bequem aus der Datenbank holen.
    Textinfos kommen vom Infoservice der nur im Fenster videos funktioniert - braucht man ja weil so etwas wie genre sonst "doppelt gleiche" Textinfos produzieren würde.

    Die Actors aus deinem Pfad unter Filme greifen ja nur den lokalen Pfad ab - würdest du da eine Textdatei reinlegen käme die genauso.
    Da dieser Pfad aber kein Datenbankpfad ist wird da beim click nichts passieren - allenfalls da es ein picture ist, könntest ne Slideshow starten.
    Ich hab das gerade mal versucht, und die Einträge sind wirklich nur die Bilder, ohne Möglichkeit einer $INFO[Container(10001).ListItem.DBID] oder sonst was.
    Einziges was mir noch einfällt wäre eine Extendedinfo Abfrage Anhand des Labels - aber auch da wird nichts bei rauskommen da das .jpg ja auch noch mitkommt.
    Sinnvoll wäre vielleicht das öffnen der "normalen" info mit einem Focus direkt auf Actor..

    Aber mehr als Anzeigen wird wahrscheinlich nichts - ich hab mich damit aber auch noch nie befasst ob Kodi da überhaupt alle immer hinterlegt oder ob es auch mal sein kann
    das ein "nicht heruntergeladenes" Actorthumb vom einen Film durch eins im Cache durch einen anderen Film dann mitverwendet wird oder nicht.

    Grüße

  • okay also ich gucke mal ob ich es richtig verstanden habe ja?


    die variable oben kann man zb für onclicks nutzen in der dialogvideoinfo oder überall wo eine DBID vorhaben ist richtig?


    aber mit dem "Container(ID).ListItemNowrap(1).Art(discart)" musst mir bitte nochmal erklären, also sagen wir ich bin in einer View unter Filme, diese liste hat dann die ID "90" , dann kann ich mit "Container(90).ListItemNowrap(1).Art(discart)" oder "Container(90).ListItemNowrap(2).Art(discart)" mir die discart1 und discart2 des Sets anzeigen lassen?

    das geht doch so nicht da ich so dann auf die list einfach den nächsten titel wähle oder?

    das selbe sollte mit clearlogo usw, also allen labels gehen, oder habe ich dich völlig falsh verstanden und du nutzt das "skin.info.service" script?


    Edit

    Also ich mache nen unsichtbaren container mit der variable oben, und sage in meiner view dann

    “Container(unsichtbarer container mit der variable als content).ListItemNowrap(1).Art(discart)“

    Dann dürfte es gehen oder ?


    EDIT2



    das geht wunderbar :thumbup:

    echt top marc, jetzt hab ich das schon mal unabhängig von scripten :thumbup:

Jetzt mitmachen!

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