v21 Can't get a panel to display, but labels do, TMDB helper related
#1
I'm stuck and I've tried multiple methods and used Github to try to figure out what I'm doing wrong. I took the TMDB recommended method MikeS help get going which works like a champ. i modeled the controls of the old embruary functionality and it is almost entirely working. The example I'm trying to is use TMDB helper to get the images to create the slider for the selected Actor in a gallery similar to the recommended movies script. The logic and operation are working on button hover/select, the labels show up but I can't for the life of me figure out why the panels are not showing up. I've even tried the example on TMDB helper with a direct link but that image never shows up either. The visibility is the same for the labels and the panels, so in theory, they should be visible at the same time. I think I have the parameters right but everything I've tried, no panels, only labels.... not sure what I'm missing.

EDIT: This is all being done in Includes_InfoDialogs.xml

Here is a video of it in action and I'll post the code below. Any ideas? Thx.

http://www.kittmaster.com/imagedump/kodi...sible.html

Logic controller:

xml:

            <!-- Buttons List -->
            <control type="list" id="9000">
                <visible>String.IsEqual(ListItem.Property(item.type),person)</visible>
                <top>555</top>
                <left>-10</left>
                <right>25</right>
                <height>80</height>
                <onup condition="Container(9000).Hasfocus(100001)">SetFocus(20052)</onup>
                <onup condition="Container(9000).Hasfocus(100002)">SetFocus(20053)</onup>
                <onup condition="Container(9000).Hasfocus(100003)">SetFocus(20054)</onup>
                <include>InfoDialogButtons</include>
                <content>
                    <item id="100001">
                        <description>Movies</description>
                        <label></label>
                        <label2>$LOCALIZE[342]</label2>
                    </item>
                    <item id="100002">
                        <description>TV Shows</description>
                        <label></label>
                        <label2>$LOCALIZE[20343]</label2>
                    </item>
                    <item id="100003">
                        <description>Images</description>
                        <label></label>
                        <label2>$LOCALIZE[1213]</label2>
                    </item>
                </content>
            </control>
            <control type="group" id="9001">    <!-- Recommendations Rolling Panel & Label -->
                <visible>String.IsEqual(ListItem.Property(item.type),person)</visible>
                <top>300</top>
                <right>25</right>
                <control type="label">
                    <visible>Container(9000).HasFocus(100002)</visible>
                    <top>400</top>
                    <height>40</height>
                    <font>Font30_Reg</font>
                    <label>$LOCALIZE[32020]:</label>
                    <textcolor>$VAR[PanelHighlightColorVar]</textcolor>
                </control>
                <control type="label">
                    <visible>Container(9000).HasFocus(100003)</visible>
                    <top>440</top>
                    <height>40</height>
                    <font>Font30_Reg</font>
                    <label>Death would be more merciful than TMDB Helper</label>
                    <textcolor>$VAR[PanelHighlightColorVar]</textcolor>
                </control>
                <control type="panel" id="20053">
                    <include content="DialogExtraInfo">
                        <param name="visible">Container(9000).HasFocus(100002)</param>
                        <!-- <param name="art">plugin://plugin.video.themoviedb.helper?info=images&type=person&tmdb_id=$INFO[ListItem.Property(tmdb_id)]</param> -->
                        <param name="art">plugin://plugin.video.themoviedb.helper?info=images&type=person&tmdb_id=1100</param>
                    </include>
                </control>
                <control type="panel" id="20054">
                    <include content="DialogExtraInfo">
                        <param name="visible">Container(9000).HasFocus(100003)</param>
                        <!-- <param name="art">plugin://plugin.video.themoviedb.helper?info=images&type=person&tmdb_id=$INFO[ListItem.Property(tmdb_id)]</param> -->
                        <param name="art">plugin://plugin.video.themoviedb.helper?info=images&type=person&tmdb_id=1100</param>
                    </include>
                </control>
            </control>
            <control type="textbox">    <!-- Plot(s) Information -->
                <height>130</height>
                <top>410</top>
                <include>AutoScrollPlot</include>
                <label fallback="$INFO[Window.Property(plot)]">$INFO[Container.ListItem.Plot]</label>
            </control>  

Slider control include recommendation uses and used for logic controller:

