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.
May I ask how is this Add-on using TheAudioDB site? I've seen a huge jump in traffic over the last few months from this Add-on.

Just looking at the stats, 40,000 unique users of skin.helper.service api key requested the searchalbum api method, with 1,143,845 individual hits.

Artist-mb method also used over a million hits in 24hr period.

A little excessive I think Smile

Is it possible to cache the requests?
When i switch the channel, the Infos in dialogfullscreeninfo dont refresh, i first must stop the livetv and restart the channel, then the info is the right one
(2016-11-24, 17:50)docwra Wrote: [ -> ]May I ask how is this Add-on using TheAudioDB site? I've seen a huge jump in traffic over the last few months from this Add-on.
Just looking at the stats, 40,000 unique users of skin.helper.service api key requested the searchalbum api method, with 1,143,845 individual hits.
Artist-mb method also used over a million hits in 24hr period.
A little excessive I think Smile
Is it possible to cache the requests?

TheAudioDB is used for the music art details. As the script is now used on many, many skins and so installed on a lot of machines of Kodi users, I can imagine the additional load to the API's.

I just finished a complete rewrite of all code which includes a more proper way of caching stuff. When I first built this addon I never realized it would take such a massive jump in popularity.
Now after the current rewrite I did my best to cache as much stuff as possible and to lower the hits on API's.
Is it possible for me to look at the stats myself too ? I can than monitor the traffic after this rewritten version hits the repo in a few weeks (once bugs are ironed out).
(2016-11-24, 09:12)loggio Wrote: [ -> ]1. The channels widget doesn't work at all now, it just displays "no information available" :

It takes a few minutes before the EPG data is available. At system start it will indeed show "No information available". Once the info is there, the widget will refresh and show the correct results. Nothing to do about that.


(2016-11-24, 09:12)loggio Wrote: [ -> ]2. Google images are still not Auto populated, but work if i "manually" scrape them.

Yes they are but the old "wrong" data is still in your cache now. You can refresh the cache by using the manual refresh button (like you already found out).
To completely wipe the cache, delete folder script.module.simplecache from addon_data

(2016-11-24, 09:12)loggio Wrote: [ -> ]3. When skin helper does not find any results, the default background image in the channels window is being replaced by the channel icon and not the fallback image defined in the <texture> parameter and looks horrible... Maybe this might be because the old method was using SkinHelper.PVR.Thumb which was different from the default Listitem.Art.Thumb and didn't clash with Kodi defaults. Perhaps a way around this would be to save google results as "landscape" image instead of "thumb"?

See my answer at 3)... The wrong data is still in your cache. Please refresh the cache and tell me if it's fixed.

(2016-11-24, 09:12)loggio Wrote: [ -> ]4. Widgets are constantly refreshing when i exit any window back to the homescreen.
The old method of refreshing after video playback or library update was much better in my opinion, considering the average user wouldn't spend enough time on the home screen to allow the widgets to fully refresh... especially if the widgets are pulling info from the internet, this constant reload will cause low end machines to bog down and heat up pretty quickly, which is what's happening to me on the RPi

It depends on the skin. Some skins use the same container for all their widgets, meaning that the widget is constantly reloaded. Other skins have a seperate container for each widget, this takes a little more memory consumption but widgets are kept in memory and are not needingless refreshed all the time. I think you'll have to take a look at your skin's implementation of widgets.
(2016-11-24, 15:51)JohnyBee Wrote: [ -> ]Hi Marcel,
thanks for streaming - is OK

Small bug:
In file \addons\script.module.skin.helper.artutils\lib\helpers\musicartwork.py
line 193..195 is:

Crap, missed that spot ;-)
Thanks for paying attention :-)

I'll fix it tonight
(2016-11-24, 16:13)JohnyBee Wrote: [ -> ]maybe a small bug:

