aboutsummaryrefslogtreecommitdiff
path: root/src/lib/Media/Anime
Commit message (Collapse)AuthorAgeFilesLines
* fix(airing): roll just-aired releases forward to stop refresh loopHEADmainFuwn20 hours2-2/+28
| | | | nextReleaseTime kept a just-aired release in the past for 5 minutes, showing a negative countdown and driving scheduleAiringRefresh into a 1-second revalidate loop. Always roll a past release to its next occurrence, and only arm the refresh timer on future airings.
* feat(schedule): add native track alongside sub and dubFuwn21 hours2-11/+27
| | | | Source the native (original-language) broadcast schedule from AnimeSchedule's "raw" airType and expose it as a third track on the schedule-page toggle and the GraphQL airing query.
* feat(airing): replace SubsPlease with AnimeSchedule (sub+dub)Fuwn23 hours6-762/+593
| | | | | | Source both subbed and dubbed episode schedules from AnimeSchedule.net v3 (absolute timestamps, episode numbers, delay windows, streams), keyed to AniList shows by title. Removes SubsPlease and its ~650-line fuzzy matcher. Countdown source is now a setting (native|sub|dub) with a dub->sub->native fallback. Requires ANIMESCHEDULE_CLIENT_TOKEN.
* style: apply biome autofixes and resolve remaining lint findingsFuwn7 days6-13/+13
| | | | | | | | | | | | | | Auto-fixed cosmetic findings (import ordering, obj["k"]->obj.k, optional chaining, template literals, Date.now, parseInt radix, useless ternaries/ switch cases). Resolved the non-autofixable rest by hand: - Senpy: static-only class -> object literal (no this/static reliance). - app.html: var global shim -> window.global = window (keeps the shim, drops the unused-var flag). - biome-ignore with rationale for the logout document.cookie clear and the holodule scrape non-null assertion. Verified: biome check 0 diagnostics, svelte-check 0/0, 24/24 unit tests.
* fix(match): extend episode shift window and shift native episode countFuwn11 days2-3/+7
| | | | | | | | | | | | The shift was capped at 36h, which caught daily-cadence drift but not weekly shows where AniList's nextAiringEpisode jumps a full week ahead once an episode airs. Extends to 8 days so weekly schedules trigger it. Also shifts nativeEpisode alongside episode so classify treats the subtitled release as authoritative for aired-count when prefer-native is off; previously the original AniList count survived and kept shows in Due even though display correctly said the next sub release was still upcoming.
* fix(match): normalize "S2"-style season suffix in title preprocessingFuwn11 days1-0/+1
|
* feat(debug): add dry-run mutations modeFuwn2026-05-211-2/+14
| | | | | | | | New 'Dry-run mutations' toggle in the Debug settings panel blocks outgoing list updates (the + button) and skips the post-mutation refresh so optimistic UI changes persist locally for testing. The mutation gate sits in incrementMediaProgress; CleanAnimeList only revalidates when the request actually went out.
* style: apply biome formatterFuwn2026-04-282-2/+9
|
* refactor(airing): unify countdown formatter into shared helperFuwn2026-04-283-121/+67
|
* fix(airing): round residual hour and minute in AiringTime componentFuwn2026-04-281-8/+8
|
* fix(airing): floor hour consistently in hours countdownFuwn2026-04-281-3/+9
|
* fix(airing): round residual hour in days countdownFuwn2026-04-281-2/+7
|
* fix(anime): align due cover rendering with due classificationFuwn2026-03-032-1/+106
|
* fix(match): prevent cached airing injection mutation regressionsFuwn2026-03-012-16/+78
|
* chore(biome): drop formatter style overridesFuwn2026-03-019-861/+996
|
* chore(biome): re-enable noImplicitAnyLet ruleFuwn2026-03-011-1/+1
|
* chore(biome): enable svelte formattingFuwn2026-03-011-105/+103
|
* fix(anime): unify due classification and harden subtitle matchingFuwn2026-03-013-28/+337
|
* perf: optimise list hot paths and shared timersFuwn2026-03-011-92/+88
|
* perf(match): fast-path exact normalised title matchesFuwn2026-03-011-0/+11
|
* perf(match): cache indexed schedules and per-airing match resultsFuwn2026-03-011-7/+65
|
* perf(match): pre-index subtitle schedule by day and tokenFuwn2026-03-011-24/+84
|
* feat(match): skip ambiguous subtitle matches via score marginFuwn2026-03-011-0/+6
|
* feat(match): add confidence gate for subtitle title matchingFuwn2026-03-011-6/+37
|
* fix(match): Harden calculateWeightedSimilarityFuwn2026-03-011-3/+29
|
* perf(schedule): Reduce redundant work in title matchingFuwn2026-02-121-43/+59
|
* fix: Resolve all ESLint errors and warningsFuwn2026-01-291-1/+1
|
* chore(prettier): use spaces instead of tabsFuwn2024-10-097-454/+454
|
* fix(AiringTime): don't double inject airing timeFuwn2024-06-141-4/+1
| | | | Double injecting airing time double decremented delayed anime.
* fix(match): no decrement check for daysFuwn2024-06-021-1/+1
|
* fix(match): only decrement episode on no delayFuwn2024-06-011-2/+4
|
* fix(match): simple native time comparisonFuwn2024-05-241-1/+1
|
* fix(match): delayed and subtitled time compatibilityFuwn2024-05-241-6/+12
|
* fix(match): delayed animeFuwn2024-05-121-1/+2
|
* fix(AiringTime): add hours to weeks and daysFuwn2024-04-201-12/+17
|
* fix(AiringTime): residual minutes fix hourFuwn2024-04-201-2/+2
|
* feat(manga): cover modeFuwn2024-04-172-4/+4
|
* feat(match): compare day of releaseFuwn2024-04-151-24/+28
|
* fix(anime): no match out-of-season animeFuwn2024-04-111-0/+3
|
* feat(sequelspy): show days instead of weeks for longFuwn2024-03-301-2/+3
|
* fix(AiringTime): round minutesFuwn2024-03-011-1/+1
|
* fix(match): no match for unairedFuwn2024-02-111-9/+11
|
* fix(match): exclude known un-subbed mediaFuwn2024-02-081-0/+3
|
* refactor(anilist): move to data moduleFuwn2024-02-085-8/+8
|
* feat(locale): localise airing timeFuwn2024-02-071-9/+2
|
* feat(airingtime): update every 30 secondsFuwn2024-02-071-79/+92
|
* fix(match): use airing at authority for adjustmentFuwn2024-02-071-1/+0
|
* fix(match): skip specials and ovas in scheduleFuwn2024-02-061-0/+7
|
* fix(match): re-add schedule matcherFuwn2024-02-061-1/+39
|
* fix(match): stronger matcherFuwn2024-02-061-42/+38
|