kodi-community-addons / script.skin.helper.service Goto Github PK
View Code? Open in Web Editor NEWa helper service for Kodi skins
License: GNU General Public License v2.0
a helper service for Kodi skins
License: GNU General Public License v2.0
option in context menu to update the scraped info
wish i had debug on for this but here is the error that was logged right before kodi crashed.
running kodi 15.2 rc3 on win x64
16:59:17 T:9980 NOTICE: -->Python Interpreter Initialized<--
16:59:18 T:9980 ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
- NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
Error Type: <type 'exceptions.ValueError'>
Error Contents: too many values to unpack
Traceback (most recent call last):
File "C:\Users\Mario\AppData\Roaming\Kodi\addons\script.skin.helper.service\plugin.py", line 95, in
Main()
File "C:\Users\Mario\AppData\Roaming\Kodi\addons\script.skin.helper.service\plugin.py", line 53, in init
getRecentAlbums(limit)
File "C:\Users\Mario\AppData\Roaming\Kodi\addons\script.skin.helper.service\resources\lib\PluginContent.py", line 503, in getRecentAlbums
cdArt, LogoArt, BannerArt, extraFanArt, Info, TrackList = getMusicDetailsByDbId(item["albumid"], "albums")
ValueError: too many values to unpack
-->End of Python script error report<--
16:59:18 T:11848 ERROR: XFILE::CDirectory::GetDirectory - Error getting plugin://script.skin.helper.service/?action=recentalbums&limit=100
16:59:18 T:6336 NOTICE: Thread LanguageInvoker start, auto delete: false
16:59:18 T:6336 NOTICE: -->Python Interpreter Initialized<--
16:59:19 T:6336 ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
- NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
Error Type: <type 'exceptions.ValueError'>
Error Contents: too many values to unpack
Traceback (most recent call last):
File "C:\Users\Mario\AppData\Roaming\Kodi\addons\script.skin.helper.service\plugin.py", line 95, in
Main()
File "C:\Users\Mario\AppData\Roaming\Kodi\addons\script.skin.helper.service\plugin.py", line 55, in init
getRecentSongs(limit)
File "C:\Users\Mario\AppData\Roaming\Kodi\addons\script.skin.helper.service\resources\lib\PluginContent.py", line 594, in getRecentSongs
cdArt, LogoArt, BannerArt, extraFanArt, Info, TrackList = getMusicDetailsByDbId(item["songid"], "songs")
ValueError: too many values to unpack
-->End of Python script error report<--
16:59:19 T:11848 ERROR: XFILE::CDirectory::GetDirectory - Error getting plugin://script.skin.helper.service/?action=recentsongs&limit=100
16:59:19 T:5620 NOTICE: Thread LanguageInvoker start, auto delete: false
I am getting a "skin helper service error" frequently (using the titan skin). When I examine the error log I see many errors with the text below. The only symptom I can see is that I can't seem to press the down arrow to open the power/settings tray on the home screen.
21:59:23 T:140335304931072 ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
- NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
Error Type: <type 'exceptions.RuntimeError'>
Error Contents: osrandom engine already registered
Traceback (most recent call last):
File "/home/mehrlich/.kodi/addons/script.skin.helper.service/service.py", line 5, in <module>
from resources.lib.BackgroundsUpdater import BackgroundsUpdater
File "/home/mehrlich/.kodi/addons/script.skin.helper.service/resources/lib/BackgroundsUpdater.py", line 9, in <module>
import ArtworkUtils as artutils
File "/home/mehrlich/.kodi/addons/script.skin.helper.service/resources/lib/ArtworkUtils.py", line 5, in <module>
import requests
File "/home/mehrlich/.kodi/addons/script.module.requests/lib/requests/__init__.py", line 53, in <module>
from .packages.urllib3.contrib import pyopenssl
File "/home/mehrlich/.kodi/addons/script.module.requests/lib/requests/packages/urllib3/contrib/pyopenssl.py", line 54, in <module>
import OpenSSL.SSL
File "/usr/lib/python2.7/dist-packages/OpenSSL/__init__.py", line 8, in <module>
from OpenSSL import rand, crypto, SSL
File "/usr/lib/python2.7/dist-packages/OpenSSL/rand.py", line 11, in <module>
from OpenSSL._util import (
File "/usr/lib/python2.7/dist-packages/OpenSSL/_util.py", line 7, in <module>
binding = Binding()
File "/usr/lib/python2.7/dist-packages/cryptography/hazmat/bindings/openssl/binding.py", line 63, in __init__
self._ensure_ffi_initialized()
File "/usr/lib/python2.7/dist-packages/cryptography/hazmat/bindings/openssl/binding.py", line 95, in _ensure_ffi_initialized
cls._register_osrandom_engine()
File "/usr/lib/python2.7/dist-packages/cryptography/hazmat/bindings/openssl/binding.py", line 70, in _register_osrandom_engine
raise RuntimeError("osrandom engine already registered")
RuntimeError: osrandom engine already registered
-->End of Python script error report<--
Hi,
Would it be possible to add "videos" as a content type similar to "movies" when getting content types?
If you would be willing, I guess this means adding it to:
script.skin.helper.service/resources/lib/utils.py
get_current_content_type()
and changing this line:
elif xbmc.getCondVisibility("Container.Content(movies) + !substring(Container.FolderPath,setid=)"):
content_type = "movies"
to something like:
elif xbmc.getCondVisibility("[Container.Content(movies) | Container.Content(videos)] + !substring(Container.FolderPath,setid=)"):
content_type = "movies"
My problem is that the Kodi Youtube add-in has Container.Content=videos, and therefore the list of available views is 3 (panel list, thumbs, list) instead of the 15 or so offered by my skin. I use skin Eminence 2 MOD for Krypton, but I guess this change would benefit any skin.
As a test, I put the value of Container.Content in a label in the top left corner:
grab correct discart for multidisc albums
http://forum.kodi.tv/showthread.php?tid=235676&pid=2395195#pid2395195
just got pushed and update of the script that hung (or crashed) kodi
these are the messages in log file up until app hung:
04:52:18 T:7192 NOTICE: Thread BackgroundLoader start, auto delete: false
04:53:37 T:4056 ERROR: CPythonInvoker(3, C:\Users\Mario\AppData\Roaming\Kodi\addons\script.skin.helper.service\service.py): script didn't stop in 5 seconds - let's kill it
04:53:51 T:9988 NOTICE: Thread LanguageInvoker start, auto delete: false
04:53:52 T:2264 NOTICE: Thread BackgroundLoader start, auto delete: false
04:53:53 T:7476 ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
- NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
Error Type: <type 'exceptions.SystemExit'>
Error Contents:
Traceback (most recent call last):
File "C:\Users\Mario\AppData\Roaming\Kodi\addons\script.skin.helper.service\resources\lib\KodiMonitor.py", line 48, in onNotification
logMsg("Kodi_Monitor: sender %s - method: %s - data: %s"%(sender,method,data))
SystemExit
-->End of Python script error report<--
04:53:53 T:7124 NOTICE: -->Python Interpreter Initialized<--
04:53:57 T:952 ERROR: C:\Users\Mario\AppData\Roaming\Kodi\addons\script.module.requests\lib\requests\packages\urllib3\util\ssl_.py:100: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
04:53:57 T:7476 NOTICE: SKIN HELPER SERVICE --> shutdown requested !
04:53:57 T:7476 NOTICE: Skin Helper Service --> BackgroundsUpdater - stop called
04:53:57 T:9556 NOTICE: -->Python Interpreter Initialized<--
04:53:57 T:7476 NOTICE: Previous line repeats 3 times.
04:53:57 T:7476 NOTICE: Skin Helper Service --> HomeMonitor - stop called
04:54:02 T:9988 NOTICE: skin helper service version 0.0.41 started
04:54:02 T:8356 NOTICE: ----------------------------------------
04:54:02 T:8356 NOTICE: Exception happened during processing of request from
04:54:02 T:8356 NOTICE: ('127.0.0.1', 55139)
04:54:02 T:8356 ERROR: Traceback (most recent call last):
04:54:02 T:8356 ERROR: File "C:\Program Files (x86)\Kodi\system\python\Lib\SocketServer.py", line 295, in _handle_request_noblock
04:54:02 T:8356 ERROR: self.process_request(request, client_address)
04:54:02 T:8356 ERROR: File "C:\Program Files (x86)\Kodi\system\python\Lib\SocketServer.py", line 321, in process_request
04:54:02 T:8356 ERROR: self.finish_request(request, client_address)
04:54:02 T:8356 ERROR: File "C:\Program Files (x86)\Kodi\system\python\Lib\SocketServer.py", line 334, in finish_request
04:54:02 T:8356 ERROR: self.RequestHandlerClass(request, client_address, self)
04:54:02 T:8356 ERROR: File "C:\Users\Mario\AppData\Roaming\Kodi\addons\script.skin.helper.service\resources\lib\WebService.py", line 63, in init
04:54:02 T:8356 ERROR: File "C:\Program Files (x86)\Kodi\system\python\Lib\SocketServer.py", line 648, in init
04:54:02 T:8356 ERROR: self.server = server
04:54:02 T:8356 ERROR: SystemExit
04:54:02 T:8356 NOTICE: ----------------------------------------
04:54:02 T:7476 ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
- NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
Error Type: <class 'httplib.BadStatusLine'>
Error Contents: ''
Traceback (most recent call last):
File "C:\Users\Mario\AppData\Roaming\Kodi\addons\script.skin.helper.service\service.py", line 46, in
Main()
File "C:\Users\Mario\AppData\Roaming\Kodi\addons\script.skin.helper.service\service.py", line 43, in init
webService.stop()
File "C:\Users\Mario\AppData\Roaming\Kodi\addons\script.skin.helper.service\resources\lib\WebService.py", line 29, in stop
logMsg("WebService - stop called")
File "C:\Program Files (x86)\Kodi\system\python\Lib\httplib.py", line 1067, in getresponse
response.begin()
File "C:\Program Files (x86)\Kodi\system\python\Lib\httplib.py", line 409, in begin
version, status, reason = self._read_status()
File "C:\Program Files (x86)\Kodi\system\python\Lib\httplib.py", line 373, in _read_status
raise BadStatusLine(line)
BadStatusLine: ''
-->End of Python script error report<--
04:54:05 T:6028 NOTICE: script.tv.show.next.aired: ### TV Show - Next Aired starting GUI proc (6.0.14)
04:54:06 T:11068 NOTICE: Previous line repeats 1 times.
04:54:06 T:11068 NOTICE: Skin Helper Service --> ERROR in BackgroundsUpdater ! --> cannot identify image file
04:54:06 T:11068 ERROR: Traceback (most recent call last):
04:54:06 T:11068 ERROR: File "C:\Users\Mario\AppData\Roaming\Kodi\addons\script.skin.helper.service\resources\lib\BackgroundsUpdater.py", line 61, in run
04:54:06 T:11068 ERROR: self.UpdateBackgrounds()
04:54:06 T:11068 ERROR: File "C:\Users\Mario\AppData\Roaming\Kodi\addons\script.skin.helper.service\resources\lib\BackgroundsUpdater.py", line 429, in UpdateBackgrounds
04:54:06 T:11068 ERROR: self.setWallImageFromPath("SkinHelper.AllMusicSongsBackground.Wall","musicdb://songs/",True)
04:54:06 T:11068 ERROR: File "C:\Users\Mario\AppData\Roaming\Kodi\addons\script.skin.helper.service\resources\lib\BackgroundsUpdater.py", line 167, in setWallImageFromPath
04:54:06 T:11068 ERROR: images = createImageWall(self.allBackgrounds[libPath],windowProp,blackWhite,square)
04:54:06 T:11068 ERROR: File "C:\Users\Mario\AppData\Roaming\Kodi\addons\script.skin.helper.service\resources\lib\ImageWall.py", line 56, in createImageWall
04:54:06 T:11068 ERROR: img = Image.open(img_obj)
04:54:06 T:11068 ERROR: File "C:\Program Files (x86)\Kodi\addons\script.module.pil\lib\PIL\Image.py", line 1980, in open
04:54:06 T:11068 ERROR: raise IOError("cannot identify image file")
04:54:06 T:11068 ERROR: IOError: cannot identify image file
04:54:06 T:11068 ERROR: XFILE::CDirectory::GetDirectory - Error getting
04:54:16 T:8204 NOTICE: Thread LanguageInvoker start, auto delete: false
04:54:16 T:8204 NOTICE: -->Python Interpreter Initialized<--
04:54:18 T:8608 NOTICE: Thread LanguageInvoker start, auto delete: false
04:54:18 T:8608 NOTICE: -->Python Interpreter Initialized<--
Loading the default widgets on my system is currently taking around 7 minutes first time (obviously much better on subsequent launches when the data is cached.)
The delay is coming from the detectPluginContent
function and skin helper's own widgets. For me, it's also only affecting the music widgets.
From what I can see, though detectPluginContent
is only requesting one item from the plugin in the JSON request, that isn't passed on Skin Helpers widget builder, which is building - judging from the logs - 100 items:
NOTICE: Skin Helper Service --> getPluginListing-RECOMMENDEDSONGS-100-None--False -- no cache, quering json api to get items
The slowness is caused because, as part of building those 100 items, Skin Helper is going off to find artwork for each of them via the getMusicArtwork
function. With a hundred items, this takes a lot of time.
I'm not sure what the best way is to tackle this. The most obvious, to me, would be to adjust the plugin path within the detectPluginContent
to change any limit= to 1, though that's not the easiest thing to do and I don't know how that might adversely affect the plugins own cache. There could well be better ways though!
I'm happy to make any changes and PR if that's helpful and you can give me some direction on how this problem would best be tackled.
just a suggestion but a scheduled skin and skin shortcuts backup feature would be nice to add when you have time and if you think it would be a worthy feature...
option to pick a day (mon, tue, wed, etc)
option to pick a time: at startup, or specify hour and minute
repeat schedule: never, daily, weekly, monthly
bool option to backup at next run if schedule is missed
backup path (with default being userdata/addon_data/skin-name/backup/)
keep X number of backups
bool option for GUI notification of backup success / failure
thanks for the consideration!
Take care Marcel,
Mario
@marcelveldt I tested this 110da78 and everything working fine except that the ListItem.Art(poster)
is empty. But my main issue is that the list returns only shows that airing the current day/date. My goal for this was to show a list with all the shows (that are in the library), when they airing. That way you can see which day and date a show is airing.
Is that possible ?.
Thanks
Nessus
I have enabled "save PVR artwork" to disk, but I get many folders in my userdata, which only contains a pvrdetails.xml file and no thumb, fanart etc.
Can you please add an option to "only save PVR artwork if a picture is found while scraping online"? Then you get only folders with thumbs etc. and pvrdetails.xml
Folders with only a pvrdetails.xml AND without any pictures are not useful.
I have movies that are added with JustTheFilename scanner, that don't have an IMDB ID. For these movies information is trying to be retrieved from OMDBAPI, which of course fails.
(Here is some additional logging I added)
10:56:49.585 T:19348 NOTICE: Skin Helper Service --> Retrieving OMDBAPI info for ImdbId--> 20160216-2016-00241 - contentType: movies - url: http://www.omdbapi.com/?t=20160216-2016-00241&y=2016&type=movie&plot=short&tomatoes=true&r=json
10:56:56.589 T:25892 NOTICE: Skin Helper Service --> Retrieving OMDBAPI info for ImdbId--> 20141109-1911-00138 - contentType: movies - url: http://www.omdbapi.com/?t=20141109-1911-00138&y=2014&type=movie&plot=short&tomatoes=true&r=json
...
Then the following happens on line 1014 in ListItemMonitor.
Code:
omdbresult = json.loads(res.content.decode('utf-8','replace'))
10:57:14.338 T:19348 NOTICE: Skin Helper Service --> Retrieving OMDBAPI info for ImdbId--> 20160216-2016-00241 - res: <Response [200]>
10:57:20.913 T:25892 NOTICE: Skin Helper Service --> Retrieving OMDBAPI info for ImdbId--> 20141109-1911-00138 - res: <Response [503]>
They are http-response 200 and 503 respectively in these cases, because these IDs are bogus for the OMDBAPI.
Pasting the URL in the browser results in:
The service is unavailable.
And then you standard logging, which is what happens constantly for these movies:
10:57:20.913 T:25892 ERROR: Unhandled exception in thread started by
10:57:20.913 T:25892 ERROR: <bound method ListItemMonitor.setOmdbInfo of <ListItemMonitor(Thread-1, started 13068)>>
10:57:20.913 T:25892 ERROR: Traceback (most recent call last):
10:57:20.913 T:25892 ERROR: File "C:\Users\hablaras\AppData\Roaming\Kodi\addons\script.skin.helper.service\resources\lib\ListItemMonitor.py", line 1016, in setOmdbInfo
10:57:20.915 T:25892 ERROR: omdbresult = json.loads(res.content.decode('utf-8','replace'))
10:57:20.915 T:25892 ERROR: File "C:\Users\hablaras\AppData\Roaming\Kodi\addons\script.module.simplejson\lib\simplejson_init_.py", line 488, in loads
10:57:20.916 T:25892 ERROR: return _default_decoder.decode(s)
10:57:20.916 T:25892 ERROR: File "C:\Users\hablaras\AppData\Roaming\Kodi\addons\script.module.simplejson\lib\simplejson\decoder.py", line 370, in decode
10:57:20.916 T:25892 ERROR: obj, end = self.raw_decode(s)
10:57:20.916 T:25892 ERROR: File "C:\Users\hablaras\AppData\Roaming\Kodi\addons\script.module.simplejson\lib\simplejson\decoder.py", line 389, in raw_decode
10:57:20.917 T:25892 ERROR: return self.scan_once(s, idx=_w(s, idx).end())
10:57:20.917 T:25892 ERROR: File "C:\Users\hablaras\AppData\Roaming\Kodi\addons\script.module.simplejson\lib\simplejson\scanner.py", line 119, in scan_once
10:57:20.917 T:25892 ERROR: return _scan_once(string, idx)
10:57:20.917 T:25892 ERROR: File "C:\Users\hablaras\AppData\Roaming\Kodi\addons\script.module.simplejson\lib\simplejson\scanner.py", line 115, in _scan_once
10:57:20.917 T:25892 ERROR: raise JSONDecodeError(errmsg, string, idx)
10:57:20.917 T:25892 ERROR: simplejson.scanner
10:57:20.917 T:25892 ERROR: .
10:57:20.917 T:25892 ERROR: JSONDecodeError
10:57:20.917 T:25892 ERROR: :
10:57:20.917 T:25892 ERROR: Expecting value: line 1 column 1 (char 0)
Would it be possible to to add a check on line 1013 just after this code to see if there is a valid HTTP response at all?
res = requests.get(url)
This would prevent all the ugly parsing errors.
You requested to have something in the script to be able to quickly jump to a sortletter within a view.
This has just been added to the script.
Please grab the latest version from Git and test ;-)
README:
https://github.com/marcelveldt/script.skin.helper.service#jump-to-alphabet-list-for-media-views
Hi, with the new version of skin helper service, the EPG info displayed in the PVR channel widget doesnt refresh properly. It use the EPG info of the first time you set up the widget, after that the widget never refresh it.
suggestion that when enabled/used that artwork be used if found locally in the library before online lookup is used.
this will allow continuity for show and movie artwork for instance if I prefer a banner, clearlogo, etc other then the first default found online it will be used first.
if this doesnt make sense let me know and I can explain better.
thanks a million as always Marcel!
Mario
Marcel something wrong with new changes for latest changes for artist background
21:00:51 T:2884 ERROR: Skin Helper Service --> ERROR in BackgroundsUpdater ! --> 'list' object has no attribute 'replace'
21:00:51 T:2884 ERROR: Traceback (most recent call last):
21:00:51 T:2884 ERROR: File "C:\Users\Lenovo\AppData\Roaming\Kodi\addons\script.skin.helper.service\resources\lib\BackgroundsUpdater.py", line 54, in run
21:00:51 T:2884 ERROR: self.UpdateBackgrounds()
21:00:51 T:2884 ERROR: File "C:\Users\Lenovo\AppData\Roaming\Kodi\addons\script.skin.helper.service\resources\lib\BackgroundsUpdater.py", line 516, in UpdateBackgrounds
21:00:51 T:2884 ERROR: self.setImageFromPath("SkinHelper.AllMusicSongsBackground","musicdb://songs/")
21:00:51 T:2884 ERROR: File "C:\Users\Lenovo\AppData\Roaming\Kodi\addons\script.skin.helper.service\resources\lib\BackgroundsUpdater.py", line 297, in setImageFromPath
21:00:51 T:2884 ERROR: image = artutils.getMusicArtwork(media.get('artist',''),media.get('album',''))
21:00:51 T:2884 ERROR: File "C:\Users\Lenovo\AppData\Roaming\Kodi\addons\script.skin.helper.service\resources\lib\ArtworkUtils.py", line 966, in getMusicArtwork
21:00:51 T:2884 ERROR: if not ignoreCache: albumartwork = getArtworkFromCacheFile("special://profile/addon_data/script.skin.helper.service/musicart/%s-%s.xml" %(normalize_string(artistName),normalize_string(albumName)))
21:00:51 T:2884 ERROR: File "C:\Users\Lenovo\AppData\Roaming\Kodi\addons\script.skin.helper.service\resources\lib\Utils.py", line 697, in normalize_string
21:00:51 T:2884 ERROR: text = text.replace(":", "")
21:00:51 T:2884 ERROR: AttributeError: 'list' object has no attribute 'replace'
Hi Marcel -
Great work - love all the new features coming out.
just noticed a couple issues in the latest helper .8 and skin 3.5.7
forced views have gone haywire in the latest script and skin update.
sometimes they are correct other times they inherit the previous windows settings or are just wrong. A couple times I have seen the view correct itself after a 5-10 second delay.
also seems like an error is being throw quite often when viewing streams via 3rd party video add ons like Genesis in this instance...
23:12:27 T:13264 ERROR: Traceback (most recent call last):
23:12:27 T:13264 ERROR: File "C:\Users\Mario\AppData\Roaming\Kodi\addons\script.skin.helper.service\resources\lib\LibraryMonitor.py", line 179, in run
23:12:27 T:13264 ERROR: self.setStreamDetails()
23:12:27 T:13264 ERROR: File "C:\Users\Mario\AppData\Roaming\Kodi\addons\script.skin.helper.service\resources\lib\LibraryMonitor.py", line 845, in setStreamDetails
23:12:27 T:13264 ERROR: if json_result: streamdetails = json_result["streamdetails"]
23:12:27 T:13264 ERROR: UnboundLocalError: local variable 'json_result' referenced before assignment
23:12:27 T:13264 NOTICE: Skin Helper Service --> ERROR in LibraryMonitor ! --> local variable 'json_result' referenced before assignment
23:12:27 T:13264 ERROR: Traceback (most recent call last):
23:12:27 T:13264 ERROR: File "C:\Users\Mario\AppData\Roaming\Kodi\addons\script.skin.helper.service\resources\lib\LibraryMonitor.py", line 179, in run
23:12:27 T:13264 ERROR: self.setStreamDetails()
23:12:27 T:13264 ERROR: File "C:\Users\Mario\AppData\Roaming\Kodi\addons\script.skin.helper.service\resources\lib\LibraryMonitor.py", line 845, in setStreamDetails
23:12:27 T:13264 ERROR: if json_result: streamdetails = json_result["streamdetails"]
23:12:27 T:13264 ERROR: UnboundLocalError: local variable 'json_result' referenced before assignment
23:12:27 T:9408 NOTICE: Thread FileCache start, auto delete: false
23:12:28 T:13264 NOTICE: Previous line repeats 4 times.
23:12:28 T:13264 NOTICE: Skin Helper Service --> ERROR in LibraryMonitor ! --> local variable 'json_result' referenced before assignment
23:12:28 T:13264 ERROR: Traceback (most recent call last):
23:12:28 T:13264 ERROR: File "C:\Users\Mario\AppData\Roaming\Kodi\addons\script.skin.helper.service\resources\lib\LibraryMonitor.py", line 179, in run
23:12:28 T:13264 ERROR: self.setStreamDetails()
23:12:28 T:13264 ERROR: File "C:\Users\Mario\AppData\Roaming\Kodi\addons\script.skin.helper.service\resources\lib\LibraryMonitor.py", line 845, in setStreamDetails
23:12:28 T:13264 ERROR: if json_result: streamdetails = json_result["streamdetails"]
23:12:28 T:13264 ERROR: UnboundLocalError: local variable 'json_result' referenced before assignment
23:12:29 T:2028 NOTICE: Thread FileCache start, auto delete: false
23:12:30 T:13264 NOTICE: Previous line repeats 3 times.
23:12:30 T:13264 NOTICE: Skin Helper Service --> ERROR in LibraryMonitor ! --> local variable 'json_result' referenced before assignment
23:12:30 T:13264 ERROR: Traceback (most recent call last):
23:12:30 T:13264 ERROR: File "C:\Users\Mario\AppData\Roaming\Kodi\addons\script.skin.helper.service\resources\lib\LibraryMonitor.py", line 179, in run
23:12:30 T:13264 ERROR: self.setStreamDetails()
23:12:30 T:13264 ERROR: File "C:\Users\Mario\AppData\Roaming\Kodi\addons\script.skin.helper.service\resources\lib\LibraryMonitor.py", line 845, in setStreamDetails
23:12:30 T:13264 ERROR: if json_result: streamdetails = json_result["streamdetails"]
23:12:30 T:13264 ERROR: UnboundLocalError: local variable 'json_result' referenced before assignment
23:12:30 T:4816 NOTICE: Thread FileCache start, auto delete: false
23:12:30 T:13264 NOTICE: Skin Helper Service --> ERROR in LibraryMonitor ! --> local variable 'json_result' referenced before assignment
23:12:30 T:13264 ERROR: Traceback (most recent call last):
23:12:30 T:13264 ERROR: File "C:\Users\Mario\AppData\Roaming\Kodi\addons\script.skin.helper.service\resources\lib\LibraryMonitor.py", line 179, in run
23:12:30 T:13264 ERROR: self.setStreamDetails()
23:12:30 T:13264 ERROR: File "C:\Users\Mario\AppData\Roaming\Kodi\addons\script.skin.helper.service\resources\lib\LibraryMonitor.py", line 845, in setStreamDetails
23:12:30 T:13264 ERROR: if json_result: streamdetails = json_result["streamdetails"]
23:12:30 T:13264 ERROR: UnboundLocalError: local variable 'json_result' referenced before assignment
23:12:31 T:13264 NOTICE: Skin Helper Service --> ERROR in LibraryMonitor ! --> local variable 'json_result' referenced before assignment
23:12:31 T:13264 ERROR: Traceback (most recent call last):
23:12:31 T:13264 ERROR: File "C:\Users\Mario\AppData\Roaming\Kodi\addons\script.skin.helper.service\resources\lib\LibraryMonitor.py", line 179, in run
23:12:31 T:13264 ERROR: self.setStreamDetails()
23:12:31 T:13264 ERROR: File "C:\Users\Mario\AppData\Roaming\Kodi\addons\script.skin.helper.service\resources\lib\LibraryMonitor.py", line 845, in setStreamDetails
23:12:31 T:13264 ERROR: if json_result: streamdetails = json_result["streamdetails"]
23:12:31 T:13264 ERROR: UnboundLocalError: local variable 'json_result' referenced before assignment
Hello,
i'm not sure if i'm at the correct plugin, but i get this error ๐
i hope you can help.
21:37:45.753 T:1662387088 ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
- NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
Error Type: <type 'exceptions.ImportError'>
Error Contents: cannot import name TheTvDb
Traceback (most recent call last):
File "/home/kodi/.kodi/addons/script.skin.helper.service/plugin.py", line 10, in <module>
from resources.lib.plugin_content import PluginContent
File "/home/kodi/.kodi/addons/script.skin.helper.service/resources/lib/plugin_content.py", line 17, in <module>
from artutils import KodiDb, Tmdb, get_clean_image, process_method_on_list
File "/home/kodi/.kodi/addons/script.module.skin.helper.artutils/lib/artutils.py", line 28, in <module>
from thetvdb import TheTvDb
ImportError: cannot import name TheTvDb
-->End of Python script error report<--
21:37:45.999 T:1333785488 ERROR: GetDirectory - Error getting plugin://script.skin.helper.service/?action=nextepisodes&limit=25&reload=
Greets,
Marcel
ERROR: GetDirectory - Error getting /Users/user/Library/Application Support/Kodi/userdata/library/video
ERROR: GetDirectory - Error getting /Users/user/Library/Application Support/Kodi/userdata/library/music
ERROR: Error parsing boolean expression + [!stringcompare(Skin.String(home.widgetposters)
What could be the problem?
http://forum.kodi.tv/showthread.php?tid=246087&pid=2156629#pid2156629
http://forum.kodi.tv/showthread.php?tid=246087&pid=2156699#pid2156699
I'm using Kodi Skin Eminence 2 MOD. and it has a feature where I can save or restore the skin settings.
I requested from the developer to have a setting to create a default folder. but he said it's the limitation of skin helper services. will it be possible to add this feature in skin helper so that the developer can add a default browse path option.
Thanks
Sometimes when I finish an episode, Kodi crashes and throws the following log :
20:42:05 T:584 NOTICE: CDVDMessageQueue::GetLevel() - can't determine level
20:42:06 T:12228 NOTICE: Previous line repeats 8 times.
20:42:06 T:12228 WARNING: CRenderManager::WaitForBuffer - timeout waiting for buffer
20:42:13 T:10644 WARNING: Previous line repeats 2 times.
20:42:13 T:10644 NOTICE: CDVDMessageQueue::GetLevel() - can't determine level
20:42:13 T:10644 NOTICE: CVideoPlayerAudio::Process - stream stalled
20:42:13 T:584 NOTICE: CVideoPlayer::OnExit()
20:42:13 T:584 NOTICE: VideoPlayer: eof, waiting for queues to empty
20:42:13 T:584 NOTICE: Closing stream player 1
20:42:13 T:584 NOTICE: CDVDMessageQueue(audio)::WaitUntilEmpty
20:42:13 T:584 NOTICE: Waiting for audio thread to exit
20:42:13 T:10644 ERROR: Got MSGQ_ABORT or MSGO_IS_ERROR return true
20:42:13 T:10644 NOTICE: thread end: CVideoPlayerAudio::OnExit()
20:42:13 T:584 NOTICE: Closing audio device
20:42:13 T:584 NOTICE: Deleting audio codec
20:42:13 T:584 NOTICE: Closing stream player 2
20:42:13 T:584 NOTICE: CDVDMessageQueue(video)::WaitUntilEmpty
20:42:13 T:584 NOTICE: waiting for video thread to exit
20:42:13 T:12228 ERROR: Got MSGQ_ABORT or MSGO_IS_ERROR return true
20:42:13 T:12228 NOTICE: thread end: video_thread
20:42:13 T:584 NOTICE: deleting video codec
20:42:13 T:584 NOTICE: Closing stream player 3
20:42:13 T:3052 NOTICE: CVideoPlayer::CloseFile()
20:42:13 T:3052 NOTICE: VideoPlayer: waiting for threads to exit
20:42:13 T:3052 NOTICE: VideoPlayer: finished waiting
20:42:13 T:3052 NOTICE: CVideoPlayer::CloseFile()
20:42:13 T:3052 NOTICE: VideoPlayer: waiting for threads to exit
20:42:13 T:3052 NOTICE: VideoPlayer: finished waiting
20:42:13 T:4988 WARNING: CWin32DirectSound::GetSpace - buffer underrun - W:7320, P:272, O:5288.
20:42:16 T:5812 ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
- NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
Error Type: <type 'exceptions.KeyError'>
Error Contents: ('item',)
Traceback (most recent call last):
File "C:\Users\Jonas\AppData\Roaming\Kodi\addons\script.skin.helper.service\resources\lib\KodiMonitor.py", line 29, in onNotification
utils.resetVideoWidgetWindowProps(data)
File "C:\Users\Jonas\AppData\Roaming\Kodi\addons\script.skin.helper.service\resources\lib\Utils.py", line 838, in resetVideoWidgetWindowProps
type = data["item"]["type"]
KeyError: ('item',)
-->End of Python script error report<--
20:42:16 T:8292 NOTICE: [plugin.video.youtube] Running: YouTube (5.1.17) on Jarvis (17.0) with Python 2.7.10
20:42:17 T:11664 NOTICE: script.tv.show.next.aired: ### TV Show - Next Aired starting GUI proc (6.0.15)
20:42:17 T:14508 WARNING: CSkinInfo: failed to load skin settings
When a video is marked as watched after playback, I have the Trakt.TV addon fire up and ask for a rating. When a video is watched up to the last second, I have an addon fire up to show me the trailer for the next episode on youtube. I don't know if they're conflicting or if the issue is in your script but I'll drop that here anyway.
Tell me if you need any more info and I'll try to reproduce the bug with better debug logging enabled.
Add lockup for artwork for PVR from EPG instead of just the recordings.
Had suggested this to Phil65 for extended info back in October but never heard back from him so asking if you may be interested in adding this as a feature to skin helper:
support for TuneFind
They have an API that should allow this feature easier then scraping a site
Feel free to veto/ignore - figured it never hurts to ask/suggest ๐ either way I will still love and enjoy your script and skin!
thanks for all the great work!
Mario
Should be added to Kodi main code, if not possible add window property by the script.
http://forum.kodi.tv/showthread.php?tid=235676&pid=2405272#pid2405272
11:53:04 T:140314129835776 ERROR: Skin Helper Service --> ERROR in UpdateBackgrounds ! --> 'albumartistid'
11:53:04 T:140314129835776 ERROR: Traceback (most recent call last):
11:53:04 T:140314129835776 ERROR: File "/home/user/.kodi/addons/script.skin.helper.service/resources/lib/BackgroundsUpdater.py", line 90, in run
11:53:04 T:140314129835776 ERROR: self.UpdateBackgrounds()
11:53:04 T:140314129835776 ERROR: File "/home/user/.kodi/addons/script.skin.helper.service/resources/lib/BackgroundsUpdater.py", line 455, in UpdateBackgrounds
11:53:04 T:140314129835776 ERROR: self.setImageFromPath("SkinHelper.AllMusicSongsBackground","SkinHelper.AllMusicSongsBackground","",['AudioLibrary.GetSongs','{ "properties": ["title","fanart","artist","album","thumbnail"], "limits": {"end":250}, "sort": { "order": "ascending", "method": "random" } }'])
11:53:04 T:140314129835776 ERROR: File "/home/user/.kodi/addons/script.skin.helper.service/resources/lib/BackgroundsUpdater.py", line 262, in setImageFromPath
11:53:04 T:140314129835776 ERROR: media['art'] = artutils.getMusicArtwork(media['artist'][0], albumName=media['album'], trackName=media['label'])
11:53:04 T:140314129835776 ERROR: File "/home/user/.kodi/addons/script.skin.helper.service/resources/lib/ArtworkUtils.py", line 1380, in getMusicArtwork
11:53:04 T:140314129835776 ERROR: if json_response["artistid"] in song["albumartistid"] and not path2 and song.get("file"):
11:53:04 T:140314129835776 ERROR: KeyError: 'albumartistid'
Wanted to get some feedback on this before I start coding it up and realise I'm making a huge mistake ๐, but I can't see the purpose of caching the pvr images the script retrieves locally and it is causing some minor issues...
The obvious solution to me would be to save the remote filename that Skin Helper finds into the pvrdetails.xml file, and to provide that remote URI to Kodi when the skin requests the relevant image. That way, only Kodi's cache version of the image is downloaded, Kodi should take care of all downloading of the image, and if Skin Helpers cache is cleared and a newer image found that will be used by Kodi.
That's unless I'm missing something in the way the cache is designed to work, though ;) Any feedback or insight is welcome before I put the time into coding this!
FYI - this one is odd...
but I noticed tonight (so could be issue with latest commit(s) or not) that if I press I for Info (using krypton nightly with keyboard controls) the control focus is lost and moving around will keep loosing control focus (like a tug of war) until the properties are populated for the dialog by the script(s). was using latest titan skin beta for K*.
running latest from GIT - have been noticing the following errors on startup
Kodi 15.2 rc3 on Win 10 x64
no urgency - just throws a couple exceptions and alert notifications on startup.
thanks for all the hard work Marcel!
as always - let me know if I can provide any additional info, etc
M
When I don't have the internet on I get errors.
Google fetch and pvr image grabs it looks like.
Something appears to have changed.
The ServerWMC PVR plugin has the option to "group items" so rather than seeing 12 individual episodes of "Castle" in your recorded TV list, you would see a single listing for "Castle (12)". Clicking it would display a listing of all the individual episodes.
In previous releases I figured out a way to use this plugin to automatically search for artwork and populate the artwork for these shows (So I'd get poster art etc when "Castle (12)" was highlighted.) Essentially I configured the "stripwords" item in the settings file with (1);(2);(3);... and so on. I went to (99) so as long as I didn't have a show with over 99 recordings, show art would populate.
Then a couple of shows I gathered fan-art manually, these were just shows that are local, or didn't have sporting event categories that don't have any show data available online (Local morning news, College Wrestling, and a special folder "Recording Now" which is a where shows live while actively being recorded). All of those folders have custom art, and would show up nicely.
It appears the "stripwords" doesn't have the same impact now though, so the way I'm using it doesn't function and I'm back to generic folder icons for any groupings (the virtual folders with the (#) )
Kodi.log logs as I highlight a show (virtual folder).
22:25:45 T:140287156360960 NOTICE: Skin Helper Service --> setPVRThumb dbID--> Childrens Hospital (2) - path: pvr://recordings/active/Childrens Hospital (2)/
This is the part I'm not familiar with yet. The special path pvr:// it obviously isn't stripping the (2), but not sure if that is the cause. Again "Childrens Hospital (2)" is actually a virtual folder - serverWMC is grouping all of the Childrens Hospital episodes in this folder.
22:25:45 T:140287156360960 NOTICE: Skin Helper Service --> getPVRThumb for Childrens Hospital --> 22:25:45 T:140287156360960 NOTICE: Skin Helper Service --> getPVRThumb no cache found for dbID--> childrenshospital 22:25:45 T:140287156360960 NOTICE: Skin Helper Service --> pvr thumbs path --> special://profile/addon_data/script.skin.helper.service/pvrthumbs/Childrens Hospital/
The line above leads me to believe at least a portion works as it did. It knows to look in the folder "Children Hospital" and not "Childrens Hospital 2", but it appears to be looking for dbID "childrenshospital", but it set setPVRThumb dbID--> Childrens Hospital (2)
in the prior log entry. I'm curious if the stripwords setting's impact comes too late if the dbID mechanism is the new part of this process. It appears it may set the dbID based on the show title (without honoring stripwords) then it looks at stripwords and does the lookup (but I'm taking stabs at something I don't know all the mechanics of, hence the post)
22:25:45 T:140287156360960 NOTICE: Skin Helper Service --> thumbspath found on disk for Childrens Hospital 22:25:45 T:140287156360960 NOTICE: Skin Helper Service --> thumb found on disk for Childrens Hospital 22:25:45 T:140287156360960 NOTICE: Skin Helper Service --> poster found on disk for Childrens Hospital 22:25:45 T:140287156360960 NOTICE: Skin Helper Service --> fanart found on disk for Childrens Hospital 22:25:45 T:140287156360960 NOTICE: Skin Helper Service --> landscape found on disk for Childrens Hospital 22:25:45 T:140287156360960 NOTICE: Skin Helper Service --> clearlogo found on disk for Childrens Hospital 22:25:45 T:140287156360960 NOTICE: Skin Helper Service --> clearart found on disk for Childrens Hospital 22:25:45 T:140287156360960 NOTICE: Skin Helper Service --> extrafanart found on disk for Childrens Hospital
And it finds all of the artwork in those folders, but artwork is no longer displayed as it was in prior releases.
22:25:45 T:140287156360960 NOTICE: Skin Helper Service --> getJson - invalid result for Method VideoLibrary.GetTvShows - params: { "filter": {"operator":"is", "field":"title", "value":"Childrens Hospital "}, "properties": [ "dateadded", "file", "lastplayed","plot", "title", "art", "playcount","sorttitle", "mpaa", "premiered", "year", "episode", "watchedepisodes", "votes", "rating", "studio", "season", "genre", "cast", "episodeguide", "tag", "originaltitle", "imdbnumber" ] } - response: {u'limits': {u'start': 0, u'total': 0, u'end': 0}} 22:25:45 T:140287156360960 NOTICE: Skin Helper Service --> getJson - invalid result for Method VideoLibrary.GetMovies - params: { "filter": {"operator":"is", "field":"title", "value":"Childrens Hospital "}, "properties": [ "dateadded", "file", "lastplayed","plot", "title", "art", "playcount","streamdetails", "director", "resume", "runtime","plotoutline", "sorttitle", "cast", "votes", "showlink", "top250", "trailer", "year", "country", "studio", "set", "genre", "mpaa", "setid", "rating", "tag", "tagline", "writer", "originaltitle", "imdbnumber" ] } - response: {u'limits': {u'start': 0, u'total': 0, u'end': 0}} 22:25:45 T:140287156360960 NOTICE: Skin Helper Service --> getTMDBimage - TMDB match found for Childrens Hospital ! 22:25:46 T:140287156360960 NOTICE: Skin Helper Service --> get fanart.tv images for type: tv - id: 139941
I have to step through a few to get all the logs from above many of them just show a single log entry:
22:41:42 T:140287262160640 NOTICE: Skin Helper Service --> setPVRThumb dbID--> Bones (33) - path: pvr://recordings/active/Bones (33)/ 22:41:48 T:140287288747776 NOTICE: Skin Helper Service --> setPVRThumb dbID--> South Park (6) - path: pvr://recordings/active/South Park (6)/ 22:41:51 T:140287288747776 NOTICE: Skin Helper Service --> setPVRThumb dbID--> Marvel's Agents of S.H.I.E.L.D. (11) - path: pvr://recordings/active/Marvel's Agents of S.H.I.E.L.D. (11)/ 22:41:55 T:140287288747776 NOTICE: Skin Helper Service --> setPVRThumb dbID--> Drunk History (6) - path: pvr://recordings/active/Drunk History (6)/
I'm curious if there is a disconnect between the entries referenced above with the pvr:// path that keep the parens (# of episodes within the virt folder). and the references to the special:// path to the pvrthumbs folder where the stripwords is honored and the parens are stripped.
So not necessarily a bug. The plugin was obviously designed for a lot more than this very specific use-case, but curious if someone can identify and state "yes we changed the way we did X so now that wouldn't work the same way" and ideally what would if anything I can tweak to make it work again.
Plugin release is whatever is current in the current openelec stable, and same behavior on Kodi 16 on the OpenElec beta
I am using the following to show what's new in AddonInfo...
RunScript(script.skin.helper.service,action=textviewer,header=[yourheadertext],message=[your message body])
The problem is that this is not working if i am not using some quotes in message attribute.
This is working properly...
<onclick>RunScript(script.skin.helper.service,action=textviewer,header=$LOCALIZE[24054],message='"$INFO[ListItem.AddonNews])"'</onclick>
...and this is not. it shows only the first line...
<onclick>RunScript(script.skin.helper.service,action=textviewer,header=$LOCALIZE[24054],message=$INFO[ListItem.AddonNews])</onclick>
The thing is that those quotes ("') are visible in textviewer in the begging of the text and is not looking good.
Is there any fix on this or am i doing something in the code?
Thanks
Nessus
Can you create a option in settings for the webservice port option. Right now the port is 8888 . This will interfere if the user is already using another app outside Kodi with same port. Also, a notification in Kodi will be nice that this service is using port 8888 when user fist installed the service.
I had to dig around quite a while to find the real problem. Now i change the port to different one and the problem solved.
https://github.com/marcelveldt/script.skin.helper.service/blob/master/resources/lib/WebService.py#L14
Thanks for your great work and your consideration of the problem.
Hi I use latest krypton from git and mimic skin. If I correctly understand the widget part is managed by your addon. The problem I had is with recent git version of krypton the PVR channel widget stop working it just display nothing. The strange thing is the PVR channel with artwork widget is working perfectly.
skin settings have moved to addon_data.
both colorthemes and backup have to support that
I've been playing with Jarvis for a few days, posted this issue over on the kodi forums, but I didn't want to detract from the cadence of that conversation if this is one off problem (which it oddly seems to be). I've been able to reproduce with a couple different installs of both Jarvis Beta 5 and Helix 15.2.
This is my process:
On this boot up, skin helper service starts almost immediately (within 1 second or less) as seen by the logs:
On this boot up, skin helper service starts after a consistent 43-45 second delay (which also delays loading of other services such as Emby):
I've done no other customization on these installs, I am not actually using the Titan skin (selecting "no" when asked if I'd like to keep this skin) and I've not installed any other addons at all to try and narrow this down. My current machine is Windows 10 and these are both portable installs.
I do have another 15.2 main install that I use, but I'm leery to update that to 1.0.32 for testing in case it causes the same behavior. Can I simply copy the current script.skin.helper.service folder from the main install and keep it in my pocket in case 1.0.32 causes a similar issue there?
Thanks for any and all help.
Hi Marcel
I like to ask you if it's possible to add some new features in your script and i think is better to post them here instead of among the thousands posts in script's forum.
Since most of these are functions from Phil's scripts you might wonder why not post them in appropriate scripts.The main reason is that both those scripts (script.libraryeditor and script.toolbox) they are not in the official repo and i dont think they will be in any time soon. If @phil65 thinks i am wrong about this then i can post them in his appropriate scripts.
Thank you in advance
Nessus
Hi Marcelveldt,
It would be great if you could consider adding a function to set the rating of a song / video directly.
At the moment, we can increase / decrease ratings in single steps using built in Kodi functions. An onclick method that sets the rating of the currently playing track straight to 10 would save a lot of time, and would open the door to a simpler rating system (e.g. to just "love" the track). I hope that makes some kind of sense!
a. Add "Random TV-Shows Wall background"
b. Add "Global random Wall background"
c. Add for each "Wall" background type an option also for posters view (instead of fanarts)
d. Add a widget for "Global random media" (Kind of combination of Random Movies & Random TV-Shows)
As title, the widgetType property doesn't appear to be being set for the library data provider audio widgets - both the album widgets and the song widget. TV and movie confirmed as returning correct widgetType, sorry haven't had time to test music videos yet :)
Cheers.
by default the chosen scrapers will only return ratings for one source.
it would be nice to interface directly with the various scrappers' to get ratings.
universal scrapper seems to already have support via several support/info addons for this you just need to use python to interface with them because the scraper only supports one selection of a source.
the "dream" is to have the ability to display in the skin ratings for a movie or tv show from at least these sources:
imdb, rotten tomatoes, trakt and metacritic
maybe also tvdb, tmdb, etc as well
Thanks for your consideration of this FR,.
Mario
PS - if you do add support, I would love to add this as a feature in Titan :)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.