xml:

    <include name="DialogExtraInfo">
        <!-- <param name="PanelID" /> --> <!-- Added CMB -->
        <param name="visible"/>
        <param name="labelvisible">false</param>
        <param name="overlayiconvisible">false</param>
        <param name="art">$INFO[ListItem.Thumb]</param>
        <param name="art">$INFO[ListItem.icon]</param>
        <param name="art">$INFO[ListItem.Poster]</param> <!-- Added CMB -->
        <!-- <param name="art">$INFO[ListItem.Thumb]</param> CMB -->
        <!-- <param name="art">$INFO[ListItem.icon]</param> CMB -->    
        <param name="aspect">stretch</param>
        <param name="diffuse">diffuse/rounded5-230x345.png</param>
        <param name="width">235.8</param>
        <param name="height">344</param>
        <param name="containerheight">370</param>
        <param name="label">$INFO[ListItem.Label]</param>
        <param name="label2">$INFO[ListItem.Label2]</param>
        <definition>
            <animation type="Conditional" condition="$PARAM[visible]">
                <effect type="fade" start="50" end="100" time="400"/>
                <effect type="slide" start="1920" end="0" time="0"/>
            </animation>
            <animation type="Conditional" condition="![$PARAM[visible]]">
                <effect type="fade" start="100" end="0" time="400"/>
                <effect type="slide" start="0" end="1920" time="0"/>
            </animation>
            <left>-10</left>
            <width>1179</width>
            <height>$PARAM[containerheight]</height>
            <ondown>9000</ondown>
            <orientation>horizontal</orientation>
            <include>ContainerScrollTime</include>
            <itemlayout width="$PARAM[width]" height="$PARAM[height]">
                <include content="ViewArtwork">
                    <param name="art">$PARAM[art]</param>
                    <param name="aspect">$PARAM[aspect]</param>
                    <param name="texturefadetime"/>
                    <param name="diffuse">$PARAM[diffuse]</param>
                </include>
                <control type="image">
                    <visible>$PARAM[labelvisible]</visible>
                    <left>10</left>
                    <right>10</right>
                    <bottom>10</bottom>
                    <height>90</height>
                    <texture border="5">panels/art-overlay.png</texture>
                </control>
                <control type="label">
                    <visible>$PARAM[labelvisible]</visible>
                    <left>15</left>
                    <right>15</right>
                    <bottom>43</bottom>
                    <height>30</height>
                    <font>Font25_Cond</font>
                    <label>$PARAM[label]</label>
                    <textcolor>$VAR[PanelTextColorVar]</textcolor>
                </control>
                <control type="label">
                    <visible>$PARAM[labelvisible]</visible>
                    <left>15</left>
                    <right>15</right>
                    <bottom>14</bottom>
                    <height>30</height>
                    <font>Font25_Cond</font>
                    <label>$PARAM[label2]</label>
                    <textcolor>$VAR[PanelSubTextColorVar]</textcolor>
                </control>
                <control type="image">
                    <visible>$PARAM[overlayiconvisible]</visible>
                    <top>18</top>
                    <right>18</right>
                    <width>45</width>
                    <height>45</height>
                    <aspectratio>keep</aspectratio>
                    <texture colordiffuse="$VAR[PanelHighlightColorVar]">$VAR[VideoInfoOverlayVar]</texture>
                </control>
                <control type="label">
                    <visible>$PARAM[overlayiconvisible] + Integer.IsGreater(Container.ListItem.Property(unwatchedepisodes),0)</visible>
                    <top>20</top>
                    <right>20</right>
                    <width>40</width>
                    <height>40</height>
                    <align>center</align>
                    <font>Font20_Cond_Bold</font>
                    <label>$INFO[Container.ListItem.Property(unwatchedepisodes)]</label>
                    <textcolor>$VAR[PanelHighlightColorVar]</textcolor>
                </control>
            </itemlayout>
            <focusedlayout width="$PARAM[width]" height="$PARAM[height]">
                <control type="image">
                    <texture border="10" colordiffuse="$VAR[PanelHighlightColorVar]">buttons/panel-select-focus.png</texture>
                </control>
                <include content="ViewArtwork">
                    <param name="art">$PARAM[art]</param>
                    <param name="aspect">$PARAM[aspect]</param>
                    <param name="texturefadetime"/>
                    <param name="diffuse">$PARAM[diffuse]</param>
                </include>
                <control type="image">
                    <visible>$PARAM[labelvisible]</visible>
                    <left>10</left>
                    <right>10</right>
                    <bottom>10</bottom>
                    <height>90</height>
                    <texture border="5">panels/art-overlay.png</texture>
                </control>
                <control type="label">
                    <visible>$PARAM[labelvisible]</visible>
                    <left>15</left>
                    <right>15</right>
                    <bottom>43</bottom>
                    <height>30</height>
                    <font>Font25_Cond</font>
                    <label>$PARAM[label]</label>
                    <textcolor>$VAR[PanelTextColorVar]</textcolor>
                </control>
                <control type="label">
                    <visible>$PARAM[labelvisible]</visible>
                    <left>15</left>
                    <right>15</right>
                    <bottom>14</bottom>
                    <height>30</height>
                    <font>Font25_Cond</font>
                    <label>$PARAM[label2]</label>
                    <textcolor>$VAR[PanelSubTextColorVar]</textcolor>
                </control>
                <control type="image">
                    <visible>$PARAM[overlayiconvisible]</visible>
                    <top>18</top>
                    <right>18</right>
                    <width>45</width>
                    <height>45</height>
                    <aspectratio>keep</aspectratio>
                    <texture colordiffuse="$VAR[PanelHighlightColorVar]">$VAR[VideoInfoOverlayVar]</texture>
                </control>
                <control type="label">
                    <visible>$PARAM[overlayiconvisible] + Integer.IsGreater(Container.ListItem.Property(unwatchedepisodes),0)</visible>
                    <top>20</top>
                    <right>20</right>
                    <width>40</width>
                    <height>40</height>
                    <align>center</align>
                    <font>Font20_Cond_Bold</font>
                    <label>$INFO[Container.ListItem.Property(unwatchedepisodes)]</label>
                    <textcolor>$VAR[PanelHighlightColorVar]</textcolor>
                </control>
            </focusedlayout>
        </definition>
    </include>

