Kodi Community Forum

Full Version: script.skinshortcuts
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Depending on the version of Titan it's either using a workaround - you'd need to look at its implementation to see how it does it - or it's using the new button, as Marcelveldt - who wrote both Titan and that pr - is including a test version of the script with his pr on his own repo.
Whilst one of the aims of the Skin Shortcuts script has always been to provide compatibility for a large number of Kodi versions from a single code base to ease coding, Kodi v18 requires some not-particularly-nice code to keep compatibility going forward. As such, I'm currently considering the possibility of branching the code for v18. This would give the opportunity to not only avoid such workarounds, but also to refactor and remove old code with the full knowledge that such changes may well break the script and the skin integration in the short term, but doing so early on in v18's development would give the maximum available time for such issues to be fixed.

If any skinners have any opinions on this - whether on the idea itself, any features that we could drop or really shouldn't, the issue of breakages and so on, please join the conversation on git: https://github.com/BigNoid/script.skinsh...issues/210
Hi Bob!

I've been testing out various library sections as widgets (selected in skinshortcuts dialog), and ran into an issue with recently added episodes. It appears that the widgettype for this one is tvshows, whereas I was expecting it to be episodes. Is this something that is set by skinshortcuts, and if so, can it be changed to episodes?

Thanks and happy holidays...
(2016-12-23, 21:10)braz Wrote: [ -> ]Hi Bob!

I've been testing out various library sections as widgets (selected in skinshortcuts dialog), and ran into an issue with recently added episodes. It appears that the widgettype for this one is tvshows, whereas I was expecting it to be episodes. Is this something that is set by skinshortcuts, and if so, can it be changed to episodes?

Thanks and happy holidays...

My time is limited at present, but a quick test produced a widgetType of 'Videos' for me, so it definitely does appear there's an issue with this node. My memory is - though I would actually need to follow the code through to be sure - that the content is generated from the detectPluginContent function - which takes a 'best guess' at what the content is for a returned set of items (not necessarily just plugins) based on the properties they have. I'll take a pass over the function to see if it can be improved but, as this function really does produce a best-guess, I can't guarantee it can return the correct value in all situations.

And here's hoping you had a very happy non-denomination winter festival celebration Smile
So total noob question... I am using skin shortcuts for the home menu and have the submenus set up but how do I get the correct submenus show up for the correct home menu item my brain hasn't grasp the concept yet thanks
(2016-12-27, 00:40)smitchell6879 Wrote: [ -> ]So total noob question... I am using skin shortcuts for the home menu and have the submenus set up but how do I get the correct submenus show up for the correct home menu item my brain hasn't grasp the concept yet thanks

I think you've been around long enough to know I'll always link you to the relevant docs if I can - and if I'm understanding right then Skin Shortcuts Docs: Basic Integration - Main menu and submenu > Displaying the menus covers what you're asking.

