zoriya / Kyoo

A portable and vast media library solution.
https://kyoo.zoriya.dev
GNU General Public License v3.0
1.32k stars 29 forks source link

matcher (edge latest docker) - trace Unhandled errorerror #491

Closed shuther closed 1 month ago

shuther commented 1 month ago

Kyoo's version

edge

What happened?

error in log:

matcher-1      | INFO:matcher.matcher:Identied /video/divx/Aventure/Trente jours de nuit (30 days of night 2007 David Slade) Josh Hartnett.avi: MatchesDict({'video_codec': 'DivX', 'title': 'Trente jours de nuit', 'year': 2007, 'alternative_title': 'Josh Hartnett', 'container': 'avi', 'mimetype': 'video/x-msvideo', 'type': 'movie'})
matcher-1      | ERROR:providers.implementations.anilist:{'data': {'Media': {'id': 3639, 'siteUrl': 'https://anilist.co/anime/3639', 'idMal': 3639, 'title': {'romaji': 'Princess Road: Bara to Dokuro no Monshou', 'english': 'Erotic Torture Chamber', 'native': 'プリンセス・ロード 薔薇と髑髏の紋章'}, 'description': "Yurie, princess of Asronia is kidnapped on her way to a celebration in the kingdom of Gostaria by the dragon forces of the Demon Dragon King. Yurie's bodyguard, Maya, survives the attack, and has vowed to rescue Yurie no matter the cost. Untill then, however, Yurie must endure the Demon Dragon King's sexual depravations.", 'status': 'FINISHED', 'episodes': 1, 'startDate': {'year': 1994, 'month': 12, 'day': 23}, 'endDate': {'year': 1994, 'month': 12, 'day': 24}, 'countryOfOrigin': 'JP', 'trailer': None, 'coverImage': {'extraLarge': 'https://s4.anilist.co/file/anilistcdn/media/anime/cover/medium/3639.jpg'}, 'bannerImage': None, 'genres': ['Fantasy', 'Hentai'], 'synonyms': ['Best of Kitty #4 (3)'], 'averageScore': 41, 'tags': [{'name': 'Rape', 'isMediaSpoiler': False, 'isGeneralSpoiler': False}, {'name': 'Femdom', 'isMediaSpoiler': False, 'isGeneralSpoiler': False}, {'name': 'Tanned Skin', 'isMediaSpoiler': False, 'isGeneralSpoiler': False}, {'name': 'Female Protagonist', 'isMediaSpoiler': False, 'isGeneralSpoiler': False}, {'name': 'Torture', 'isMediaSpoiler': False, 'isGeneralSpoiler': False}, {'name': 'Yuri', 'isMediaSpoiler': False, 'isGeneralSpoiler': False}, {'name': 'LGBTQ+ Themes', 'isMediaSpoiler': False, 'isGeneralSpoiler': False}, {'name': 'Bondage', 'isMediaSpoiler': False, 'isGeneralSpoiler': False}, {'name': 'Sex Toys', 'isMediaSpoiler': False, 'isGeneralSpoiler': False}, {'name': 'Cunnilingus', 'isMediaSpoiler': False, 'isGeneralSpoiler': False}, {'name': 'Demons', 'isMediaSpoiler': False, 'isGeneralSpoiler': False}, {'name': 'Dragons', 'isMediaSpoiler': False, 'isGeneralSpoiler': False}, {'name': 'Tentacles', 'isMediaSpoiler': False, 'isGeneralSpoiler': False}, {'name': 'Handjob', 'isMediaSpoiler': False, 'isGeneralSpoiler': False}], 'studios': {'nodes': []}, 'relations': {'edges': []}}}}
matcher-1      | ERROR:matcher.matcher:Unhandled error
matcher-1      | Traceback (most recent call last):
matcher-1      |   File "/app/matcher/matcher.py", line 36, in identify
matcher-1      |     await self._identify(path)
matcher-1      |   File "/app/matcher/matcher.py", line 84, in _identify
matcher-1      |     await self.search_episode(title, year, season, episode, path)
matcher-1      |   File "/app/matcher/matcher.py", line 119, in search_episode
matcher-1      |     episode.show_id = await self.create_or_get_show(episode)
matcher-1      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
matcher-1      |   File "/app/matcher/matcher.py", line 179, in create_or_get_show
matcher-1      |     return await create_show(provider_id)
matcher-1      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
matcher-1      |   File "/app/matcher/cache.py", line 53, in wrapper
matcher-1      |     return await exec_as_cache(cache, key, lambda: f(*args, **kwargs))
matcher-1      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
matcher-1      |   File "/app/matcher/cache.py", line 64, in exec_as_cache
matcher-1      |     result = await f()
matcher-1      |              ^^^^^^^^^
matcher-1      |   File "/app/matcher/matcher.py", line 156, in create_show
matcher-1      |     ret = await self._client.post("show", data=show.to_kyoo())
matcher-1      |                                                ^^^^^^^^^^^^^^
matcher-1      |   File "/app/providers/types/show.py", line 57, in to_kyoo
matcher-1      |     **asdict(self.translations[default_language]),
matcher-1      |              ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
matcher-1      | KeyError: 'fr'
zoriya commented 1 month ago

Seeing the logs, you are using the anilist provider (that was instantly reverted) so you probably pulled kyoo at a really bad timing. Sorry about that. You should be able to fix the issue by running docker compose pull and starting kyoo again.