UPDATE EDIT: 

Here is the recommended panel working using the same code which uses the same "content" include (pasted below):

http://kittmaster.com/imagedump/kodi/ski...oller.html

xml:

        <control type="group">  <!-- Recommendations Rolling Panel & Label -->
            <top>500</top>
            <left>733</left>
            <right>25</right>
            <control type="grouplist" id="6000">
                <top>20</top>
                <control type="label">
                    <top>0</top>
                    <height>40</height>
                    <font>Font30_Reg</font>
                    <label>$LOCALIZE[32020]:</label>
                    <textcolor>$VAR[PanelHighlightColorVar]</textcolor>
                </control>
                <control type="panel" id="10060">
                    <include content="DialogExtraInfo">
                        <param name="art">$INFO[ListItem.Art(poster)]</param>
                        <param name="visible">String.IsEqual(Window.Property(List_10060_Visible),True)</param>
                        <param name="aspect">scale</param>
                        <param name="labelvisible">true</param>
                        <param name="overlayiconvisible">true</param>
                    </include>
                </control>
            </control>
            <control type="textbox">    <!-- Plot(s) Information -->
                <height>130</height>
                <top>410</top>
                <include>AutoScrollPlot</include>
                <label fallback="$INFO[Window.Property(plot)]">$INFO[Container.ListItem.Plot]</label>
            </control>  
        </control>  
Kodi: Nexus v20.5 | Skin Dev: Madnox Omega/Nexus: v20.01.02 | Madnox ForumRoot | Madnox Repov1.0.09 | Mr. V'sSource | Kodi Texture Tool (Takeover): v3.0.1 | Batch Texture Resize (Irfanview): Tutorial
Working On
: Replacing Embruary >> TMDB Helper || Start: 6/3/2024 End: God knows || Status Complete: Movies: 80% TV Shows: 40% Music: 20%
Reply
#2
Only skimmed so forgive me but I don't see any content.
Reply
#3
(2024-12-30, 10:07)Hitcher Wrote: Only skimmed so forgive me but I don't see any content.

It is there:

xml:

<control type="panel" id="20053">
                    <include content="DialogExtraInfo">
Kodi: Nexus v20.5 | Skin Dev: Madnox Omega/Nexus: v20.01.02 | Madnox ForumRoot | Madnox Repov1.0.09 | Mr. V'sSource | Kodi Texture Tool (Takeover): v3.0.1 | Batch Texture Resize (Irfanview): Tutorial
Working On
: Replacing Embruary >> TMDB Helper || Start: 6/3/2024 End: God knows || Status Complete: Movies: 80% TV Shows: 40% Music: 20%
Reply
#4
(2024-12-30, 10:07)Hitcher Wrote: Only skimmed so forgive me but I don't see any content.