Thanks again! I must have types thet code a little late in the night I guess ;-)
Damn copy-paste errors... Will be fixed tonight too.
(2016-11-24, 18:54)Skinnerxyz Wrote: [ -> ]When i switch the channel, the Infos in dialogfullscreeninfo dont refresh, i first must stop the livetv and restart the channel, then the info is the right one

Hmmm, that is strange.. The info should be refreshed. It's also working fine on my setup.
What Kodi version and what PVR version ?
(2016-11-24, 21:19)marcelveldt Wrote: [ -> ]
(2016-11-24, 16:13)JohnyBee Wrote: [ -> ]maybe a small bug:

Thanks again! I must have types thet code a little late in the night I guess ;-)
Damn copy-paste errors... Will be fixed tonight too.



Do you read my post above ?


Edit

I use kodi krypton nightly from 12.11.

And i use zattoo pvr as pvr backend.
edit: nvm
(2016-11-24, 21:24)marcelveldt Wrote: [ -> ]
(2016-11-24, 21:23)Skinnerxyz Wrote: [ -> ]Do you read my post above ?

Yes, I fixed both issues you found.



Wow great :-)

Comes there a Update to the repo ?
(2016-11-24, 21:26)Skinnerxyz Wrote: [ -> ]Comes there a Update to the repo ?

Offcourse, later today, when I fixed a few more issues ;-)
Country fixed in sets, thanks.
(2016-11-24, 21:13)marcelveldt Wrote: [ -> ]
(2016-11-24, 09:12)loggio Wrote: [ -> ]1. The channels widget doesn't work at all now, it just displays "no information available" :

It takes a few minutes before the EPG data is available. At system start it will indeed show "No information available". Once the info is there, the widget will refresh and show the correct results. Nothing to do about that.


(2016-11-24, 09:12)loggio Wrote: [ -> ]2. Google images are still not Auto populated, but work if i "manually" scrape them.

Yes they are but the old "wrong" data is still in your cache now. You can refresh the cache by using the manual refresh button (like you already found out).
To completely wipe the cache, delete folder script.module.simplecache from addon_data

(2016-11-24, 09:12)loggio Wrote: [ -> ]3. When skin helper does not find any results, the default background image in the channels window is being replaced by the channel icon and not the fallback image defined in the <texture> parameter and looks horrible... Maybe this might be because the old method was using SkinHelper.PVR.Thumb which was different from the default Listitem.Art.Thumb and didn't clash with Kodi defaults. Perhaps a way around this would be to save google results as "landscape" image instead of "thumb"?

See my answer at 3)... The wrong data is still in your cache. Please refresh the cache and tell me if it's fixed.

(2016-11-24, 09:12)loggio Wrote: [ -> ]4. Widgets are constantly refreshing when i exit any window back to the homescreen.
The old method of refreshing after video playback or library update was much better in my opinion, considering the average user wouldn't spend enough time on the home screen to allow the widgets to fully refresh... especially if the widgets are pulling info from the internet, this constant reload will cause low end machines to bog down and heat up pretty quickly, which is what's happening to me on the RPi

It depends on the skin. Some skins use the same container for all their widgets, meaning that the widget is constantly reloaded. Other skins have a seperate container for each widget, this takes a little more memory consumption but widgets are kept in memory and are not needingless refreshed all the time. I think you'll have to take a look at your skin's implementation of widgets.


I don't know what to tell you...

I fully deleted the cache many many times and still nothing shows up.
Last night I even did a complete rebuild of my libreelec setup and installed everything from scratch.... It's been on all night and the widget still says "no information available" and all my channels show no google results unless I manually search them. Imdb results seem to work ok... Just not google


Just to make sure, I just wipes the cache again and still nothing. And my fallback image is still being shown as the channel logo and not the fallback image.

##EDIT##

Ah huh!
So i found the issue with the Artwork.
After installing skin helper for the first time I removed the information from the "Skip if genre contains any of these genres" from the Skin Helper Artwork Module and left it blank, and artwork would not appear. But i just realized if i put a "0" in the "skip if genre contains any of these genres" field then deleted the cache the artwork started to appear properly even the fallback image is working properly! ... it appears to be a bug, if the field is left empty.

