Fix/missing abs (#1360)

This commit is contained in:
Zoe Roux 2026-03-13 18:54:48 +01:00 committed by GitHub
commit a8065e684a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 44 additions and 1 deletions

View File

@ -78,7 +78,7 @@ export const PathItem = ({
{...tooltip(t("videos-map.no-guess"))}
/>
)}
<P className="flex-1 flex-wrap">{path}</P>
<P className="wrap-anywhere flex-1 flex-wrap">{path}</P>
</View>
<ComboBox
multiple

View File

@ -103,6 +103,7 @@ class FsScanner:
await self.scan(file)
case Change.added:
logger.info("New video found: %s", file)
self._info = await self._client.get_videos_info()
await self._register([file])
case Change.deleted:
logger.info("Delete video at: %s", file)

View File

@ -551,6 +551,48 @@ class TVDB(Provider):
if entry.extra["linked_movie"]:
ret[i] = await self.process_movie_entry(entry)
# guess absolute numbers for episodes where tvdb has not assigned one (order=0).
season_refs: dict[int, list[tuple[int, float]]] = {}
for entry in ret:
if (
entry.order != 0
and entry.kind == "episode"
and entry.season_number is not None
and entry.episode_number is not None
):
season_refs.setdefault(entry.season_number, []).append(
(entry.episode_number, entry.order)
)
for entry in ret:
if (
entry.order != 0
or entry.kind != "episode"
or entry.season_number is None
or entry.episode_number is None
):
continue
refs = season_refs.get(entry.season_number)
if refs:
# Use a reference episode from the same season:
ref_ep, ref_abs = refs[0]
entry.order = ref_abs - ref_ep + entry.episode_number
else:
prev_season = season_refs.get(entry.season_number - 1)
if prev_season:
entry.order = (
max(abs for _ep, abs in prev_season) + entry.episode_number
)
else:
# we hope it's season 1
entry.order = entry.episode_number
season_refs.setdefault(entry.season_number, []).append(
(entry.episode_number, entry.order)
)
# handle specials and such that are between seasons
for entry in ret:
if entry.order != 0:
continue