I added an edit to the main post to demo the code lift and execution and a video showing it working.
Kodi: Nexus v20.5 | Skin Dev: Madnox Omega/Nexus: v20.01.02 | Madnox ForumRoot | Madnox Repov1.0.09 | Mr. V'sSource | Kodi Texture Tool (Takeover): v3.0.1 | Batch Texture Resize (Irfanview): Tutorial
Working On
: Replacing Embruary >> TMDB Helper || Start: 6/3/2024 End: God knows || Status Complete: Movies: 80% TV Shows: 40% Music: 20%
Reply
#5
Hitcher means that there are no content tags defining what content will fill the panel (i.e. the path to the plugin/library etc. that will fill the container with items).

All list/panel containers need something like this to define the content for where the ListItems in the container will come from:

Code:
<content>protocol://path/to/content</content>

You're putting the path for the content in completely the wrong place:
plugin://plugin.video.themoviedb.helper?info=images&type=person&tmdb_id=1100

That path is a content path and you are trying to put it in an image control in the art param.

You might want to read the Skinning Manual a bit closer because this is an issue about a lack of understanding of skinning (also the snarky comments in your code really dont help, especially when it is a problem with your understanding of the skinning engine, not a problem with my plugin or its documentation).
https://kodi.wiki/view/Skinning_Manual#F...ic_content
Arctic Fuse 2 - Alpha now available. Support me on Ko-fi.
Reply
#6
(2024-12-30, 05:30)kittmaster Wrote: <label>Death would be more merciful than TMDB Helper</label>
Yeah, I missed that. Not helpful at all.
Reply
#7
(2024-12-31, 01:20)jurialmunkey Wrote: Hitcher means that there are no content tags defining what content will fill the panel (i.e. the path to the plugin/library etc. that will fill the container with items).

All list/panel containers need something like this to define the content for where the ListItems in the container will come from:

Code:
<content>protocol://path/to/content</content>

You're putting the path for the content in completely the wrong place:
plugin://plugin.video.themoviedb.helper?info=images&type=person&tmdb_id=1100

That path is a content path and you are trying to put it in an image control in the art param.

You might want to read the Skinning Manual a bit closer because this is an issue about a lack of understanding of skinning (also the snarky comments in your code really dont help, especially when it is a problem with your understanding of the skinning engine, not a problem with my plugin or its documentation).
https://kodi.wiki/view/Skinning_Manual#F...ic_content

The way I wrote it was just the last iteration of my throwing anything at the wall to see if I could get it to work as I don't see many examples of the way my skin started out and trying to keep some semblance of what it is moving forward.

If you see the updated edit, following hitchers response, there is no content tag in that, yet it works, hence my confusion. I do understand what he meant, and I tried a few different things... I just posted my last ditch effort late last night to see if I can find a path forward.

I am fighting three different things here:
  1. Learning to skin in general 
  2. Understanding what Mr.V and predecessors created and why
  3. Learning what your plugin does and try to adapt it to maintain functionality
I'm VERY aware I don't have a good handle on the skinning engine, to expect that I would seems a bit unrealistic for a 9 month tenure...no? One could read that wiki until they are blue in the face, doesn't mean one will understand all that it contains, what it means, or how to apply it to the current problem at hand. I've said from the gitgo, I'm an Senior Electrical engineer who picked this up as a adventure, I'm not a software engineer nor do I portray myself as one, so trying to understand everything that is all things kodi skinning has been difficult at best. I thought people would get a chuckle from the video as I'm sure others have shared some frustration, it wasn't meant to be snarky, and I never said there was an issue with your plugin or its docs so don't take it that way, it has been an odyssey just to get "here". I don't have the years as many of you do where you are what... 10+ years deep into skinning etc? It's just frustrating because I can see the goal, I just can't get my head around some of the simple things that you have the fortune of having decades of knowledge regarding the most basic principles.

