mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-09-22 05:16:22 -07:00
fix(anime): keep browser state in sync and alias HLS segments
- Toggle the player Anime Browser without losing its state - Share active playback state and support rotating fake segment extensions
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import type { AnimeStreamMetadata } from '../../anime-bridge/episode-metadata';
|
||||
import type { AnilistMediaGuess } from '../../core/services/anilist/anilist-updater';
|
||||
import type { JimakuMediaInfo } from '../../types';
|
||||
import type { AnimeBrowserPlaybackState } from '../../types/anime-browser';
|
||||
|
||||
/**
|
||||
* Holds what the anime browser resolved for active and queued streams.
|
||||
@@ -53,6 +54,17 @@ export function matchRequestedStreamPlaybackMetadata(
|
||||
return store.match(requestedMediaPath ?? currentMediaPath);
|
||||
}
|
||||
|
||||
export function toAnimeBrowserPlaybackState(
|
||||
metadata: AnimeStreamMetadata | null,
|
||||
): AnimeBrowserPlaybackState | null {
|
||||
if (!metadata) return null;
|
||||
return {
|
||||
sourceId: metadata.sourceId,
|
||||
animeUrl: metadata.animeUrl,
|
||||
episodeUrl: metadata.episodeUrl,
|
||||
};
|
||||
}
|
||||
|
||||
/** AniList counts whole episodes, so a special numbered 6.5 cannot drive it. */
|
||||
function wholeEpisode(episode: number | null): number | null {
|
||||
return typeof episode === 'number' && Number.isInteger(episode) && episode > 0 ? episode : null;
|
||||
|
||||
Reference in New Issue
Block a user