fix: address review

This commit is contained in:
ThaUnknown 2024-02-02 11:12:38 +01:00
parent 17a1f12463
commit de69850d03
5 changed files with 18 additions and 32 deletions

View file

@ -37,9 +37,9 @@
{media.duration}m
{/if}
</div>
{#if progress && $progress > 0}
<div class="progress container-fluid position-absolute" style='height: 2px; min-height: 2px;'>
<div class="progress-bar" style="width: {$progress}%"></div>
{#if $progress > 0}
<div class='progress container-fluid position-absolute' style='height: 2px; min-height: 2px;'>
<div class='progress-bar' style='width: {$progress}%' />
</div>
{/if}
</div>

View file

@ -32,9 +32,9 @@
{media.duration}m
{/if}
</div>
{#if progress && $progress > 0}
<div class="progress container-fluid position-absolute mb-5">
<div class="progress-bar" style="width: {$progress}%"></div>
{#if $progress > 0}
<div class='progress container-fluid position-absolute mb-5'>
<div class='progress-bar' style='width: {$progress}%' />
</div>
{/if}
</div>

View file

@ -1,8 +1,7 @@
<script>
import { formatMap, setStatus, playMedia, getMediaMaxEp } from '@/modules/anime.js'
import { formatMap, setStatus, playMedia } from '@/modules/anime.js'
import { alRequest } from '@/modules/anilist.js'
import { click } from '@/modules/click.js'
import { liveAnimeEpisodeProgress } from '@/modules/animeprogress.js'
export let media
let hide = true
@ -54,8 +53,6 @@
function toggleMute () {
muted = !muted
}
const progress = liveAnimeEpisodeProgress(media.id, Math.min(getMediaMaxEp(media, true), media.mediaListEntry?.progress + 1 || 1))
</script>
<div class='position-absolute w-350 h-400 absolute-container top-0 bottom-0 m-auto bg-dark-light z-30 rounded overflow-hidden pointer'>
@ -83,11 +80,6 @@
on:load={() => { hide = false }}
src={`https://www.youtube-nocookie.com/embed/${media.trailer?.id}?autoplay=1&controls=0&mute=1&disablekb=1&loop=1&vq=medium&playlist=${media.trailer?.id}`}
/> -->
{#if progress && $progress > 0}
<div class=" position-absolute" style="margin-top: -1.5rem">
<div class="progress-bar" style="width: {$progress}%"></div>
</div>
{/if}
{/if}
</div>
<div class='w-full px-20'>

View file

@ -1,10 +1,9 @@
<script>
import { getContext } from 'svelte'
import PreviewCard from './PreviewCard.svelte'
import { formatMap, statusColorMap, getMediaMaxEp } from '@/modules/anime.js'
import { formatMap, statusColorMap } from '@/modules/anime.js'
import { hoverClick } from '@/modules/click.js'
import { countdown } from '@/modules/util.js'
import { liveAnimeEpisodeProgress } from '@/modules/animeprogress.js'
import { page } from '@/App.svelte'
@ -18,7 +17,6 @@
function setHoverState (state) {
preview = state
}
const progress = liveAnimeEpisodeProgress(media.id, Math.min(getMediaMaxEp(media, true), media.mediaListEntry?.progress + 1 || 1))
</script>
<div class='d-flex p-20 position-relative first-check' use:hoverClick={[viewMedia, setHoverState]}>
@ -39,11 +37,7 @@
</div>
{/if}
<img loading='lazy' src={media.coverImage.extraLarge || ''} alt='cover' class='cover-img w-full rounded' style:--color={media.coverImage.color || '#1890ff'} />
{#if progress && $progress > 0}
<div class="progress container-fluid" style="height: 2px; min-height: 2px; margin-top: -2px;">
<div class="progress-bar" style="width: {$progress}%"></div>
</div>
{/if}
<div class='text-white font-weight-very-bold font-size-16 pt-15 title overflow-hidden'>
{#if media.mediaListEntry?.status}
<div style:--statusColor={statusColorMap[media.mediaListEntry.status]} class='list-status-circle d-inline-flex overflow-hidden mr-5' title={media.mediaListEntry.status} />

View file

@ -201,23 +201,23 @@
}
async function loadAnimeProgress () {
const mediaId = current?.media?.media?.id
const episode = current?.media?.episode
if (current?.media.failed || mediaId !== media?.media?.id || episode !== media?.episode) return
const animeProgress = await getAnimeProgress(mediaId, episode)
if (!current?.media?.media?.id || !current.media.media.episode || current.media.failed || !media?.media?.id || !media.episode) return
const animeProgress = await getAnimeProgress(current.media.media.id, current.media.episode)
if (!animeProgress) return
const currentTime = Math.max(animeProgress.currentTime - 5, 0) // Load 5 seconds before
seek(currentTime - video.currentTime)
}
function saveAnimeProgress () {
const mediaId = current?.media?.media?.id
const episode = current?.media?.episode
if (current?.media?.failed || mediaId !== media?.media?.id || episode !== media?.episode) return
if (!current?.media?.media?.id || !current.media.media.episode || current.media.failed || !media?.media?.id || !media.episode) return
if (buffering || paused || video.readyState < 4) return
setAnimeProgress({ mediaId, episode, currentTime: video.currentTime, safeduration })
setAnimeProgress({ mediaId: current.media.media.id, episode: current.media.episode, currentTime: video.currentTime, safeduration })
}
setInterval(saveAnimeProgress, 1000)
setInterval(saveAnimeProgress, 30000)
function cycleSubtitles () {
if (current && subs?.headers) {