mirror of
https://github.com/ThaUnknown/miru.git
synced 2026-04-20 20:12:03 +00:00
fix: try to fix continue watching not updating in rare cases
Some checks are pending
Check / check (push) Waiting to run
Some checks are pending
Check / check (push) Waiting to run
This commit is contained in:
parent
c8af048473
commit
9bd6b6b12b
3 changed files with 8 additions and 9 deletions
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "ui",
|
||||
"version": "6.4.45",
|
||||
"version": "6.4.46",
|
||||
"license": "BUSL-1.1",
|
||||
"private": true,
|
||||
"packageManager": "pnpm@9.15.5",
|
||||
|
|
|
|||
|
|
@ -214,7 +214,7 @@ class AnilistClient {
|
|||
MediaCoverImage: () => null,
|
||||
AiringSchedule: () => null,
|
||||
MediaListCollection: e => (e.user as {id: string | null}).id,
|
||||
MediaListGroup: () => null,
|
||||
MediaListGroup: e => e.status as string | null,
|
||||
UserAvatar: () => null,
|
||||
UserOptions: () => null,
|
||||
UserStatisticTypes: () => null,
|
||||
|
|
@ -329,7 +329,7 @@ class AnilistClient {
|
|||
// WARN: these 3 sections are hacky, i use oldvalue to prevent re-running loops, I DO NOT KNOW WHY THE LOOPS HAPPEN!
|
||||
continueIDs = readable<number[]>([], set => {
|
||||
let oldvalue: number[] = []
|
||||
const sub = this.userlists.subscribe(values => {
|
||||
return this.userlists.subscribe(values => {
|
||||
if (!values.data?.MediaListCollection?.lists) return []
|
||||
const mediaList = values.data.MediaListCollection.lists.reduce<NonNullable<NonNullable<NonNullable<NonNullable<ResultOf<typeof UserLists>['MediaListCollection']>['lists']>[0]>['entries']>>((filtered, list) => {
|
||||
return (list?.status === 'CURRENT' || list?.status === 'REPEATING') ? filtered.concat(list.entries) : filtered
|
||||
|
|
@ -338,6 +338,7 @@ class AnilistClient {
|
|||
const ids = mediaList.filter(entry => {
|
||||
if (entry?.media?.status === 'FINISHED') return true
|
||||
const progress = entry?.media?.mediaListEntry?.progress ?? 0
|
||||
// +2 is for series that don't have the next airing episode scheduled, but are still some-how airing, AL likes to fuck this up a lot, -1 is because we care about the latest aired available episode, not the next aired episode
|
||||
return progress < (entry?.media?.nextAiringEpisode?.episode ?? (progress + 2)) - 1
|
||||
}).map(entry => entry?.media?.id) as number[]
|
||||
|
||||
|
|
@ -345,12 +346,11 @@ class AnilistClient {
|
|||
oldvalue = ids
|
||||
set(ids)
|
||||
})
|
||||
return sub
|
||||
})
|
||||
|
||||
sequelIDs = readable<number[]>([], set => {
|
||||
let oldvalue: number[] = []
|
||||
const sub = this.userlists.subscribe(values => {
|
||||
return this.userlists.subscribe(values => {
|
||||
if (!values.data?.MediaListCollection?.lists) return []
|
||||
const mediaList = values.data.MediaListCollection.lists.find(list => list?.status === 'COMPLETED')?.entries
|
||||
if (!mediaList) return []
|
||||
|
|
@ -363,12 +363,11 @@ class AnilistClient {
|
|||
oldvalue = ids
|
||||
set(ids)
|
||||
})
|
||||
return sub
|
||||
})
|
||||
|
||||
planningIDs = readable<number[]>([], set => {
|
||||
let oldvalue: number[] = []
|
||||
const sub = this.userlists.subscribe(userLists => {
|
||||
return this.userlists.subscribe(userLists => {
|
||||
if (!userLists.data?.MediaListCollection?.lists) return []
|
||||
const mediaList = userLists.data.MediaListCollection.lists.find(list => list?.status === 'PLANNING')?.entries
|
||||
if (!mediaList) return []
|
||||
|
|
@ -378,7 +377,6 @@ class AnilistClient {
|
|||
oldvalue = ids
|
||||
set(ids)
|
||||
})
|
||||
return sub
|
||||
})
|
||||
|
||||
search (variables: VariablesOf<typeof Search>, pause?: boolean) {
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
import { Toaster } from '$lib/components/ui/sonner'
|
||||
import native from '$lib/modules/native'
|
||||
import { settings, SUPPORTS } from '$lib/modules/settings'
|
||||
import { cn } from '$lib/utils'
|
||||
|
||||
let root: HTMLDivElement
|
||||
|
||||
|
|
@ -39,7 +40,7 @@
|
|||
<meta name='viewport' content='width=device-width, initial-scale={SUPPORTS.isAndroidTV ? $settings.uiScale / devicePixelRatio : SUPPORTS.isAndroid ? $settings.uiScale : 1}, maximum-scale=2, user-scalable=0, viewport-fit=cover' />
|
||||
</svelte:head>
|
||||
|
||||
<div class='w-full h-full flex flex-col backface-hidden bg-black relative overflow-clip md:border-l-2 [border-image:linear-gradient(to_bottom,white_var(--progress),#2dcf58_var(--progress))_1] preserve-3d' bind:this={root} id='root' style:--progress='{100 - updateProgress}%'>
|
||||
<div class={cn('w-full h-full flex flex-col backface-hidden bg-black relative overflow-clip [border-image:linear-gradient(to_bottom,white_var(--progress),#2dcf58_var(--progress))_1] preserve-3d', !SUPPORTS.isAndroid && 'md:border-l-2')} bind:this={root} id='root' style:--progress='{100 - updateProgress}%'>
|
||||
<ProgressBar zIndex={100} bind:complete {displayThresholdMs} />
|
||||
<Toaster position='top-right' expand={true} />
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue