mediathekview / plugin.video.mediathekview

Kodi plugin that gives access to most video-platforms from German public service broadcasters using the database of MediathekView.de
https://mediathekview.de/download/#mediathekview-f%C3%BCr-kodi-fr%C3%BCher-xbmc
MIT License
55 stars 24 forks source link

TypeError or JSONDecodeError #237

Open Uatschitchun opened 1 month ago

Uatschitchun commented 1 month ago

Hi there. Getting always one of those errors and am unable to use the addon (1.1.3)

2024-08-03 19:37:57.178 T:665603   debug <CAddonSettings[0@plugin.video.mediathekview]>: trying to load setting definitions from old format...
2024-08-03 19:37:57.179 T:665603   debug <general>: [plugin.video.mediathekview-1.1.3:MediathekViewPlugin]: Database driver: External (mysql)
2024-08-03 19:37:57.179 T:665603   debug <general>: [plugin.video.mediathekview-1.1.3:MediathekViewPlugin]: migrateExtendedSearch False
2024-08-03 19:37:57.179 T:665603    info <general>: [plugin.video.mediathekview-1.1.3:MediathekViewPlugin]: Plugin invoked with parameters {'mode': ['research'], 'search': ['gipfeltreffen']}
2024-08-03 19:37:57.179 T:665603   debug <general>: [plugin.video.mediathekview-1.1.3:MediathekViewPlugin]: start View id 55
2024-08-03 19:37:57.179 T:665603   debug <general>: [plugin.video.mediathekview-1.1.3:MediathekViewPlugin]: start Skin skin.estuary
2024-08-03 19:37:57.179 T:665603   debug <general>: [plugin.video.mediathekview-1.1.3:StoreMySQL]: getQuickSearch
2024-08-03 19:37:57.179 T:665603   error <general>: [plugin.video.mediathekview-1.1.3:StoreCache]: Failed to load cache file /home/uatschitchun/.kodi/userdata/addon_data/plugin.video.mediathekview/quickSearch.cache: Expecting value: line 1 column 666 (char 665)
2024-08-03 19:37:57.180 T:665603   error <general>: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                                    - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                                   Error Type: <class 'json.decoder.JSONDecodeError'>
                                                   Error Contents: Expecting value: line 1 column 666 (char 665)
                                                   Traceback (most recent call last):
                                                     File "/home/uatschitchun/.kodi/addons/plugin.video.mediathekview/addon.py", line 26, in <module>
                                                       PLUGIN.run()
                                                     File "/home/uatschitchun/.kodi/addons/plugin.video.mediathekview/resources/lib/plugin.py", line 141, in run
                                                       ui.generate(self.database.getQuickSearch(search))
                                                     File "/home/uatschitchun/.kodi/addons/plugin.video.mediathekview/resources/lib/storeQuery.py", line 209, in getQuickSearch
                                                       cached_data = self._cache.load_cache('quickSearch', cacheKey)
                                                     File "/home/uatschitchun/.kodi/addons/plugin.video.mediathekview/resources/lib/storeCache.py", line 51, in load_cache
                                                       data = json.load(json_file)
                                                     File "/usr/lib/python3.8/json/__init__.py", line 293, in load
                                                       return loads(fp.read(),
                                                     File "/usr/lib/python3.8/json/__init__.py", line 357, in loads
                                                       return _default_decoder.decode(s)
                                                     File "/usr/lib/python3.8/json/decoder.py", line 337, in decode
                                                       obj, end = self.raw_decode(s, idx=_w(s, 0).end())
                                                     File "/usr/lib/python3.8/json/decoder.py", line 355, in raw_decode
                                                       raise JSONDecodeError("Expecting value", s, err.value) from None
                                                   json.decoder.JSONDecodeError: Expecting value: line 1 column 666 (char 665)
                                                   -->End of Python script error report<--

2024-08-03 19:37:57.180 T:665603   debug <general>: onExecutionDone(13, /home/uatschitchun/.kodi/addons/plugin.video.mediathekview/addon.py)
2024-08-03 20:03:34.221 T:672765   debug <general>: [plugin.video.mediathekview-1.1.3:StoreMySQL]: getFilms
2024-08-03 20:03:34.221 T:672765   debug <general>: [plugin.video.mediathekview-1.1.3:StoreCache]: no cache file request "films" and condition "CARDSSIDe710a123LTDEL0F1M1000N0R0"
2024-08-03 20:03:34.221 T:672765   debug <general>: [plugin.video.mediathekview-1.1.3:StoreMySQL]: query: SELECT idhash, title, showname, channel, description, duration, aired, url_sub, url_video, url_video_sd, url_video_hd FROM film WHERE (1=1) AND ( channel in (%s)) AND ( showId in (%s)) AND ( aired < %s ) ORDER BY aired DESC LIMIT 1000 params ['ARD', 'e710a123', 1722708214]
2024-08-03 20:03:34.221 T:672765   debug <general>: [plugin.video.mediathekview-1.1.3:StoreMySQL]: Using MySQL connector version 8.0.33
2024-08-03 20:03:34.224 T:672765   debug <general>: [plugin.video.mediathekview-1.1.3:StoreMySQL]: Connected to server localhost running 10.5.25-MariaDB-ubu2004
2024-08-03 20:03:34.506 T:672765   debug <general>: [plugin.video.mediathekview-1.1.3:StoreMySQL]: execute: 4 rows in 0.284804105758667 sec
2024-08-03 20:03:34.507 T:672765   error <general>: [plugin.video.mediathekview-1.1.3:StoreCache]: Failed to write cache file /home/uatschitchun/.kodi/userdata/addon_data/plugin.video.mediathekview/films.cache: Object of type Decimal is not JSON serializable
2024-08-03 20:03:34.507 T:672765   error <general>: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                                    - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                                   Error Type: <class 'TypeError'>
                                                   Error Contents: Object of type Decimal is not JSON serializable
                                                   Traceback (most recent call last):
                                                     File "/home/uatschitchun/.kodi/addons/plugin.video.mediathekview/addon.py", line 26, in <module>
                                                       PLUGIN.run()
                                                     File "/home/uatschitchun/.kodi/addons/plugin.video.mediathekview/resources/lib/plugin.py", line 214, in run
                                                       ui.generate(self.database.getFilms(channel, show))
                                                     File "/home/uatschitchun/.kodi/addons/plugin.video.mediathekview/resources/lib/storeQuery.py", line 278, in getFilms
                                                       self._cache.save_cache('films', cacheKey, rs)
                                                     File "/home/uatschitchun/.kodi/addons/plugin.video.mediathekview/resources/lib/storeCache.py", line 98, in save_cache
                                                       json.dump(cache, json_file)
                                                     File "/usr/lib/python3.8/json/__init__.py", line 179, in dump
                                                       for chunk in iterable:
                                                     File "/usr/lib/python3.8/json/encoder.py", line 431, in _iterencode
                                                       yield from _iterencode_dict(o, _current_indent_level)
                                                     File "/usr/lib/python3.8/json/encoder.py", line 405, in _iterencode_dict
                                                       yield from chunks
                                                     File "/usr/lib/python3.8/json/encoder.py", line 325, in _iterencode_list
                                                       yield from chunks
                                                     File "/usr/lib/python3.8/json/encoder.py", line 325, in _iterencode_list
                                                       yield from chunks
                                                     File "/usr/lib/python3.8/json/encoder.py", line 438, in _iterencode
                                                       o = _default(o)
                                                     File "/usr/lib/python3.8/json/encoder.py", line 179, in default
                                                       raise TypeError(f'Object of type {o.__class__.__name__} '
                                                   TypeError: Object of type Decimal is not JSON serializable
                                                   -->End of Python script error report<--

2024-08-03 20:03:34.507 T:672765   debug <general>: onExecutionDone(27, /home/uatschitchun/.kodi/addons/plugin.video.mediathekview/addon.py)

Need more or other infos? I'll deliver ;)

codingPF commented 1 month ago

That sound like the issue reported in #234 Could be this wasn’t properly publish in repo or there are more issues of that kind… You could try to disable the cache. Or you check the data type in the database and change it… Or you wait until I am back in 2 weeks…

Uatschitchun commented 1 month ago

Disable the cache? I'll check the settings...

See what I can do.

Hauptgrund sind die Livestreams der Olympischen Spiele... :-)

codingPF commented 4 weeks ago

Ich habe das ganze heute neu aufgesetzt und auf meiner VM (Ubuntu 22) nachgespielt. Soweit konnte ich keine Fehler finden. Suche hat auch geklappt. Scheint erstmal alles Ok. Am besten machst du die DB einmal platt und setzt sie neu auf...das sollte dann den Fehler auch beheben. Wenn der Fehler dann noch da ist, bitte ein describe von der film Tabelle hier schicken.