These are not excuses, just state of fact of how things are from my perspective. It's all good, I'll eventually figure it out.
Kodi: Nexus v20.5 | Skin Dev: Madnox Omega/Nexus: v20.01.02 | Madnox ForumRoot | Madnox Repov1.0.09 | Mr. V'sSource | Kodi Texture Tool (Takeover): v3.0.1 | Batch Texture Resize (Irfanview): Tutorial
Working On
: Replacing Embruary >> TMDB Helper || Start: 6/3/2024 End: God knows || Status Complete: Movies: 80% TV Shows: 40% Music: 20%
Reply
#8
(2024-12-31, 01:46)Hitcher Wrote:
(2024-12-30, 05:30)kittmaster Wrote: <label>Death would be more merciful than TMDB Helper</label>
Yeah, I missed that. Not helpful at all.

It wasn't meant to come off that way.... so my apologies.
Kodi: Nexus v20.5 | Skin Dev: Madnox Omega/Nexus: v20.01.02 | Madnox ForumRoot | Madnox Repov1.0.09 | Mr. V'sSource | Kodi Texture Tool (Takeover): v3.0.1 | Batch Texture Resize (Irfanview): Tutorial
Working On
: Replacing Embruary >> TMDB Helper || Start: 6/3/2024 End: God knows || Status Complete: Movies: 80% TV Shows: 40% Music: 20%
Reply
#9
(2024-12-31, 02:12)kittmaster Wrote: If you see the updated edit, following hitchers response, there is no content tag in that, yet it works, hence my confusion.

Because this is a scripted window where you can predefine IDs to be autofilled with content via the script. That is the purpose of the recommendations script. This ID will be defined in the recommendations param where you call the script as documented:
https://github.com/jurialmunkey/plugin.v...the-script

This is the problem with having someone else implement the script for you. You end up without a basic understanding of how or why it works. On top of that, the recommendations script window is probably the most complex/advanced feature available in TMDbHelper, which will make it a real struggle to configure without that understanding you would have otherwise gained from implementing it yourself.

If you want a custom container that you don't predefine on script launch (e.g. because you only want it in some circumstances or you want greater control over it) then you need to define a <content> tag to tell Kodi what you want to put in there.

(2024-12-31, 02:12)kittmaster Wrote: [*]Learning what your plugin does and try to adapt it to maintain functionality

My plugin does a lot of things, the recommendations script is only one thing it does and definitely not the primary purpose the plugin.

The main function of TMDbHelper is providing dynamic <content> paths that you can use to add lists in a skin. These are anything starting with plugin:// and listed under "Lists" headings in my wiki. These can be used in practically any "native" Kodi window/dialog (including the Custom_xxxx.xml ones).

The secondary function is the service monitor, which is a background monitor to pull up the ListItem for the `info=details` content path for the currently focused item. The service is effectively a scripted function to do that quicker internally without needing to add a hidden container with the info=details path in it and wait for Kodi to load it.

The recommendations script is a distant third. It's purpose is similar to the service monitor, but allows for a scripted dialog window to manage **multiple** "info=xyz" content paths related to the current item without needing to define each list individually in a dialog. The advantage being that it is slightly faster if a script manages all the look-ups internally in the one single process then dumps the items out into the specified containers rather than waiting for Kodi to call the plugin separately for each individual custom content container.


(2024-12-31, 02:12)kittmaster Wrote: I'm VERY aware I don't have a good handle on the skinning engine, to expect that I would seems a bit unrealistic for a 9 month tenure...no? One could read that wiki until they are blue in the face, doesn't mean one will understand all that it contains, what it means, or how to apply it to the current problem at hand. I've said from the gitgo, I'm an Senior Electrical engineer who picked this up as a adventure,

I'm not a software engineer either. I learnt the skinning engine exactly the same way - by reading documentation, asking questions, and trying things out.

But that's also kind of exactly the point -- you're trying to master an advanced level concept (recommendations script) very early on without having a grasp of the fundamentals of what you're doing first.

Jumping in the deep-end can be a good sometimes, but just flailing around until you almost drown won't teach you how to swim (or at least only very poorly and without a real understanding of what you're doing). You're getting frustrated that you can't swim butterfly at a pro level without learning the basic principles of a solid freestyle first.
Arctic Fuse 2 - Alpha now available. Support me on Ko-fi.
Reply
#10
(2024-12-31, 06:29)jurialmunkey Wrote: But that's also kind of exactly the point -- you're trying to master an advanced level concept (recommendations script) very early on without having a grasp of the fundamentals of what you're doing first.

I was able to figure it out shortly after hitchers post and your response and you'll see the results in the video I'm posting below. It turned out to be a missing content tag and I was able to get it working as such (snippet):

