Kodi Community Forum
Release skin helper service - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Development (https://forum.kodi.tv/forumdisplay.php?fid=32)
+--- Forum: Skinning (https://forum.kodi.tv/forumdisplay.php?fid=12)
+---- Forum: Skin helper addons (https://forum.kodi.tv/forumdisplay.php?fid=300)
+---- Thread: Release skin helper service (/showthread.php?tid=235676)



RE: skin helper service - Fuchs2468 - 2022-06-21

(2022-06-19, 00:20)bsoriano Wrote:
(2022-06-18, 23:42)Wanilton Wrote:  

@Wanilton , thank you! This indeed fixes the issue.  Perhaps you can submit a PR so that @Angelinas can merge it into the code that is in the repo? Thanks again.

Regards,

Bart

I suspect that @sualfred added "script.skin.helper.colourpicker" to the kodi repo.
But the addon was no longer updated by him.
Since "Apr 2, 2021" this problem is fixed.

https://github.com/kodi-community-addons/script.skin.helper.colorpicker/commit/d6b04014357ef4c0b0a8c00b66a2720d6a174040

It should be updated on kodi repo.
On "repository.marcelveldt" it is up to date.
You should use "script.skin.helper.colourpicker" from here.

https://github.com/kodi-community-addons


RE: skin helper service - Fuchs2468 - 2022-07-03

Hello @Angelinas.

I have a function request for SHS. 
This request is for extrafanart. 
Could you extend extrafanart for movies and tvshows to an online requests?
This function is available for the music database or PVR. 

Here is an example: 




RE: skin helper service - Angelinas - 2022-07-03

(2022-07-03, 00:43)Fuchs2468 Wrote: This request is for extrafanart. 
Could you extend extrafanart for movies and tvshows to an online requests?
extrafanart for set, movies and tvshows work only with videodb:// in path.
For online requests use:
Window(Home).Property(SkinHelper.ListItem.Art.FanArts)


RE: skin helper service - Fuchs2468 - 2022-07-04

(2022-07-03, 08:30)Angelinas Wrote:
(2022-07-03, 00:43)Fuchs2468 Wrote:  
extrafanart for set, movies and tvshows work only with videodb:// in path.
For online requests use:
Window(Home).Property(SkinHelper.ListItem.Art.FanArts)

Yes, unfortunately it only works with a path at videodb://. That's why I asked whether it would be possible to extend "Window(Home).Property(SkinHelper.ListItem.Art.ExtraFanArt)" at videodb with an online request.
As with musicdb and PVR.

For example, since I don't use extrafanart in my local videodb or musicdb, this function would be pratic.
Currently there are 2 switches in "Titan Mod" one is extrafanart with SHS and the other switch is extrafanart without SHS. 

Extrafanart with SHS => Extrafanart with musicdb and pvr 
Extrafanart without SHS => Extrafanart at videodb but only in connection with "script.artwork.beef" if no extrafanart is defined.

It would be easier for the skin if everything went through SHS.


RE: skin helper service - AchillesPunks - 2022-07-04

@Angelinas

Do you have the previous version of Metadata Utilities be for 1.0.50. This version fixed my multi process but everyone on our skin is losing there ratings... I would really like to test if you have it. We have all deleted our simplecache.db and deleted the settings.


RE: skin helper service - Fuchs2468 - 2022-07-11

Hello @Angelinas.

I did some tests with "script.module.thetvdb" today. 
Versions 30,31 and 32 cause errors in connection with "script.skin.helper.widgets".
So it is not possible to update to the newest version.
Version 29 works without errors.

I have tested with: 
Code:
plugin://script.skin.helper.widgets/?action=nextaired&mediatype=episodes&reload=$INFO[Window(Home).Property(widgetreload-episodes)]
Here are the errors.
Version 30:
Code:
2022-07-10 23:28:15.899 T:15580 WARNING <general>: script.skin.helper.widgets --> Exception details: Type: UnboundLocalError Value: local variable 'local' referenced before assignment Traceback: Traceback (most recent call last):
                                                     File "C:\TEST-KODI19\portable_data\addons\script.skin.helper.widgets\resources\lib\main.py", line 177, in show_widget_listing
                                                       all_items = getattr(media_class, action)()
                                                     File "C:\TEST-KODI19\portable_data\addons\script.skin.helper.widgets\resources\lib\episodes.py", line 246, in nextaired
                                                       episodes = self.metadatautils.thetvdb.get_kodi_unaired_episodes(True, False, tvshows_ids)
                                                     File "C:\TEST-KODI19\portable_data\addons\script.module.thetvdb\lib\thetvdb.py", line 452, in get_kodi_unaired_episodes
                                                       kodi_series = self.get_kodishows(True)
                                                     File "C:\TEST-KODI19\portable_data\addons\script.module.thetvdb\lib\thetvdb.py", line 386, in get_kodishows
                                                       tvdb_details = self._parse_kodi_show(kodi_serie)
                                                     File "C:\TEST-KODI19\portable_data\addons\script.module.thetvdb\lib\thetvdb.py", line 630, in _parse_kodi_show
                                                       tvdb_details = self.get_series(kodi_details["imdbnumber"])
                                                     File "C:\TEST-KODI19\portable_data\addons\script.module.simplecache\lib\simplecache.py", line 304, in decorated
                                                       result = func(*args, **kwargs)
                                                     File "C:\TEST-KODI19\portable_data\addons\script.module.thetvdb\lib\thetvdb.py", line 181, in get_series
                                                       return self._map_series_data(seriesinfo)
                                                     File "C:\TEST-KODI19\portable_data\addons\script.module.thetvdb\lib\thetvdb.py", line 573, in _map_series_data
                                                       local_airday, local_airday_short, airday_int = self._get_local_weekday(local.format('dddd'))
                                                   UnboundLocalError: local variable 'local' referenced before assignment
                                                   
2022-07-10 23:28:15.924 T:15580    INFO <general>: script.module.thetvdb --> Exited
2022-07-10 23:28:15.924 T:15580    INFO <general>: script.module.metadatautils --> Exited                   

Version 31:
Code:
2022-07-10 23:15:00.133 T:5900  WARNING <general>: script.skin.helper.widgets --> Exception details: Type: UnboundLocalError Value: local variable 'local' referenced before assignment Traceback: Traceback (most recent call last):
                                                     File "C:\TEST-KODI19\portable_data\addons\script.skin.helper.widgets\resources\lib\main.py", line 177, in show_widget_listing
                                                       all_items = getattr(media_class, action)()
                                                     File "C:\TEST-KODI19\portable_data\addons\script.skin.helper.widgets\resources\lib\episodes.py", line 246, in nextaired
                                                       episodes = self.metadatautils.thetvdb.get_kodi_unaired_episodes(True, False, tvshows_ids)
                                                     File "C:\TEST-KODI19\portable_data\addons\script.module.thetvdb\lib\thetvdb.py", line 452, in get_kodi_unaired_episodes
                                                       kodi_series = self.get_kodishows(True)
                                                     File "C:\TEST-KODI19\portable_data\addons\script.module.thetvdb\lib\thetvdb.py", line 386, in get_kodishows
                                                       tvdb_details = self._parse_kodi_show(kodi_serie)
                                                     File "C:\TEST-KODI19\portable_data\addons\script.module.thetvdb\lib\thetvdb.py", line 630, in _parse_kodi_show
                                                       tvdb_details = self.get_series(kodi_details["imdbnumber"])
                                                     File "C:\TEST-KODI19\portable_data\addons\script.module.simplecache\lib\simplecache.py", line 304, in decorated
                                                       result = func(*args, **kwargs)
                                                     File "C:\TEST-KODI19\portable_data\addons\script.module.thetvdb\lib\thetvdb.py", line 181, in get_series
                                                       return self._map_series_data(seriesinfo)
                                                     File "C:\TEST-KODI19\portable_data\addons\script.module.thetvdb\lib\thetvdb.py", line 573, in _map_series_data
                                                       local_airday, local_airday_short, airday_int = self._get_local_weekday(local.format('dddd'))
                                                   UnboundLocalError: local variable 'local' referenced before assignment
                                                   
2022-07-10 23:15:00.156 T:16892 WARNING <general>: script.tv.show.next.aired --> Exception in resources.lib.main_module ! --> local variable 'local' referenced before assignment
2022-07-10 23:15:00.157 T:16892    INFO <general>: script.module.thetvdb --> Exited
Version 32:
Code:
2022-07-10 22:38:12.348 T:14396    INFO <general>: script.module.metadatautils --> Initialized
2022-07-10 22:38:12.357 T:14396    INFO <general>: script.module.thetvdb --> Initialized
2022-07-10 22:38:12.673 T:14396 WARNING <general>: script.skin.helper.widgets --> Exception details: Type: TypeError Value: string indices must be integers Traceback: Traceback (most recent call last):
                                                     File "C:\TEST-KODI19\portable_data\addons\script.skin.helper.widgets\resources\lib\main.py", line 177, in show_widget_listing
                                                       all_items = getattr(media_class, action)()
                                                     File "C:\TEST-KODI19\portable_data\addons\script.skin.helper.widgets\resources\lib\episodes.py", line 246, in nextaired
                                                       episodes = self.metadatautils.thetvdb.get_kodi_unaired_episodes(True, False, tvshows_ids)
                                                     File "C:\TEST-KODI19\portable_data\addons\script.module.thetvdb\lib\thetvdb.py", line 436, in get_kodi_unaired_episodes
                                                       kodi_series = self.get_kodishows(True)
                                                     File "C:\TEST-KODI19\portable_data\addons\script.module.thetvdb\lib\thetvdb.py", line 370, in get_kodishows
                                                       tvdb_details = self._parse_kodi_show(kodi_serie)
                                                     File "C:\TEST-KODI19\portable_data\addons\script.module.thetvdb\lib\thetvdb.py", line 626, in _parse_kodi_show
                                                       tvdb_details = self.get_series(kodi_details["imdbnumber"])
                                                     File "C:\TEST-KODI19\portable_data\addons\script.module.simplecache\lib\simplecache.py", line 304, in decorated
                                                       result = func(*args, **kwargs)
                                                     File "C:\TEST-KODI19\portable_data\addons\script.module.thetvdb\lib\thetvdb.py", line 165, in get_series
                                                       return self._map_series_data(seriesinfo)
                                                     File "C:\TEST-KODI19\portable_data\addons\script.module.thetvdb\lib\thetvdb.py", line 555, in _map_series_data
                                                       result["cast.%s.tvdbname" % count] = item["name"]
                                                   TypeError: string indices must be integers



RE: skin helper service - Fuchs2468 - 2022-07-23

Hello @Angelinas.

There is an error in autoclose osd.
Autoclose osd should only close "videoosd" and "musicosd".
But autoclose osd also closes "osdaudiosettings" and "osdsubtitlesettings".

Here is my troubleshooting solution.

\script.skin.helper.service\resources\lib\listitem_monitor.py
python:
    @staticmethod
    def check_osd():
        '''Allow user to set a default close timeout for the OSD panels'''
        if getCondVisibility("[Window.IsActive(videoosd) + Skin.String(SkinHelper.AutoCloseVideoOSD)] | "
                                  "[Window.IsActive(musicosd) + Skin.String(SkinHelper.AutoCloseMusicOSD)]"):
            if getCondVisibility("Window.IsActive(videoosd)"):
                seconds = xbmc.getInfoLabel("Skin.String(SkinHelper.AutoCloseVideoOSD)")
                window = "videoosd"
            elif getCondVisibility("Window.IsActive(musicosd)"):
                seconds = xbmc.getInfoLabel("Skin.String(SkinHelper.AutoCloseMusicOSD)")
                window = "musicosd"
            else:
                seconds = ""
            if seconds and seconds != "0":
                while getCondVisibility("Window.IsActive(%s)" % window):
                    if getCondVisibility("System.IdleTime(%s)" % seconds):
                        if getCondVisibility("Window.IsActive(%s)" % window):
                            xbmc.executebuiltin("Dialog.Close(%s)" % window)
                    else:
                        xbmc.sleep(500)

replace with:
python:
    @staticmethod
    def check_osd():
        '''Allow user to set a default close timeout for the OSD panels'''
        if getCondVisibility("[Window.IsActive(videoosd) + Skin.String(SkinHelper.AutoCloseVideoOSD)] | "
                                  "[Window.IsActive(musicosd) + Skin.String(SkinHelper.AutoCloseMusicOSD)]"):
            if getCondVisibility("Window.IsActive(videoosd)"):
                seconds = xbmc.getInfoLabel("Skin.String(SkinHelper.AutoCloseVideoOSD)")
                window = "videoosd"
            elif getCondVisibility("Window.IsActive(musicosd)"):
                seconds = xbmc.getInfoLabel("Skin.String(SkinHelper.AutoCloseMusicOSD)")
                window = "musicosd"
            else:
                seconds = ""
            if seconds and seconds != "0":
                while getCondVisibility("Window.IsActive(%s) + !Window.IsActive(10159) + !Window.IsActive(10124)" % window):
                    if getCondVisibility("System.IdleTime(%s)" % seconds):
                        if getCondVisibility("Window.IsActive(%s) + !Window.IsActive(10159) + !Window.IsActive(10124)" % window):
                            xbmc.executebuiltin("Dialog.Close(%s)" % window)
                    else:
                        xbmc.sleep(500)



RE: skin helper service - XY5ANige - 2022-09-04

I'm having a problem installing the latest release from here: https://github.com/kodi-community-addons/script.skin.helper.service

I keep receiving a "Failed to install add-on from zip file" error?


RE: skin helper service - Fuchs2468 - 2022-09-04

(2022-09-04, 14:22)XY5ANige Wrote: I'm having a problem installing the latest release from here: https://github.com/kodi-community-addons/script.skin.helper.service

I keep receiving a "Failed to install add-on from zip file" error?

You cannot simply install "script.skin.helper.service" as a zip file.
You must first install "repository.marcelveldt-1.0.3.zip". 
And install "script.skin.helper.service" via this repo. 
Otherwise the attachments required for this addon are missing, and you will receive an error message.

repository.marcelveldt-1.0.3.zip


RE: skin helper service - Shredder_guitar - 2022-09-12

I'm seeing this error alot in the logs and it's causing my instances of Kodi to become unstable and crash soon after, can someone please advise?
Code:

2022-09-11 21:55:57.382 T:37144 WARNING <general>: Skin Helper Service --> Exception details: Type: KeyError Value: 'airdatetime' Traceback: Traceback (most recent call last):
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.skin.helper.service\resources\lib\listitem_monitor.py", line 375, in set_listitem_details
                                                       details, self.metadatautils.get_tvdb_details(
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.module.simplecache\lib\simplecache.py", line 304, in decorated
                                                       result = func(*args, **kwargs)
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.module.metadatautils\lib\metadatautils.py", line 280, in get_tvdb_details
                                                       result["lastepisode"] = self.thetvdb.get_last_episode_for_series(result["tvdb_id"])
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.module.simplecache\lib\simplecache.py", line 304, in decorated
                                                       result = func(*args, **kwargs)
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.module.thetvdb\lib\thetvdb.py", line 263, in get_last_episode_for_series
                                                       return self.get_episode(highest_eps[1])
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.module.simplecache\lib\simplecache.py", line 304, in decorated
                                                       result = func(*args, **kwargs)
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.module.thetvdb\lib\thetvdb.py", line 168, in get_episode
                                                       episode = self._map_episode_data(episode, seriesdetails)
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.module.thetvdb\lib\thetvdb.py", line 511, in _map_episode_data
                                                       result["airdatetime.label"] = "%s - %s %s" % (result["airdatetime"],
                                                   KeyError: 'airdatetime'

Code:

2022-09-11 21:55:57.438 T:23156 WARNING <general>: Skin Helper Service --> Exception details: Type: OSError Value: [Errno 22] Invalid argument Traceback: Traceback (most recent call last):
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.skin.helper.service\resources\lib\listitem_monitor.py", line 375, in set_listitem_details
                                                       details, self.metadatautils.get_tvdb_details(
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.module.simplecache\lib\simplecache.py", line 304, in decorated
                                                       result = func(*args, **kwargs)
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.module.metadatautils\lib\metadatautils.py", line 272, in get_tvdb_details
                                                       result = self.thetvdb.get_series(tvdbid)
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.module.simplecache\lib\simplecache.py", line 304, in decorated
                                                       result = func(*args, **kwargs)
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.module.thetvdb\lib\thetvdb.py", line 181, in get_series
                                                       return self._map_series_data(seriesinfo)
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.module.thetvdb\lib\thetvdb.py", line 572, in _map_series_data
                                                       local = self._get_local_tz(bns)
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.module.thetvdb\lib\thetvdb.py", line 795, in _get_local_tz
                                                       local =  utc.to('local')
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.module.arrow\lib\arrow\arrow.py", line 1054, in to
                                                       dt = self._datetime.astimezone(tz)
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.module.dateutil\lib\dateutil\tz\_common.py", line 144, in fromutc
                                                       return f(self, dt)
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.module.dateutil\lib\dateutil\tz\_common.py", line 258, in fromutc
                                                       dt_wall = self._fromutc(dt)
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.module.dateutil\lib\dateutil\tz\_common.py", line 222, in _fromutc
                                                       dtoff = dt.utcoffset()
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.module.dateutil\lib\dateutil\tz\tz.py", line 222, in utcoffset
                                                       if self._isdst(dt):
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.module.dateutil\lib\dateutil\tz\tz.py", line 291, in _isdst
                                                       dstval = self._naive_is_dst(dt)
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.module.dateutil\lib\dateutil\tz\tz.py", line 260, in _naive_is_dst
                                                       return time.localtime(timestamp + time.timezone).tm_isdst
                                                   OSError: [Errno 22] Invalid argument

Code:

2022-09-11 21:56:09.110 T:25640 WARNING <general>: Skin Helper Service --> Exception details: Type: UnboundLocalError Value: local variable 'local' referenced before assignment Traceback: Traceback (most recent call last):
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.skin.helper.service\resources\lib\kodi_monitor.py", line 78, in onNotification
                                                       self.set_video_properties(mediatype, dbid)
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.skin.helper.service\resources\lib\kodi_monitor.py", line 197, in set_video_properties
                                                       details = self.metadatautils.extend_dict(details, self.metadatautils.get_tvdb_details(li_imdb, li_tvdb))
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.module.simplecache\lib\simplecache.py", line 304, in decorated
                                                       result = func(*args, **kwargs)
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.module.metadatautils\lib\metadatautils.py", line 272, in get_tvdb_details
                                                       result = self.thetvdb.get_series(tvdbid)
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.module.simplecache\lib\simplecache.py", line 304, in decorated
                                                       result = func(*args, **kwargs)
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.module.thetvdb\lib\thetvdb.py", line 181, in get_series
                                                       return self._map_series_data(seriesinfo)
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.module.thetvdb\lib\thetvdb.py", line 573, in _map_series_data
                                                       local_airday, local_airday_short, airday_int = self._get_local_weekday(local.format('dddd'))
                                                   UnboundLocalError: local variable 'local' referenced before assignment

Code:

2022-09-11 21:56:37.864 T:38292   ERROR <general>: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                                    - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                                   Error Type: <class 'AttributeError'>
                                                   Error Contents: 'datetime.timedelta' object has no attribute 'timestamp'
                                                   Traceback (most recent call last):
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.embuary.info\default.py", line 7, in <module>
                                                       from resources.lib.helper import *
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.embuary.info\resources\lib\helper.py", line 15, in <module>
                                                       import arrow
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.module.arrow\lib\arrow\__init__.py", line 2, in <module>
                                                       from .api import get, now, utcnow
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.module.arrow\lib\arrow\api.py", line 12, in <module>
                                                       from arrow.arrow import TZ_EXPR, Arrow
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.module.arrow\lib\arrow\arrow.py", line 34, in <module>
                                                       from arrow import formatter, locales, parser, util
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.module.arrow\lib\arrow\parser.py", line 26, in <module>
                                                       from arrow.util import next_weekday, normalize_timestamp
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.module.arrow\lib\arrow\util.py", line 6, in <module>
                                                       from arrow.constants import (
                                                     File "D:\Kodi\Kodi\portable_data\addons\script.module.arrow\lib\arrow\constants.py", line 16, in <module>
                                                       _MAX_TIMESTAMP = datetime.max.timestamp()
                                                   AttributeError: 'datetime.timedelta' object has no attribute 'timestamp'
                                                   -->End of Python script error report<--



RE: skin helper service - AchillesPunks - 2022-09-12

@Shredder_guitar

I sent you a private email with a possible fix. Just install the two zip files and make sure to turn auto update off for both of them. Let me know if Kodi is still crashing.


RE: skin helper service - Shredder_guitar - 2022-09-14

Still crashing, same errors


RE: skin helper service - Fuchs2468 - 2022-09-14

(2022-09-14, 02:53)Shredder_guitar Wrote: Still crashing, same errors

I don't know which version of "script.module.thetvdb" you have installed but try this version.

script.module.thetvdb-1.0.29.zip


RE: skin helper service - Shredder_guitar - 2022-09-14

@Fuchs2468  I've only been testing for a few minutes, so hopefully i'm not speaking too soon, but i believe that appears to have stopped the errors from happening in the logs.... I'm still experiencing kodi just crashing though....no error message or anything, just shuts off... 

not sure how helpful this is, but the stacktrace file shows 
Thread 14536 (process 10208)
# 0

*update* my previous mention of kodi just simply shutting off happened twice, I've been running it for another 10-15 minutes or so and it seems to be staying up so far. I'll keep running like this and see how it goes. Perhaps the crashing is unrelated to the SHS, Base point is that the error message is gone, thank you for your help.


RE: skin helper service - Jumpy73 - 2022-09-18

removed for OT