fix: dont try to scrape peers while offline

fix: episodelist and library not navigating to player on media/episode select
feat: make banner image clickable
This commit is contained in:
ThaUnknown 2025-07-05 13:55:35 +02:00
parent b200e933b6
commit 3720645775
No known key found for this signature in database
7 changed files with 10 additions and 7 deletions

View file

@ -1,6 +1,6 @@
{
"name": "ui",
"version": "6.4.15",
"version": "6.4.16",
"license": "BUSL-1.1",
"private": true,
"packageManager": "pnpm@9.14.4",

View file

@ -63,9 +63,9 @@
<div class='pl-5 pb-5 justify-end flex flex-col h-full max-w-full'>
{#key current}
<div class='text-white font-black text-4xl line-clamp-1 w-[900px] max-w-full leading-tight fade-in'>
<a class='text-white font-black text-4xl line-clamp-1 w-[900px] max-w-full leading-tight fade-in hover:text-neutral-300 hover:underline cursor-pointer' href='/app/anime/{current.id}'>
{title(current)}
</div>
</a>
<div class='details text-white capitalize pt-3 pb-2 flex w-[600px] max-w-full text-xs fade-in'>
<span class='text-nowrap flex items-center'>
{format(current)}

View file

@ -14,6 +14,7 @@
import type { MediaInfo } from '$lib/components/ui/player/util'
import type { resolveFilesPoorly, ResolvedFile } from './resolver'
import { goto } from '$app/navigation'
import { fillerEpisodes } from '$lib/components/EpisodesList.svelte'
import { cover, episodes, title, type Media } from '$lib/modules/anilist'
import { settings } from '$lib/modules/settings'
@ -81,6 +82,7 @@
} else {
searchStore.set({ media, episode })
}
goto('/app/player')
}
$: $playEp = playEpisode

View file

@ -78,7 +78,6 @@
let seekPercent = 0
let duration = 1
let playbackRate = 1
$: console.log(playbackRate)
let buffered: SvelteMediaTimeRange[] = []
let subtitleDelay = 0
$: buffer = Math.max(...buffered.map(({ end }) => end))
@ -829,7 +828,7 @@
<div class='absolute w-full bottom-0 flex flex-col gradient px-6 py-3 transition-opacity select:opacity-100' class:opacity-0={immersed}>
<div class='flex justify-between gap-12 items-end'>
<div class='flex flex-col gap-2 text-left cursor-pointer'>
<div class='text-white text-lg font-normal leading-none line-clamp-1 hover:text-neutral-300 hover:underline' use:click={() => goto(`/app/anime/${mediaInfo.media.id}`)}>{mediaInfo.session.title}</div>
<a class='text-white text-lg font-normal leading-none line-clamp-1 hover:text-neutral-300 hover:underline' href='/app/anime/{mediaInfo.media.id}'>{mediaInfo.session.title}</a>
<Sheet.Root portal={wrapper}>
<Sheet.Trigger id='episode-list-button' class='text-[rgba(217,217,217,0.6)] hover:text-neutral-500 text-sm leading-none font-light line-clamp-1 text-left hover:underline'>{mediaInfo.session.description}</Sheet.Trigger>
<Sheet.Content class='w-[550px] sm:max-w-full h-full overflow-y-scroll flex flex-col pb-0 shrink-0 gap-0 bg-black justify-between'>

View file

@ -8,6 +8,7 @@
import type { LibraryEntry } from '$lib/../app'
import { goto } from '$app/navigation'
import * as Table from '$lib/components/ui/table'
import { client } from '$lib/modules/anilist'
import { server } from '$lib/modules/torrent'
@ -67,6 +68,7 @@
if (!mediaID || !hash) return
const media = await client.single(mediaID)
server.play(hash, media.data!.Media!, episode)
goto('/app/player/')
}
// TODO

View file

@ -4,7 +4,7 @@ import type { Media } from './modules/anilist'
// TODO: update these
export const COMMITS_URL = 'https://api.github.com/repos/ThaUnknown/miru/commits'
export const WEB_URL = 'https://miru.watch'
export const WEB_URL = 'https://hayase.watch'
export const DEFAULT_EXTENSIONS = 'gh:hayase-app/extensions'
export const SETUP_VERSION = 3

View file

@ -137,7 +137,7 @@ export const extensions = new class Extensions {
deduped[index]!.parseObject = parseObject
})
return { results: await this.updatePeerCounts(deduped), errors }
return { results: navigator.onLine ? await this.updatePeerCounts(deduped) : deduped, errors }
}
async updatePeerCounts <T extends TorrentResult[]> (entries: T): Promise<T> {