PVR channels widget still does not show any information. I might add that the channels widget was working before the last update by the way.

Hope this helps, and thanks for all your hard work :-)
(2016-11-24, 23:35)loggio Wrote: [ -> ]I fully deleted the cache many many times and still nothing shows up.
Last night I even did a complete rebuild of my libreelec setup and installed everything from scratch.... It's been on all night and the widget still says "no information available" and all my channels show no google results unless I manually search them. Imdb results seem to work ok... Just not google

Just to make sure, I just wipes the cache again and still nothing. And my fallback image is still being shown as the channel logo and not the fallback image.

1) Issue with the channels widget will be fixed in next update, just found the cause of that issue.

2) As for channels not scraping google results... Also just fixed that one. Please have a test with next version.
Hi Marcel,

I have many errors with :

plugin://script.skin.helper.widgets/?action=nextaired&mediatype=episodes&reload=$INFO[Window(Home).Property(widgetreload2)]

plugin://script.skin.helper.widgets/?action=unaired&mediatype=episodes&reload=$INFO[Window(Home).Property(widgetreload2)]

Code:
23:59:44.160 T:123145423413248   DEBUG: Previous line repeats 1 times.
23:59:44.160 T:123145423413248   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <class 'arrow.parser.ParserError'>
                                            Error Contents: Failed to match format 'h:mm A' when parsing '6:30PM'
                                            Traceback (most recent call last):
                                              File "/Users/Cyril/Library/Application Support/Kodi/addons/script.skin.helper.widgets/plugin.py", line 11, in <module>
                                                main.Main()
                                              File "/Users/Cyril/Library/Application Support/Kodi/addons/script.skin.helper.widgets/resources/lib/main.py", line 46, in __init__
                                                self.show_widget_listing()
                                              File "/Users/Cyril/Library/Application Support/Kodi/addons/script.skin.helper.widgets/resources/lib/main.py", line 134, in show_widget_listing
                                                all_items = getattr(media_class, action)()
                                              File "/Users/Cyril/Library/Application Support/Kodi/addons/script.skin.helper.widgets/resources/lib/episodes.py", line 166, in nextaired
                                                episodes = tvdb.get_kodi_unaired_episodes(True)
                                              File "/Users/Cyril/Library/Application Support/Kodi/addons/script.module.thetvdb/lib/thetvdb.py", line 355, in get_kodi_unaired_episodes
                                                kodi_series = self.get_continuing_kodi_series()
                                              File "/Users/Cyril/Library/Application Support/Kodi/addons/script.module.thetvdb/lib/thetvdb.py", line 339, in get_continuing_kodi_series
                                                tvdb_details = self.get_series(kodi_serie["imdbnumber"])
                                              File "/Users/Cyril/Library/Application Support/Kodi/addons/script.module.simplecache/lib/simplecache.py", line 255, in decorated
                                                result = func(*args, **kwargs)
                                              File "/Users/Cyril/Library/Application Support/Kodi/addons/script.module.thetvdb/lib/thetvdb.py", line 134, in get_series
                                                return self.map_series_data(seriesinfo)
                                              File "/Users/Cyril/Library/Application Support/Kodi/addons/script.module.thetvdb/lib/thetvdb.py", line 450, in map_series_data
                                                result["airtime"] = self.get_local_time(showdetails["airsTime"])
                                              File "/Users/Cyril/Library/Application Support/Kodi/addons/script.module.thetvdb/lib/thetvdb.py", line 556, in get_local_time
                                                result = arrow.get(timestr, 'h:mm A').format(time_format, locale=KODI_LANGUAGE)
                                              File "/Users/Cyril/Library/Application Support/Kodi/addons/script.module.arrow/lib/arrow/api.py", line 23, in get
                                                return _factory.get(*args, **kwargs)
                                              File "/Users/Cyril/Library/Application Support/Kodi/addons/script.module.arrow/lib/arrow/factory.py", line 195, in get
                                                dt = parser.DateTimeParser(locale).parse(args[0], args[1])
                                              File "/Users/Cyril/Library/Application Support/Kodi/addons/script.module.arrow/lib/arrow/parser.py", line 141, in parse
                                                raise ParserError('Failed to match format \'{0}\' when parsing \'{1}\''.format(fmt, original_string))
                                            ParserError: Failed to match format 'h:mm A' when parsing '6:30PM'
                                            -->End of Python script error report<--