xml:

            <!-- Plot (Used for Person's Biography) -->         <!-- Biography Panel Section & Label -->
            <control type="textbox" id="100001">
                <!-- <include>AnimationVisibleFade</include> -->
                <visible>String.IsEmpty(Control.GetLabel(200)) + [!Container(9000).HasFocus(100001) | !Container(9000).HasFocus(100002) | !Container(9000).HasFocus(100003) | !Container(9000).HasFocus(100004)]</visible>
                <top>644</top>
                <bottom>25</bottom>
                <include>AutoScrollPlot</include>
                <label>$VAR[VideoInfoPlotVar]</label>
            </control>
            <!-- Movies / TV Shows / Pictures Rolling Panels & Labels -->
            <control type="group" id="9001">
                <visible>String.IsEqual(ListItem.Property(item.type),person)</visible>
                <top>211</top>
                <right>25</right>
                <control type="panel" id="20052">
                    <description>Actor's Movies</description>
                    <include content="DialogExtraInfo">
                        <param name="visible">Container(9000).HasFocus(100002)</param>
                        <param name="art">$INFO[ListItem.Art(poster)]</param>
                        <!-- <param name="width">117.9</param> -->
                        <!-- <param name="height">172</param> -->
                        <!-- <param name="containerwidth">820</param> -->
                        <!-- <param name="containerheight">185</param> -->
                    </include>
                    <content>plugin://plugin.video.themoviedb.helper?info=stars_in_movies&type=person&tmdb_id=$INFO[ListItem.Property(tmdb_id)]</content>
                </control>

One thing I am having trouble with is the awards part of this. I have all 3 keys in the settings for OMDB, TMDB, and the 3rd one whatever it's called in the settings of the addon. I have implemented the service monitor which seemed to be the advise given to deal with things outside the recommended script (which I'm using for my TMDb info button). I have the list in the main include.xml and placed calls from all the custom windows, DialogVideoInfo etc. I followed skin.titan.bingie.mod-omega method of implementation and it seems to work with one issue I can't figure out. When I call the same function from my "person" info, I want to add other awards listings, but when the screen loads, the data is there for a 1 second flash and disappears. I've created a video to show exactly what is happening and subsequent code below. I doesn't seem to be dependant on mouse or key movement and I have the visibilities turned on all the time to see if I can get it working. Any ideas what this could be? Video:

http://www.kittmaster.com/imagedump/kodi...Drops.html

Include.xml
xml:

    <include name="TMDbHelper_Service_Monitor_List">
        <control type="list" id="99950">
            <width>1</width>
            <height>1</height>
            <itemlayout />
            <focusedlayout />
            <left>-1920</left>
        </control>
    </include>

DialogVideoInfo.xml
xml:

    <controls>
        <include>TMDbHelper_Service_Monitor_List</include> <!-- TMDB Service Monitor list -->  
        <include content="DialogInfoCommon">
            <param name="blur">Skin.HasSetting(VideoBlurEnabled)</param>
            <param name="art">$VAR[PosterVar]</param>
        </include>
        <control type="group">
            <visible>!Window.IsVisible(script-embuary-person.xml) + !Window.IsVisible(script-tmdbhelper-recommendations.xml) | !Window.IsVisible(script-embuary-video.xml)</visible>
            <include>AnimationInfoDialog</include>
            <include condition="!String.IsEqual(ListItem.DBType,musicvideo)">DialogVideoInfo</include>
            <include condition="String.IsEqual(ListItem.DBType,musicvideo)">DialogMusicInfo</include>
        </control>
    </controls>

Home.xml
xml:

<window>
    <defaultcontrol always="true">9000</defaultcontrol>
    <menucontrol>9050</menucontrol>
    <onload condition="!System.AddonIsEnabled(script.skinshortcuts)">EnableAddon(script.skinshortcuts)</onload>
    <onload condition="!System.HasAddon(script.skinshortcuts)">InstallAddon(script.skinshortcuts)</onload>
    <onload condition="!System.AddonIsEnabled(script.image.resource.select)">EnableAddon(script.image.resource.select)</onload>
    <onload condition="!System.HasAddon(script.image.resource.select)">InstallAddon(script.image.resource.select)</onload>
    <onload condition="!System.AddonIsEnabled(script.embuary.helper)">EnableAddon(script.embuary.helper)</onload>
    <onload condition="!System.HasAddon(script.embuary.helper)">InstallAddon(script.embuary.helper)</onload>
    <onload>RunScript(script.skinshortcuts,type=buildxml&mainmenuID=9000&group=mainmenu|shortcuts)</onload>
    <onload>Skin.SetString(TMDbHelper.MonitorContainer,99950)</onload>
    <controls>
        <include>TMDbHelper_Service_Monitor_List</include> <!-- TMDB Service Monitor list -->  
        <!-- Backdrop -->
        <include content="BackgroundDefault">
            <param name="imagepath">$VAR[HomeFanartVar]</param>
            <param name="animatedfanart">Skin.HasSetting(HomeAnimatedFanart)</param>
        </include>
        ...

