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-08-25, 16:11)marcelveldt Wrote: [ -> ]
(2015-08-25, 12:33)Jayz2K Wrote: [ -> ]Complete log (line 2701) :
KOver LOG

You will also see I get the same errors as others with the LOGIN FAILED kaitoasts.

Could you please try the latest Git version ?
I did some fixes to the backup/restore function. Also fixed a bunch of unicode errors I saw in your log.

I will now take a look at the login failed stuff. This must be the widgetbuilder which is trying to probe the extendedinfo addon what content it provides.

Thanks Marcel, but I still get the same error for backup.
New log (Line 2063) :
KOver LOG2
(2015-08-25, 16:29)marcelveldt Wrote: [ -> ]
(2015-08-24, 20:52)tomer953 Wrote: [ -> ]marcel, somewhere in page 2 I reported that users who added some 'tricky' favourites like this one has a problem:
your script make those one auto playing... when startup, or after few minutes...
Hope you can prevent it from actually run the scripts....

Also I reported about some LOG IN Failed in extendedinfo and session error as well, and clear cache is solving it, but after I added your script to my skin, a lot of users complained aboutt that issuse, any way I can make clear the cache for them in the skin side? or maybe you have a way to prevent it? [I think I posted debug log in page 2 about it]

Both issues should now be fixed on Git. Please review.

downloaded latest git (right now) and tested,
right now there are no errors for extendedinfo (login failed, sessions error etc)
BUT, the favourites are still auto played.
debug log: http://pastebin.com/jgvTpdi1
fav file:
http://pastebin.com/kcyV4ZtG

many thanks!
(2015-08-25, 21:46)tomer953 Wrote: [ -> ]BUT, the favourites are still auto played.
debug log: http://pastebin.com/jgvTpdi1
fav file:
http://pastebin.com/kcyV4ZtG

I forgot to apply the safety check at one level. Could you please try the latest git version ? I've just checked in the fix.
latest git - still the same... opening youtube stream on startup
debug: http://pastebin.com/fGTXFe7V
(2015-08-26, 07:25)tomer953 Wrote: [ -> ]latest git - still the same... opening youtube stream on startup
debug: http://pastebin.com/fGTXFe7V
OK, one more try... Can you check out the latest Git again ?

BTW... no need to supply a Kodi debug log. Just a normal log is sufficient.
Ill try later, im at work right now.
And about the debug log, yeah I wanted to ask if needed. Good point...

Thanks man.
I also replace all my movieset.discart textures to yours script.
From a VERY quick check, the first discart is missing...
But - ill check again later. Maybe a typo or something in my code.
It only shows cdart 2,3 and later.
Hi Marcel, thank you for an awesome script.
One small issue - I am using plugin://script.skin.helper.service/?action=nextepisodes for a custom quick TV watch feature ....but the list does not update/refresh once you have watched an episode... it's constantly offering the episode that it retrieved upon initial load. Hope you can resolve this.

Thanks dude.
Hi Marcel,

The cast list for movie sets is not working, I took a look and can see it is having issues with trying to get the cast returned for each movie.

This code will solve it but only returns the cast for the last movie in the collection, I'm not sure what you wanted to return (ie combine the cast lists?) but here is the code if it helps.

Code:
elif movieset and itemId:
        json_query_string = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method": "VideoLibrary.GetMovieSetDetails", "params": { "setid": %d, "properties": [ "title" ] }, "id": "1"}' %itemId)
        castList = []
        print json_query_string
        json_result = json.loads(json_query_string.decode('utf-8','replace'))
        print json_result
        if json_result.has_key('result') and json_result['result'].has_key('setdetails'):
            movieset = json_result['result']['setdetails']
            if movieset.has_key("movies"):
                for movie in movieset['movies']:
                    json_query_string = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method": "VideoLibrary.GetMovieDetails", "params": { "movieid": %d, "properties": [ "title", "cast" ] }, "id": "1"}' %movie["movieid"])
                    print json_query_string
                    json_result = json.loads(json_query_string.decode('utf-8','replace'))
                    if json_result.has_key('result') and json_result['result'].has_key('moviedetails'):
                        item = json_result['result']['moviedetails']
                    for cast in item["cast"]:
                        if not cast["name"] in castList:
                            liz = xbmcgui.ListItem(label=cast["name"],label2=cast["role"],iconImage=cast["thumbnail"])
                            liz.setProperty('IsPlayable', 'false')
                            xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url="", listitem=liz, isFolder=True)
                            castList.append(cast["name"])
(2015-08-26, 10:28)echo Wrote: [ -> ]Hi Marcel, thank you for an awesome script.
One small issue - I am using plugin://script.skin.helper.service/?action=nextepisodes for a custom quick TV watch feature ....but the list does not update/refresh once you have watched an episode... it's constantly offering the episode that it retrieved upon initial load. Hope you can resolve this.

