| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
svelte-i18n's getJSON returns the active locale's sub-tree verbatim;
nested keys missing in that locale do not auto-fall-back to the
fallbackLocale. The locale store now deep-merges the English value
into the resolved object so JP users see English for any sub-key the
JA dictionary omits (instead of blanks).
|
| |
|
|
|
|
|
|
| |
fetch() defaults a string body to text/plain, which SvelteKit's
csrf_check_origin treats as a form submission. Behind portless's
HTTPS-to-HTTP dev proxy the Origin scheme mismatches url.origin
and the requests 403'd. Declaring application/json is correct for
the body and bypasses the form-content-type check.
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
| |
Lenis disables native CSS smooth scroll, so window.scrollTo({behavior:"smooth"}) jumps instantly. Expose the Lenis instance via a store and scroll through it, falling back to native when unavailable.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Earlier fix added .catch() handlers to both fetch chains, but the
outer .then body called response.json().then(...) without returning
the inner promise. That meant rejections from response.json() (e.g.
non-JSON response) or from the inner handler body (e.g. a throw in
isEqualsJson or data access) floated unhandled.
Return the inner promise so its rejection reaches the outer .catch.
Also short-circuit early on !response.ok to keep the happy path at
the top indentation level.
Verified via a standalone promise-graph reproducer: all seven paths
(outer fetch reject, non-ok response, json reject, handler throw,
push fetch reject, push handler throw, happy path) are caught by
their intended handler.
|
| |
|
|
|
|
|
|
|
|
|
| |
The settings store's subscribe callback kicked off a fetch chain to
pull/push settings with no .catch() on either promise chain. A network
failure or non-ok PUT from /api/configuration would surface as an
unhandled promise rejection.
Attach a .catch() that logs a descriptive error on both the pull and
push chains so sync failures become observable without crashing the
page.
|
| |
|
|
|
|
|
|
|
| |
Replaces one-shot boolean revalidateAnime with a counter store so
multiple components can subscribe without race conditions. Adds
revalidateManga store and reactive refresh blocks to DueAnimeList
and MangaListTemplate. Extracts shared invalidateListCaches function
used by both the command palette action and the debug settings button.
Renames palette item to "Refresh" and debug button to "Invalidate".
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|