23:59:44.164 T:123145412145152   ERROR: GetDirectory - Error getting plugin://script.skin.helper.widgets/?action=unaired&mediatype=episodes&reload=
23:59:44.167 T:123145412145152   DEBUG: CMultiPathDirectory::GetDirectory(multipath://special%3A%2F%2Fprofile%2Fplaylists%2Fvideo/special%3A%2F%2Fprofile%2Fplaylists%2Fmixed/)
23:59:44.167 T:123145412145152   DEBUG: Getting Directory (special://profile/playlists/video)
23:59:44.167 T:123145412145152   DEBUG: Getting Directory (special://profile/playlists/mixed)
23:59:44.168 T:123145412145152   DEBUG: CMultiPathDirectory::MergeItems, items = 0
23:59:44.168 T:123145412145152   DEBUG: CPVRDirectory::GetDirectory(pvr://channels/tv/*)
23:59:44.168 T:123145412145152   DEBUG: CPVRDirectory::GetDirectory(pvr://channels/tv/*?view=lastplayed)
23:59:44.168 T:123145412145152   DEBUG: CPVRDirectory::GetDirectory(pvr://recordings/tv/active?view=flat)
23:59:44.169 T:123145412145152   DEBUG: CPVRDirectory::GetDirectory(pvr://channels/radio/*?view=lastplayed)
23:59:44.169 T:123145412145152   DEBUG: CPVRDirectory::GetDirectory(pvr://recordings/radio/active?view=flat)
23:59:44.183 T:123145412145152   DEBUG: RunQuery took 3 ms for 5 items query: select * from musicvideo_view  ORDER BY dateAdded desc, idMVideo desc LIMIT 100
23:59:44.216 T:123145423413248 WARNING: CPythonInvoker(13, /Users/Cyril/Library/Application Support/Kodi/addons/script.skin.helper.widgets/plugin.py): the python script "/Users/Cyril/Library/Application Support/Kodi/addons/script.skin.helper.widgets/plugin.py" has left several classes in memory that we couldn't clean up. The classes include: N9XBMCAddon9xbmcaddon5AddonE,N9XBMCAddon9xbmcaddon5AddonE,N9XBMCAddon7xbmcgui6WindowE,N9XBMCAddon4xbmc7MonitorE,N9XBMCAddon7xbmcgui6WindowE,N9XBMCAddon4xbmc7MonitorE,N9XBMCAddon7xbmcgui6WindowE,N9XBMCAddon4xbmc7MonitorE,N9XBMCAddon7xbmcgui6WindowE,N9XBMCAddon4xbmc7MonitorE,N9XBMCAddon7xbmcgui6WindowE,N9XBMCAddon7xbmcgui6WindowE,N9XBMCAddon4xbmc7MonitorE
23:59:44.216 T:123145423413248    INFO: Python script stopped
23:59:44.216 T:123145423413248   DEBUG: Thread LanguageInvoker 123145423413248 terminating
23:59:44.233 T:123145402408960   ERROR: GetDirectory - Error getting plugin://script.skin.helper.widgets/?action=nextaired&mediatype=episodes&reload=

And what about of : plugin://script.skin.helper.service/?action=nextairedtvshows&amp;reload=$INFO[Window(Home).Property(widgetreload2)] ?

Does not exist in new addon ?