Please append this to the path: &reload=$INFO[Window(Home).Property(widgetreload)]

I forgot to mention that in the readme. If you add in that line it will auto refresh the widget when needed, for example when the library had changed.
(2015-08-25, 21:12)Jayz2K Wrote: [ -> ]
(2015-08-25, 16:11)marcelveldt Wrote: [ -> ]
(2015-08-25, 12:33)Jayz2K Wrote: [ -> ]Complete log (line 2701) :
KOver LOG

You will also see I get the same errors as others with the LOGIN FAILED kaitoasts.

Could you please try the latest Git version ?
I did some fixes to the backup/restore function. Also fixed a bunch of unicode errors I saw in your log.

I will now take a look at the login failed stuff. This must be the widgetbuilder which is trying to probe the extendedinfo addon what content it provides.

Thanks Marcel, but I still get the same error for backup.
New log (Line 2063) :
KOver LOG2

Hi Marcel,
I'm not Python coder at all but looked at the BackupRestore.py. I noticed 2 things :

- If I use the "|" char for multiple filter, Backup returns immediatly an error without browse prompt.
- In the code, if I replace :

Code:
skinsettings = doc.documentElement.getElementsByTagName('skinsettings')[0]
skinsettings = skinsettings.getElementsByTagName('setting')

By

Code:
skinsettings = doc.documentElement.getElementsByTagName('setting')

Then it generate the zip file but guisettings.txt enclosed only contains "[]"
I also noticed it backups all the skinshortcuts overrides, is it always the case and necessary ?

Not sure if that helps ...
(2015-08-26, 11:59)im85288 Wrote: [ -> ]The cast list for movie sets is not working, I took a look and can see it is having issues with trying to get the cast returned for each movie.

This code will solve it but only returns the cast for the last movie in the collection, I'm not sure what you wanted to return (ie combine the cast lists?) but here is the code if it helps.

Thanks. I just fixed it on Git. Could you give it a try ?
(2015-08-26, 13:45)Jayz2K Wrote: [ -> ]Then it generate the zip file but guisettings.txt enclosed only contains "[]"
I also noticed it backups all the skinshortcuts overrides, is it always the case and necessary ?

I will take a look. tbh I did not really test that parameter stuff very well. I'll experiment with it some more and let you know.
In the full backup the skinshortcuts are also backupped, together with the skin-specific properties.
It shouldn't do that with the parameter option however, I'll look into that.

EDIT: I think you're on Kodi Jarvis, right ?
I didn't yet implement support for that. It was still on my todo. Now implementing it however ;-)
(2015-08-26, 13:27)marcelveldt Wrote: [ -> ]Please append this to the path: &reload=$INFO[Window(Home).Property(widgetreload)]
I forgot to mention that in the readme. If you add in that line it will auto refresh the widget when needed, for example when the library had changed.

Brilliant, works well, thanks.
(2015-08-26, 13:54)marcelveldt Wrote: [ -> ]
(2015-08-26, 11:59)im85288 Wrote: [ -> ]The cast list for movie sets is not working, I took a look and can see it is having issues with trying to get the cast returned for each movie.

This code will solve it but only returns the cast for the last movie in the collection, I'm not sure what you wanted to return (ie combine the cast lists?) but here is the code if it helps.

Thanks. I just fixed it on Git. Could you give it a try ?

Just tried it and it's almost there, the only thing missing is to remove the "cast" attribute from the call to get the sets information else that call fails silently.

Code:
elif movieset and itemId:
        json_query_string = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method": "VideoLibrary.GetMovieSetDetails", "params": { "setid": %d, "properties": [ "title"] }, "id": "1"}' %itemId)
        json_result = json.loads(json_query_string.decode('utf-8','replace'))
        if json_result.has_key('result') and json_result['result'].has_key('setdetails'):
            movieset = json_result['result']['setdetails']
            if movieset.has_key("movies"):
                moviesetmovies = movieset['movies']      
    elif movieset and not itemId:
        json_query_string = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method": "VideoLibrary.GetMovieSets", "params": { "filter": {"operator":"is", "field":"title", "value":"%s"}, "properties": [ "title" ] }, "id": "1"}' %tvshow)
        json_result = json.loads(json_query_string.decode('utf-8','replace'))
        if json_result.has_key('result') and json_result['result'].has_key('sets '):
            movieset = json_result['result']['sets '][0]
            if movieset.has_key("movies"):
                moviesetmovies = movieset['movies']
(2015-08-26, 15:15)im85288 Wrote: [ -> ]Just tried it and it's almost there, the only thing missing is to remove the "cast" attribute from the call to get the sets information else that call fails silently.

Ah, thanks. Fixed on Git now.