edde746
eaa1736c4e
feat(mdblist): sync watched history, scrobbles and ratings with MDBList
...
Connects MDBList through its OAuth device-code grant, registered as a
Device Code app so no client secret or redirect URI ships in the binary
and TV, mobile and desktop all use the same flow.
MDBList omits `verification_uri_complete`, but its device page seeds the
code field from a `user_code` query parameter and the sign-in redirect
preserves the query string, so the activation link is built locally and
the dialog's open button lands on a filled-in form instead of an empty
one. A server-supplied complete URL still wins if one ever appears.
Poll state is read from the response body rather than the status code:
`authorization_pending` and `slow_down` both arrive as HTTP 400, and a
missing grant answers 404 `device_not_found`.
Writes go out as real-time `/scrobble/*` reports plus `/sync/watched`
for the marks that never pass through the player, with ratings on
`/sync/ratings`. Matching uses IMDb and TMDb only — MDBList's id block
has no `tvdb` field, so a TVDB-only item is skipped rather than written
under an empty id block.
2026-08-05 12:03:05 +02:00
..
2026-08-04 16:56:54 +02:00
2026-07-28 23:28:25 +02:00
2026-08-02 15:35:42 +02:00
2026-08-05 12:03:05 +02:00
2026-07-24 03:46:46 +02:00
2026-07-13 02:15:03 +02:00
2026-07-30 11:55:13 +02:00
2026-07-26 03:41:19 +02:00
2026-07-26 04:24:55 +02:00
2026-08-01 06:59:20 +02:00
2026-04-25 13:44:15 +02:00
2026-07-27 03:59:27 +02:00
2026-07-24 03:46:50 +02:00
2026-07-11 17:38:22 +02:00
2026-07-05 14:16:04 +02:00
2026-08-04 04:35:06 +02:00
2026-06-14 13:40:16 +02:00
2026-07-30 14:57:26 +02:00
2026-07-12 17:31:15 +02:00
2026-07-24 03:56:40 +02:00
2026-07-24 03:46:46 +02:00
2026-07-27 17:44:52 +02:00
2026-07-24 03:46:46 +02:00
2026-07-28 23:28:25 +02:00
2026-07-26 19:41:23 +02:00
2026-07-26 06:09:47 +02:00
2026-05-01 01:20:36 +02:00
2026-07-29 05:19:27 +02:00
2026-07-13 02:15:03 +02:00
2026-08-05 07:14:11 +02:00
2026-07-26 03:41:19 +02:00
2026-07-10 12:07:19 +02:00
2026-07-24 03:46:46 +02:00
2026-07-28 05:07:00 +02:00
2026-08-05 06:09:26 +02:00
2026-07-13 00:03:52 +02:00
2026-08-05 06:09:26 +02:00
2026-08-04 04:35:06 +02:00
2026-08-05 06:09:26 +02:00
2026-08-02 07:08:14 +02:00
2026-08-05 06:09:26 +02:00
2026-08-05 06:09:26 +02:00
2026-08-02 06:40:04 +02:00
2026-07-24 03:46:46 +02:00
2026-08-05 06:09:26 +02:00
2026-07-24 03:46:46 +02:00
2026-08-05 06:09:26 +02:00
2026-08-03 17:07:05 +02:00
2026-07-17 16:30:10 +02:00
2026-07-12 17:31:16 +02:00
2026-07-24 03:46:46 +02:00
2026-08-02 09:29:59 +02:00
2026-07-24 03:46:46 +02:00
2026-07-12 17:31:12 +02:00
2026-07-26 04:24:55 +02:00
2026-08-04 04:35:06 +02:00
2026-07-18 20:04:09 +02:00
2026-07-26 06:09:47 +02:00
2026-07-26 06:09:48 +02:00
2026-07-26 04:24:55 +02:00
2026-07-12 17:31:16 +02:00
2026-08-05 06:09:26 +02:00
2026-07-26 06:09:48 +02:00
2026-07-24 03:46:46 +02:00
2026-08-03 02:34:37 +02:00
2026-07-17 23:09:07 +02:00
2026-07-24 03:46:46 +02:00
2026-08-04 02:22:44 +02:00
2026-07-26 06:09:48 +02:00
2026-07-24 03:46:46 +02:00
2026-07-26 06:09:49 +02:00
2026-08-04 13:51:20 +02:00
2026-08-02 16:16:19 +02:00
2026-07-13 02:15:03 +02:00
2026-07-26 06:09:49 +02:00
2026-08-04 16:10:02 +02:00
2026-08-05 06:09:26 +02:00
2026-07-26 06:09:49 +02:00
2026-07-25 17:38:09 +02:00
2026-07-24 03:46:50 +02:00
2026-08-02 06:40:04 +02:00
2026-08-04 16:56:54 +02:00
2026-07-29 05:19:27 +02:00
2026-08-04 04:35:06 +02:00
2026-07-26 04:34:08 +02:00
2026-07-24 08:08:10 +02:00
2026-07-26 06:09:47 +02:00
2026-07-16 14:36:48 +02:00
2026-08-02 03:59:56 +02:00
2026-07-12 17:31:12 +02:00
2026-08-04 16:10:02 +02:00
2026-07-29 05:19:27 +02:00
2026-08-02 03:59:56 +02:00
2026-08-02 09:29:59 +02:00
2026-05-16 22:54:53 +02:00
2026-07-12 17:31:16 +02:00
2026-07-12 17:31:12 +02:00
2026-08-01 06:59:20 +02:00
2026-08-01 06:59:20 +02:00
2026-08-01 06:59:20 +02:00
2026-08-02 04:37:29 +02:00
2026-07-31 21:45:32 +02:00
2026-05-01 01:20:36 +02:00
2026-07-12 08:42:25 +02:00
2026-07-27 17:44:52 +02:00
2026-07-30 03:16:49 +02:00
2026-07-26 19:41:23 +02:00
2026-07-24 03:46:50 +02:00
2026-07-24 03:46:46 +02:00
2026-08-02 04:37:29 +02:00
2026-07-24 03:56:40 +02:00
2026-07-30 14:57:26 +02:00
2026-07-26 19:41:23 +02:00
2026-07-26 04:34:08 +02:00
2026-08-03 17:07:14 +02:00
2026-07-26 06:09:47 +02:00
2026-08-04 16:10:02 +02:00
2026-07-24 03:56:40 +02:00
2026-07-24 03:46:46 +02:00
2026-08-03 00:04:03 +02:00
2026-07-24 03:46:46 +02:00
2026-07-12 17:31:16 +02:00