Kodi Community Forum

Full Version: skin helper service
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
(2015-10-02, 21:55)im85288 Wrote: [ -> ]Thanks just checked and for me it is not working, at first I thought it was because you only added it for movie sets cast...so I changed that locally and tested but still no luck. I'll continue to have a look. I also spotted a unicode error for the critic consensus.

Now fixed on Git. Also fixed that Tomato unicode error
(2015-10-02, 19:39)Angelinas Wrote: [ -> ]As label I have this
S / t / a / n / i / s / l / a / v / / T / o / m / i / c / , / / I / v / a / n / / P / a / v / l / i / č / i / ć / , / / R / o / b / e / r / t / / O / r / h / e
insted
Stanislav Tomic, Ivan Pavličić, Robert Orhe

Now fixed on Git
(2015-10-02, 06:25)Rjsachse Wrote: [ -> ]Thank you marcel now it gets them from the cache but when you go through the recording list it takes awhile to load the image. But does now show images without net access
It would be nice for a custom folder for are own poster pvr images

Kodi tries to access the images first and when it fails, it will show the images.
Not really much I can do about it. Yeah I can cache them locally (download them) but that would mean a doubled cache because Kodi does also do that.
(2015-10-02, 12:38)Jayz2K Wrote: [ -> ]One mistake in your properties listing a few posts before is that property for channel name is still ListItem.Property(ChannelName) and not ListItem.Property(Channel) as written but ListItem.Property(ChannelName) works fine.

However, ListItem.Duration for songs still doesn't work. Tried also ListItem.Property(Duration) but no luck.

EDIT : Found a bug with ListItem.Property(StartTime) and ListItem.Property(EndTime). When you launch KODI, PVR widget is correctly populated but when widget is reloaded (for exemple, I can customize the widget style on the fly that makes the widget to reload), ListItem.Property(StartTime) then shows also the date like ListItem.Property(StartDate) does (same for EndTime showing EndDate).

1) It will now return both Channel and ChannelName properties ;-)

2) ListItem.Duration works fine for me. Any errors in the logs ? What widget are you trying to get the info from ?

3) If the data is returned incorrectly it means it was again in error localizing the date. This seems to be some sort of Python issue I ran into. Placed another (possible) fix on Git, could you test again? If it fails again, please check the log for the error message. I have added some debug output for all errors in the script.
@marcelveldt -- it seems like NextEpisodes widget is not passing through ListItem.Art(fanart)
(2015-10-03, 02:59)marcelveldt Wrote: [ -> ]1) It will now return both Channel and ChannelName properties ;-)

2) ListItem.Duration works fine for me. Any errors in the logs ? What widget are you trying to get the info from ?

3) If the data is returned incorrectly it means it was again in error localizing the date. This seems to be some sort of Python issue I ran into. Placed another (possible) fix on Git, could you test again? If it fails again, please check the log for the error message. I have added some debug output for all errors in the script.

1) Right Smile Tried it on another computer and seems both work fine.
2) Seems it works for recently added and played songs but fails with random songs
3) I still have the same issue, here's what I get in loop in log :

PHP Code:
11:18:43 T:6552  NOTICESkin Helper Service --> ERROR in getLocalDateTimeFromUtc --> 2015-10-03 07:28:42
11
:18:43 T:6552   ERRORTraceback (most recent call last):
11:18:43 T:6552   ERROR:   File "C:\Users\Jerome\AppData\Roaming\Kodi\addons\script.skin.helper.service-master\resources\lib\Utils.py"line 411in getLocalDateTimeFromUtc
11
:18:43 T:6552   ERROR:     utc datetime.strptime(timestring'%Y-%m-%d %H:%M:%S')
11:18:43 T:6552   ERRORTypeErrorattribute of type 'NoneType' is not callable 
(2015-10-02, 09:50)marcelveldt Wrote: [ -> ]
(2015-10-02, 04:28)jurialmunkey Wrote: [ -> ]Is it possible to have the colour swatches that are included with the skin be copied to addon folder also?
This would ensure a single path whilst still being able to include pre-generated swatches with the skin.

Also, is it possible to have a swatch generated when creating a custom colour in the dialog?

Latest Git should include your request:
1) Color swatch PNG files will be copied by default to the addons folder AND skin folder (if custom colors used)
2) Color swatch is also generated when a manual color or opacity is set

The only problem is Android because of the missing PIL module. I coded it that the script won't crash when the PIL is missing but it won't be able to generate the swatches.
Hi Marcel,
I use skin.helper.service with Eminence 2 (both fantastic) and have been investigating the PIL problem "stack" after encountering it myself on AFTV under Kodi15.2rc2. Note that the core issue is with dynamic loading of the lib_imaging.so library needed by PIL python code.

I've tracked the changes you've made to ColorPicker.py, and can report that the new color swatch code works well: pre-generated color images included in Eminence are picked up and I can finally see and use the color picker! Also, I don't get UI hangs since you wrapped the call to Image.new in a try/except.

However, the code that checks for PIL availability does't work as expected:
Code:
#PIL fails on Android devices ?
hasPilModule = True
try:
    from PIL import Image
except:
    hasPilModule = False
