mirror of
https://github.com/zoriya/Kyoo.git
synced 2026-03-17 23:19:14 -04:00
Fix/missing abs (#1360)
This commit is contained in:
commit
a8065e684a
@ -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
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user