If those aren't the relevant docs or you're having trouble following them, I similarly feel you've been around long enough to know by now that you need to say exactly where you're having issues - making it clear which docs you're following and having issue with, what element of the docs you're struggling with and providing links to the actual code you're using that isn't working (as well as saying what isn't working) - is what's needed to get help beyond just a link to the relevant docs Smile
Sorry to waste your time I over thought it and confused my self.... just had to change the control id and set on up on down values with visibility. works perfect
(2016-12-27, 04:00)smitchell6879 Wrote: [ -> ]Sorry to waste your time I over thought it and confused my self.... just had to change the control id and set on up on down values with visibility. works perfect

Asking questions isn't something you ever need to be sorry about Smile I'm keeping an eye on your WIP skin thread, and am looking forward to seeing what you come up with.
Glad to hear it... I can definitely see it will be a while before I have anything truly worth showing... the more I do the slower the progress gets. I have gotten a true respect for all skinners out there.
(2016-12-26, 01:33)BobCratchett Wrote: [ -> ]
(2016-12-23, 21:10)braz Wrote: [ -> ]Hi Bob!

I've been testing out various library sections as widgets (selected in skinshortcuts dialog), and ran into an issue with recently added episodes. It appears that the widgettype for this one is tvshows, whereas I was expecting it to be episodes. Is this something that is set by skinshortcuts, and if so, can it be changed to episodes?

Thanks and happy holidays...

My time is limited at present, but a quick test produced a widgetType of 'Videos' for me, so it definitely does appear there's an issue with this node. My memory is - though I would actually need to follow the code through to be sure - that the content is generated from the detectPluginContent function - which takes a 'best guess' at what the content is for a returned set of items (not necessarily just plugins) based on the properties they have. I'll take a pass over the function to see if it can be improved but, as this function really does produce a best-guess, I can't guarantee it can return the correct value in all situations.

And here's hoping you had a very happy non-denomination winter festival celebration Smile

Thanks Bob, I did attend a great non-denominational gathering this week. Wink

Based on that function's code, I don't see why Recently Added Episodes wouldn't be classified as episodes. I would think those items would have season and episode numbers. I'll defer to your judgement, the only thing I could think was to compare the node title to $LOCALIZE[20387], no idea if that would work or just be a hack.

Thanks for checking!
Braz, I was wrong - the content is actually generated from this function. Looking at it, I can see it will only work properly for rule-based nodes and not the path-based node that is recently added episodes. I'll give this some thought to how to fix properly, but if it requires major refactoring to do chances are the changes will only be suitable for the Kodi 18 version of the script.

As a workaround, you may be able to do something like this in a template:-

Code:
<property name="widgetType" tag="property" attribute="name|widgetPath" value="videodb://recentlyaddedepisodes">Episodes</property>
<property name="widgetType" tag="property" attribute="name|widgetType" />

(Which is to say, set $SKINSHORTCUTS[widgetType]' to 'Episodes' if widgetPath == videodb://recentlyaddedepisodes, otherwise set it to the value of widgetType)
(2016-12-28, 14:52)BobCratchett Wrote: [ -> ]Braz, I was wrong - the content is actually generated from this function. Looking at it, I can see it will only work properly for rule-based nodes and not the path-based node that is recently added episodes. I'll give this some thought to how to fix properly, but if it requires major refactoring to do chances are the changes will only be suitable for the Kodi 18 version of the script.

As a workaround, you may be able to do something like this in a template:-

Code:
<property name="widgetType" tag="property" attribute="name|widgetPath" value="videodb://recentlyaddedepisodes">Episodes</property>
<property name="widgetType" tag="property" attribute="name|widgetType" />

(Which is to say, set $SKINSHORTCUTS[widgetType]' to 'Episodes' if widgetPath == videodb://recentlyaddedepisodes, otherwise set it to the value of widgetType)
Hi Bob, thanks for the tip...I wasn't able to get the template workaround to work though. Both widgets, videodb://recentlyaddedepisodes and library://video/tvshows/recentlyaddedepisodes.xml/ continue to have a widgetType of tvshows. I'm using the following variable to display the widget label.

Code:
<variable name="WidgetThumbnailLabel">
    <value condition="String.IsEqual(Container(9000).ListItem.Property(widgetType),episodes)">$INFO[ListItem.Season,,x]$INFO[ListItem.Episode,,. ]$INFO[ListItem.Title]</value>
    <value condition="!String.IsEmpty(ListItem.Title)">$INFO[ListItem.Title]</value>
    <value>$INFO[ListItem.Label]</value>
</variable>

As is, the first value gets skipped and the second is displayed. If I change "episodes" in the first value to "videos", it still gets skipped and the second is displayed. If I change "episodes" in the first value to "tvshows", the first value is displayed (which is what I want). This tells me that the widgetType for the recently added episodes widgets is "tvshows", right? I've never been able to get a widgetType of "videos" for these widgets.

This isn't a priority, was just something I noticed in my testing and thought I should mention. Thanks again for your support!

Update: Duh, easiest workaround was just to change the condition of the first value to:

Code:
String.Contains(Container(9000).ListItem.Property(widgetPath),recentlyaddedepisodes)
(2016-12-28, 17:49)braz Wrote: [ -> ]This tells me that the widgetType for the recently added episodes widgets is "tvshows", right? I've never been able to get a widgetType of "videos" for these widgets.

Yes, with how the code currently works for path-based nodes (which don't have a <content /> tag to tell us what the content is, the visibility condition is used - which is Library.HasContent(TVShows) - I got 'videos' because I'd been messing about with my nodes whilst coding the recent update to the Library Node Editor) a widgetType of tvshows is expected.

I've reviewed the code and it's not an easy job to fix this simply because the current library-node-loading code is so fragmented, so expect the Kodi 18 version of the script (where I'm already refactoring large amounts of code as this needs to be) to handle this correctly Smile
If I make a custom group in defaults folder I should be able to allow users to allow users to manage the order of that group? Correct? Or does this only.work with main menu and submenus items?
(2016-12-28, 23:19)BobCratchett Wrote: [ -> ]Yes, with how the code currently works for path-based nodes (which don't have a <content /> tag to tell us what the content is, the visibility condition is used - which is Library.HasContent(TVShows) - I got 'videos' because I'd been messing about with my nodes whilst coding the recent update to the Library Node Editor) a widgetType of tvshows is expected.

I've reviewed the code and it's not an easy job to fix this simply because the current library-node-loading code is so fragmented, so expect the Kodi 18 version of the script (where I'm already refactoring large amounts of code as this needs to be) to handle this correctly Smile

Maybe we should just throw all detections through the content detection method I created once for plugins ?
That way we only have one method to determine the actual contenttype instead of several fragmented around the code.