Custom_1103_startup.xml
xml:

<?xml version="1.0" encoding="utf-8"?>
<window type="window" id="1103">
    <!-- Start TMDbH service -->
    <onload condition="String.IsEmpty(Window.Property(ReloadDone))">Skin.SetBool(TMDbHelper.Service)</onload>
    <!-- <onload condition="String.IsEmpty(Window.Property(ReloadDone))">Skin.SetBool(TMDbHelper.UseLocalWidgetContainer)</onload> -->
    <onload condition="String.IsEmpty(Window.Property(ReloadDone))">Skin.SetString(TMDbHelper.MonitorContainer,99950)</onload>
    <!-- Orig Startup Values -->
    <defaultcontrol always="true">10</defaultcontrol>
    <onload>ReplaceWindow($INFO[System.StartupWindow])</onload>
    <include>onunload_SkinSettings</include>
    <controls/>
</window>

EDIT ADD: Call from Includes_InfoDialogs.xml
xml:

                    <item>
                        <label>$INFO[Container(99950).ListItem.Property(awards),,  ]</label>
                        <label2>$LOCALIZE[31113]-Per:</label2>
                        <!-- <visible>!String.IsEmpty(ListItem.Property(awards)) + !Container(9000).Hasfocus(100002) + !Container(9000).Hasfocus(100003) + !Container(9000).Hasfocus(100004)</visible> -->
                    </item>
Kodi: Nexus v20.5 | Skin Dev: Madnox Omega/Nexus: v20.01.02 | Madnox ForumRoot | Madnox Repov1.0.09 | Mr. V'sSource | Kodi Texture Tool (Takeover): v3.0.1 | Batch Texture Resize (Irfanview): Tutorial
Working On
: Replacing Embruary >> TMDB Helper || Start: 6/3/2024 End: God knows || Status Complete: Movies: 80% TV Shows: 40% Music: 20%
Reply
#11
(2025-01-04, 00:35)kittmaster Wrote: When I call the same function from my "person" info, I want to add other awards listings, but when the screen loads, the data is there for a 1 second flash and disappears. I've created a video to show exactly what is happening and subsequent code below. I doesn't seem to be dependant on mouse or key movement and I have the visibilities turned on all the time to see if I can get it working. Any ideas what this could be? Video:

These services don't provide awards data for people. Only Movies and TVShows (at least as far as I'm aware).

What you're seeing is the old data from the previous movie because the details ListItem for that is still in the 99950 container in the info dialog. Then you see the service catch-up and and replace it with the new item.

There will always be a slight delay in clearing out the old ListItem because the service needs to wait for Kodi to load the information dialog metadata first before it can read those details to then do the lookup (and then potentially a further wait to do the actual lookup online if the data isn't already cached previously).

You can hide this info for a person by checking !String.IsEqual(ListItem.Property(item.type),person)

You can also check that ratings have finished updating with
String.IsEmpty(Window(Home).Property(TMDbHelper.IsUpdating)) + String.IsEmpty(Window(Home).Property(TMDbHelper.IsUpdatingRatings))
Arctic Fuse 2 - Alpha now available. Support me on Ko-fi.
Reply
#12
(2025-01-04, 08:06)jurialmunkey Wrote:
(2025-01-04, 00:35)kittmaster Wrote: When I call the same function from my "person" info, I want to add other awards listings, but when the screen loads, the data is there for a 1 second flash and disappears. I've created a video to show exactly what is happening and subsequent code below. I doesn't seem to be dependant on mouse or key movement and I have the visibilities turned on all the time to see if I can get it working. Any ideas what this could be? Video:

These services don't provide awards data for people. Only Movies and TVShows (at least as far as I'm aware).

What you're seeing is the old data from the previous movie because the details ListItem for that is still in the 99950 container in the info dialog. Then you see the service catch-up and and replace it with the new item.