Basically, hasPilModule is always True, because the dynamic loading appears to be lazy and so the above import never fails. Instead, the later calls to Image.new fail and end up generating lots of exceptions, which in turn slow the display of the color picker.

I worked around this by explicity using a PIL.Image function to check it's working, e.g.:
Code:
hasPilModule = True
try:
    from PIL import Image
    im = Image.new("RGB", (1, 1)); del im
except:
    hasPilModule = False
Could you perhaps make a similar change? Otherwise, all else is good.

Many thanks!
(2015-10-03, 12:14)guido1138 Wrote: [ -> ]I worked around this by explicity using a PIL.Image function to check it's working
Could you perhaps make a similar change? Otherwise, all else is good.

Thanks for this, I had to code that blind because I have no FTV device.
Fix is on Git.
(2015-10-03, 11:29)Jayz2K Wrote: [ -> ]2) Seems it works for recently added and played songs but fails with random songs
3) I still have the same issue, here's what I get in loop in log :

2) Hmm, the script doesn't provide random songs ;-) Maybe you're using it from a playlist or from the data libraryprovider script?
If wanted I can add it in offcourse but I didn't want to replicate the library provider script.

3) Thanks for the log. It's indeed that Python bug again. Somehow the datetime module doesn't get imported sometimes, it's driving me crazy.
I will sort it out, are you available to test as the problem doesn't occur on my testmachine ?
(2015-10-03, 07:14)jurialmunkey Wrote: [ -> ]@marcelveldt -- it seems like NextEpisodes widget is not passing through ListItem.Art(fanart)

Shouldn't that be ListItem.Art(tvshow.fanart) ?
Hi marcelveldt,

I've developed an addon recently, using xbmcswift2. A few users are reporting errors with the addon, and their logs look like it's pointing to an issue between xbmcswift2 and the skin helper service.

xbmcswift2 caches listviews for later use and uses the url routing for cache mapping (as far as I can tell anyway). It looks like skin helper somehow injects additional stuff into the url route which appears to mess with xbmcswift2.

Here's a log as an example. The part that appears to show the issue is:
Code:
06:20:49 T:8088   ERROR: XFILE::CDirectory::GetDirectory - Error getting plugin://plugin.program.iarl/Emulator/Sega+Genesis/1?parser_id=NoIntro_parser.xml&xml_id=E%3a%5cUsers%5ctiti%5cAppData%5cRoaming%5cKodi%5caddons%5cplugin.program.iarl%5cresources%2fdata%2fdat_files%5cGenesis_ZachMorris.xml&reload=$INFO[Window(Home).Property(widgetreload2)]

Where I would expect my plugin to not include the
Code:
&reload=$INFO[Window(Home).Property(widgetreload2)]
. I'm not exactly sure how your skin helper injects this additional stuff.

Is there something I can do to prevent this?

Thanks!
(2015-10-03, 17:55)zachmorris Wrote: [ -> ]Where I would expect my plugin to not include the
Code:
&reload=$INFO[Window(Home).Property(widgetreload2)]
. I'm not exactly sure how your skin helper injects this additional stuff.

Thanks for reporting. There actually was an error in the code that prefixed the favourite paths, so that's why it was happening.
The script build a list of favourites in the background and probes them to create shortcuts.
Now fixed on Git.
(2015-10-03, 16:41)marcelveldt Wrote: [ -> ]
(2015-10-03, 11:29)Jayz2K Wrote: [ -> ]2) Seems it works for recently added and played songs but fails with random songs
3) I still have the same issue, here's what I get in loop in log :

2) Hmm, the script doesn't provide random songs ;-) Maybe you're using it from a playlist or from the data libraryprovider script?
If wanted I can add it in offcourse but I didn't want to replicate the library provider script.

3) Thanks for the log. It's indeed that Python bug again. Somehow the datetime module doesn't get imported sometimes, it's driving me crazy.
I will sort it out, are you available to test as the problem doesn't occur on my testmachine ?
Hmm, don't know then from where this random songs come from ... I removed all other widget. I only use the "default widgets" folder available in SkinShortcuts. Is it possible it comes from a playlist installed by another skin ?

For testing, I'm not at Home for now but I will test any testbuilds you want as soon as I can if it can help.
(2015-10-03, 19:44)Jayz2K Wrote: [ -> ]Hmm, don't know then from where this random songs come from ... I removed all other widget. I only use the "default widgets" folder available in SkinShortcuts. Is it possible it comes from a playlist installed by another skin ?

For testing, I'm not at Home for now but I will test any testbuilds you want as soon as I can if it can help.
In that case its from library provider. I'll take a look at that and submit a PR for the fix.

Btw, latest git has another attempt to fix the date issue
(2015-10-03, 21:30)marcelveldt Wrote: [ -> ]In that case its from library provider. I'll take a look at that and submit a PR for the fix.

Btw, latest git has another attempt to fix the date issue

1/ Maybe yes since it's one of the first options in the list that match the library.data provider items. Thx Marcel.

2/ I think you got it Wink Just back Home and gave it a shot. Date now shows date only (no more time) and Time shows fine even after refresh. I no more have errors in logs.