Commit graph

1642 commits

Author SHA1 Message Date
tapframe
26e7b23f02 Merge branch 'simkl' of https://github.com/NuvioMedia/NuvioMobile into simkl 2026-07-26 10:00:29 +05:30
tapframe
011cee0dab Merge branch 'cmp-rewrite' into simkl 2026-07-26 10:00:23 +05:30
tapframe
b60995324b Merge branch 'cmp-rewrite' of https://github.com/NuvioMedia/NuvioMobile into cmp-rewrite 2026-07-26 09:56:37 +05:30
skoruppa
f2bf839e29 feat: Simkl anime tracking — per-season MAL/Kitsu ID resolution
Write path:
- resolveAnimeEpisodeForSimkl() overrides IDs from video ID (Path B)
- Only the anime-specific ID from videoId is sent (no shared IDs)
- videoId flows through WatchedItem → push/delete → Simkl API

Read path:
- animeAlternateWatchedKeys() emits extra watched keys under alternate IDs
- Observer on Simkl snapshot keeps watchedKeys reactive
- SimklAnimeWatchedFallback handles franchise-parent content IDs
- Optimistic removals prevent stale fallback reads

Bootstrap:
- full_anime_seasons + episode_tvdb_id + language=en for both bootstrap and changes

Library:
- Anime entries use type 'anime' and supportedContentTypes includes 'anime'

Infrastructure:
- WatchedItem.videoId field for episode video ID propagation
- WatchedSyncAdapter.observeExtraWatchedKeys() for reactive extra keys
- WatchedRepository observes provider extra keys and re-publishes
2026-07-26 02:57:39 +02:00
tapframe
7f254a9f2e refactor: remove catalog header accent line 2026-07-25 16:34:53 +05:30
tapframe
44fc3fa62f fix(tracking): close early scrobble sessions 2026-07-25 13:04:33 +05:30
tapframe
d8ffd18c4d fix(simkl): pace requests after completion 2026-07-24 19:34:52 +05:30
Nayif
2fda777249
Merge pull request #1610 from Laskco/feat/cloud-library-search
feat(library): Search the cloud library
2026-07-24 19:12:46 +05:30
tapframe
c85831df26 feat(simkl): improve sync guidance navigation 2026-07-24 18:42:39 +05:30
tapframe
085b136e5a fix(simkl): hide on-hold items from continue watching 2026-07-24 18:18:25 +05:30
tapframe
327d49d31d fix(simkl): refresh hidden progress immediately 2026-07-24 16:30:41 +05:30
tapframe
94ec538c10 fix(simkl): reconcile completed and dropped progress 2026-07-24 16:09:09 +05:30
tapframe
a69b7efd8b fix(simkl): gate sync reads by activity 2026-07-24 14:25:51 +05:30
tapframe
beecece7e3 Merge branch 'cmp-rewrite' into simkl 2026-07-23 21:41:32 +05:30
Nayif
755f6ff9b8
Merge pull request #1591 from guuilp/feat/mal-rating
feat(mdblist): add MyAnimeList (MAL) rating from MDBList API
2026-07-23 21:30:26 +05:30
tapframe
9b278e6cb0 fix(simkl): refresh watch state after manual sync 2026-07-23 21:27:27 +05:30
tapframe
4f3eaee2cc fix(simkl): reconcile watched playback 2026-07-23 21:02:19 +05:30
YLaskco
79269f461a feat(library): search the cloud library
The Cloud view only had provider and type filters, so finding a specific
release in a large debrid account meant scrolling the whole list, even
though the item names and file names are already loaded on the client.

Adds a local search field under the toolbar that narrows the already
loaded items. It matches the item name or any of its file names, since
the useful identifier is often in the filename rather than the title,
and it stacks on top of the existing provider and type filters.
2026-07-23 10:20:23 -04:00
tapframe
200851c6f6 fix: scope removal animations to tracking source 2026-07-23 18:06:46 +05:30
tapframe
0aaea4fd2b change tracking icon 2026-07-23 17:09:32 +05:30
tapframe
bb609bc308 refactor(details): remove Simkl source action 2026-07-23 16:30:07 +05:30
tapframe
38e3e89618 feat(settings): add Simkl attribution 2026-07-23 16:22:36 +05:30
tapframe
544c776bb8 ref: update descriptions for Trakt and Simkl 2026-07-23 15:49:37 +05:30
tapframe
2bca3ffa6b fix(profiles): activate selected profile once 2026-07-23 15:46:40 +05:30
tapframe
237d2308f2 chore(simkl): trace refresh request origins 2026-07-23 15:35:29 +05:30
tapframe
96d0a31f45 fix(simkl): deduplicate startup activity checks 2026-07-23 14:59:51 +05:30
tapframe
1906518322 fix(library): simplify Simkl watchlist presentation 2026-07-23 00:27:05 +05:30
tapframe
4df54ab89f fix(simkl): confirm destructive library removals 2026-07-23 00:27:05 +05:30
tapframe
7fb8206107 feat(tracking): redesign tracking settings 2026-07-23 00:27:04 +05:30
tapframe
b817eb5b14 feat(simkl): explain sync cadence 2026-07-23 00:27:04 +05:30
tapframe
b4eba6e0c5 fix(simkl): fetch historical episode state 2026-07-23 00:27:03 +05:30
tapframe
002a54e022 fix(sync): retry incomplete foreground pulls 2026-07-23 00:27:02 +05:30
tapframe
7210e7cc68 fix(sync): restore foreground refresh behavior 2026-07-23 00:27:02 +05:30
tapframe
2f19d06fd3 fix(trakt): restore seek scrobble updates 2026-07-23 00:27:01 +05:30
tapframe
cac2c891c0 fix(trakt): preserve episode mapping identity 2026-07-23 00:27:00 +05:30
tapframe
58e57f2b17 fix(watched): preserve failed Nuvio writes 2026-07-23 00:26:59 +05:30
tapframe
6c61ab150b fix(simkl): sanitize sync diagnostics 2026-07-23 00:26:59 +05:30
tapframe
dbf2308c9f fix(tracking): preserve provider attribution 2026-07-23 00:26:58 +05:30
tapframe
9798482fff fix(simkl): refresh settings from activity changes 2026-07-23 00:26:57 +05:30
tapframe
e020b9700a fix(simkl): map anime episode coordinates 2026-07-23 00:26:57 +05:30
tapframe
942a111eec fix(simkl): parse resolved history mutations 2026-07-23 00:26:56 +05:30
tapframe
b0aa543f26 fix(simkl): align request retry policies 2026-07-23 00:26:56 +05:30
tapframe
65817ad73b fix(simkl): separate completion from library status 2026-07-23 00:26:55 +05:30
tapframe
3064c7aa25 chore(simkl): add watched marker diagnostics 2026-07-23 00:26:55 +05:30
tapframe
e32445238d fix(simkl): enrich progress and correct artwork 2026-07-23 00:26:54 +05:30
tapframe
e408a2f48c fix(progress): isolate continue watching sources 2026-07-23 00:26:54 +05:30
tapframe
e930699ae9 fix(simkl): restore compliant library sync 2026-07-23 00:26:53 +05:30
tapframe
56a496a384 chore(simkl): log sync HTTP responses 2026-07-23 00:26:53 +05:30
tapframe
32449a7a15 feat(tracking): expose manual provider refresh 2026-07-23 00:26:52 +05:30
tapframe
adcc829a1a fix(simkl): centralize oauth request policy 2026-07-23 00:26:52 +05:30