There will always be a slight delay in clearing out the old ListItem because the service needs to wait for Kodi to load the information dialog metadata first before it can read those details to then do the lookup (and then potentially a further wait to do the actual lookup online if the data isn't already cached previously).

You can hide this info for a person by checking !String.IsEqual(ListItem.Property(item.type),person)

You can also check that ratings have finished updating with
String.IsEmpty(Window(Home).Property(TMDbHelper.IsUpdating)) + String.IsEmpty(Window(Home).Property(TMDbHelper.IsUpdatingRatings))

I'll merge those two later today as I have to travel out in this morning. Thanks for the code snippets, I'll report back.

You're right about the OMDB as when I was running the manual test queries on that site, I realized the stuff it was pumping back was for &movie and even the web page has no provision for person, so that now is clear.

So my general thought would be, wouldn't it make sense in the Github Wiki to actually have a separate field or just general warning that says overtly: "Movie and TV Shows only" for the "ratings section"? It really is more for the noobs like myself as I misread or didn't understand it wasn't for person retrieval, but also, is it already stated somewhere on there that I missed? Maybe that is my confusion, I assumed it worked for all 3 since it is in the "detailed list" area and it reads as, "just build your string and go" kind of thing...

I did stumble across this after reading your latest reply, it seems free, and no limitations unless I missed something:

Wikidata Query Service - Awards/People

Press the > button (blue) on the left lower column and it will execute the sample/example query with results below when it completes.

All things under assumption, I realize it would create a mountain of new work assuming it was viable, but I've read a few posts that mention as you did that person was not supported by OMDB (now realizing what I actually read back then), and this seems to do just that, maybe something to consider down the road? 

I realize after a decade of this, your patience are probably eroded, just passing it along as a possible datapoint unless you already have explored this.
Kodi: Nexus v20.5 | Skin Dev: Madnox Omega/Nexus: v20.01.02 | Madnox ForumRoot | Madnox Repov1.0.09 | Mr. V'sSource | Kodi Texture Tool (Takeover): v3.0.1 | Batch Texture Resize (Irfanview): Tutorial
Working On
: Replacing Embruary >> TMDB Helper || Start: 6/3/2024 End: God knows || Status Complete: Movies: 80% TV Shows: 40% Music: 20%
Reply
#13
(2025-01-04, 15:24)kittmaster Wrote: So my general thought would be, wouldn't it make sense in the Github Wiki to actually have a separate field or just general warning that says overtly: "Movie and TV Shows only" for the "ratings section"? It really is more for the noobs like myself as I misread or didn't understand it wasn't for person retrieval, but also, is it already stated somewhere on there that I missed?

Yes I guess so, but the more detail, the more work the documentation is to maintain and keep in sync with what data the APIs return. As a simple example: Tagline is listed as Movie specific (because it was originally) but as of a few years ago is now available for TVShows on the TMDb API.

There's about 200 rows on that wiki page. I could spend my whole life updating the documentation. I have to leave somethings as implied (e.g. that people won't have genre, studio, director, mpaa etc. either). My main concern is documenting the mappings I've made. You can then check the corresponding API documentation to see if it is available for that content type.

(2025-01-04, 15:24)kittmaster Wrote: I did stumble across this after reading your latest reply, it seems free, and no limitations unless I missed something:

Wikidata Query Service - Awards/People

All things under assumption, I realize it would create a mountain of new work assuming it was viable, but I've read a few posts that mention as you did that person was not supported by OMDB (now realizing what I actually read back then), and this seems to do just that, maybe something to consider down the road? 

This is interesting and definitely could be useful to implement somewhere down the line (looks like there's a lot of data that can be retrieved there too, so could be used for more than just people).

But yes, you're correct, adding another API is a fair bit of work, so very much something for another day.

On a related note, I *do* have a Wikipedia addon which provides a scripted window to open wiki pages via a button. It's pretty easy to setup and I generally find if I want to look at awards, I'd prefer the detail found on a Wiki page anyway (kind a pointless knowing someone won an award without knowing what it is -- big difference between winning an Oscar and winning a Golden Raspberry).
https://github.com/jurialmunkey/script.wikipedia
Arctic Fuse 2 - Alpha now available. Support me on Ko-fi.
Reply

Logout Mark Read Team Forum Stats Members Help
Can't get a panel to display, but labels do, TMDB helper related0