mirror of
https://github.com/jakejarvis/sofa.git
synced 2026-08-29 01:35:39 -04:00
feat: reorganize API around operation domains
Restructure the oRPC contract from 14 resource-oriented routers to 8 domain-oriented routers for a cleaner public API surface. - Consolidate 7 watch procedures into unified tracking.watch/unwatch with scope + ids input (movie, episode, season, series) - Split dashboard across tracking (stats, history), library (continueWatching, upcoming), and discover (recommendations) - Merge explore + search + discover into single discover router - Absorb integrations into account.integrations - Merge system.authConfig into system.publicInfo - Collapse 6 admin setting endpoints into admin.settings.get/update - Deduplicate platforms.list + explore.watchProviders into discover.platforms - Add symmetric unwatchMovie/unwatchSeries core functions - Rename titles.detail→get, titles.recommendations→similar, people.detail→get BREAKING CHANGE: All client API paths have changed. REST paths now mirror router structure. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
+1
-1
@@ -16,4 +16,4 @@ _openapi:
|
||||
|
||||
Create a new media server integration or update an existing one. Generates a unique webhook token for the provider.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/integrations","method":"post"}]} />
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/account/integrations","method":"post"}]} />
|
||||
+1
-1
@@ -14,4 +14,4 @@ _openapi:
|
||||
|
||||
Remove a media server integration and all its event history.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/integrations/{provider}","method":"delete"}]} />
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/account/integrations/{provider}","method":"delete"}]} />
|
||||
+1
-1
@@ -16,4 +16,4 @@ _openapi:
|
||||
|
||||
Fetch all configured media server integrations for the current user, including recent webhook/sync events for each.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/integrations","method":"get"}]} />
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/account/integrations","method":"get"}]} />
|
||||
+1
-1
@@ -16,4 +16,4 @@ _openapi:
|
||||
|
||||
Generate a new webhook token for an integration. The old token is immediately invalidated.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/integrations/{provider}/regenerate-token","method":"post"}]} />
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/account/integrations/{provider}/regenerate-token","method":"post"}]} />
|
||||
@@ -1,17 +0,0 @@
|
||||
---
|
||||
title: Get registration status
|
||||
full: true
|
||||
_openapi:
|
||||
method: GET
|
||||
toc: []
|
||||
structuredData:
|
||||
headings: []
|
||||
contents:
|
||||
- content: Check whether new user registration is currently open or closed.
|
||||
---
|
||||
|
||||
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
|
||||
|
||||
Check whether new user registration is currently open or closed.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/admin/registration","method":"get"}]} />
|
||||
+5
-5
@@ -1,5 +1,5 @@
|
||||
---
|
||||
title: Get telemetry status
|
||||
title: Get admin settings
|
||||
full: true
|
||||
_openapi:
|
||||
method: GET
|
||||
@@ -8,12 +8,12 @@ _openapi:
|
||||
headings: []
|
||||
contents:
|
||||
- content: >-
|
||||
Fetch whether anonymous telemetry is enabled and when the last report
|
||||
was sent.
|
||||
Fetch all admin-configurable settings: registration, update checks,
|
||||
and telemetry.
|
||||
---
|
||||
|
||||
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
|
||||
|
||||
Fetch whether anonymous telemetry is enabled and when the last report was sent.
|
||||
Fetch all admin-configurable settings: registration, update checks, and telemetry.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/admin/telemetry","method":"get"}]} />
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/admin/settings","method":"get"}]} />
|
||||
@@ -0,0 +1,19 @@
|
||||
---
|
||||
title: Update admin settings
|
||||
full: true
|
||||
_openapi:
|
||||
method: PATCH
|
||||
toc: []
|
||||
structuredData:
|
||||
headings: []
|
||||
contents:
|
||||
- content: >-
|
||||
Partially update admin settings. Only provided sections are changed;
|
||||
omitted sections keep their current values.
|
||||
---
|
||||
|
||||
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
|
||||
|
||||
Partially update admin settings. Only provided sections are changed; omitted sections keep their current values.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/admin/settings","method":"patch"}]} />
|
||||
@@ -1,17 +0,0 @@
|
||||
---
|
||||
title: Toggle registration
|
||||
full: true
|
||||
_openapi:
|
||||
method: PUT
|
||||
toc: []
|
||||
structuredData:
|
||||
headings: []
|
||||
contents:
|
||||
- content: Open or close new user registration.
|
||||
---
|
||||
|
||||
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
|
||||
|
||||
Open or close new user registration.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/admin/registration","method":"put"}]} />
|
||||
@@ -1,17 +0,0 @@
|
||||
---
|
||||
title: Toggle telemetry
|
||||
full: true
|
||||
_openapi:
|
||||
method: PUT
|
||||
toc: []
|
||||
structuredData:
|
||||
headings: []
|
||||
contents:
|
||||
- content: Enable or disable anonymous telemetry reporting.
|
||||
---
|
||||
|
||||
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
|
||||
|
||||
Enable or disable anonymous telemetry reporting.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/admin/telemetry","method":"put"}]} />
|
||||
@@ -1,17 +0,0 @@
|
||||
---
|
||||
title: Toggle update checks
|
||||
full: true
|
||||
_openapi:
|
||||
method: PUT
|
||||
toc: []
|
||||
structuredData:
|
||||
headings: []
|
||||
contents:
|
||||
- content: Enable or disable automatic update checks against the public API.
|
||||
---
|
||||
|
||||
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
|
||||
|
||||
Enable or disable automatic update checks against the public API.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/admin/update-check","method":"put"}]} />
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
---
|
||||
title: Discover titles by genre
|
||||
title: Browse titles with filters
|
||||
full: true
|
||||
_openapi:
|
||||
method: GET
|
||||
@@ -16,4 +16,4 @@ _openapi:
|
||||
|
||||
Browse movies or TV shows filtered by genre, sorted by popularity. Returns user statuses and episode progress.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/discover","method":"get"}]} />
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/discover/browse","method":"get"}]} />
|
||||
+1
-1
@@ -16,4 +16,4 @@ _openapi:
|
||||
|
||||
Fetch the list of TMDB genres for movies or TV shows. Used to populate genre filters for discovery.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/explore/genres","method":"get"}]} />
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/discover/genres","method":"get"}]} />
|
||||
+5
-5
@@ -1,5 +1,5 @@
|
||||
---
|
||||
title: Get update check status
|
||||
title: List available streaming platforms
|
||||
full: true
|
||||
_openapi:
|
||||
method: GET
|
||||
@@ -8,12 +8,12 @@ _openapi:
|
||||
headings: []
|
||||
contents:
|
||||
- content: >-
|
||||
Fetch whether automatic update checks are enabled, and the latest
|
||||
cached check result if available.
|
||||
Fetch all available streaming platforms, ordered by popularity.
|
||||
Includes subscription status for filtering.
|
||||
---
|
||||
|
||||
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
|
||||
|
||||
Fetch whether automatic update checks are enabled, and the latest cached check result if available.
|
||||
Fetch all available streaming platforms, ordered by popularity. Includes subscription status for filtering.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/admin/update-check","method":"get"}]} />
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/discover/platforms","method":"get"}]} />
|
||||
+1
-1
@@ -16,4 +16,4 @@ _openapi:
|
||||
|
||||
Fetch currently popular movies or TV shows from TMDB with the user's tracking statuses.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/explore/popular","method":"get"}]} />
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/discover/popular","method":"get"}]} />
|
||||
+1
-1
@@ -16,4 +16,4 @@ _openapi:
|
||||
|
||||
Fetch personalized title recommendations based on the user's library and watch history.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/dashboard/recommendations","method":"get"}]} />
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/discover/recommendations","method":"get"}]} />
|
||||
+1
-1
@@ -16,4 +16,4 @@ _openapi:
|
||||
|
||||
Full-text search across movies, TV shows, and people via TMDB. Optionally filter by media type.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/search","method":"get"}]} />
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/discover/search","method":"get"}]} />
|
||||
+1
-1
@@ -16,4 +16,4 @@ _openapi:
|
||||
|
||||
Fetch today's trending movies and/or TV shows from TMDB, including a featured hero title and the user's statuses.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/explore/trending","method":"get"}]} />
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/discover/trending","method":"get"}]} />
|
||||
@@ -1,19 +0,0 @@
|
||||
---
|
||||
title: Batch mark episodes watched
|
||||
full: true
|
||||
_openapi:
|
||||
method: POST
|
||||
toc: []
|
||||
structuredData:
|
||||
headings: []
|
||||
contents:
|
||||
- content: >-
|
||||
Record watch events for multiple episodes at once. Useful for marking
|
||||
a range of episodes as watched.
|
||||
---
|
||||
|
||||
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
|
||||
|
||||
Record watch events for multiple episodes at once. Useful for marking a range of episodes as watched.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/episodes/batch-watch","method":"post"}]} />
|
||||
@@ -1,17 +0,0 @@
|
||||
---
|
||||
title: Mark episode unwatched
|
||||
full: true
|
||||
_openapi:
|
||||
method: POST
|
||||
toc: []
|
||||
structuredData:
|
||||
headings: []
|
||||
contents:
|
||||
- content: Remove the watch record for a single TV episode.
|
||||
---
|
||||
|
||||
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
|
||||
|
||||
Remove the watch record for a single TV episode.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/episodes/{id}/unwatch","method":"post"}]} />
|
||||
@@ -1,17 +0,0 @@
|
||||
---
|
||||
title: Mark episode watched
|
||||
full: true
|
||||
_openapi:
|
||||
method: POST
|
||||
toc: []
|
||||
structuredData:
|
||||
headings: []
|
||||
contents:
|
||||
- content: Record a watch event for a single TV episode.
|
||||
---
|
||||
|
||||
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
|
||||
|
||||
Record a watch event for a single TV episode.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/episodes/{id}/watch","method":"post"}]} />
|
||||
@@ -1,19 +0,0 @@
|
||||
---
|
||||
title: List available watch providers
|
||||
full: true
|
||||
_openapi:
|
||||
method: GET
|
||||
toc: []
|
||||
structuredData:
|
||||
headings: []
|
||||
contents:
|
||||
- content: >-
|
||||
Fetch the list of streaming providers available in the configured
|
||||
region. Used to populate provider filter dropdowns.
|
||||
---
|
||||
|
||||
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
|
||||
|
||||
Fetch the list of streaming providers available in the configured region. Used to populate provider filter dropdowns.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/explore/watch-providers","method":"get"}]} />
|
||||
+1
-1
@@ -16,4 +16,4 @@ _openapi:
|
||||
|
||||
Fetch TV shows the user is currently watching, with the next unwatched episode and progress for each.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/dashboard/continue-watching","method":"get"}]} />
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/library/continue-watching","method":"get"}]} />
|
||||
+1
-1
@@ -16,4 +16,4 @@ _openapi:
|
||||
|
||||
Fetch upcoming episodes and movie releases for titles in the user's library, sorted by date. Supports cursor-based pagination.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/dashboard/upcoming","method":"get"}]} />
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/library/upcoming","method":"get"}]} />
|
||||
@@ -1,17 +0,0 @@
|
||||
---
|
||||
title: List all platforms
|
||||
full: true
|
||||
_openapi:
|
||||
method: GET
|
||||
toc: []
|
||||
structuredData:
|
||||
headings: []
|
||||
contents:
|
||||
- content: Fetch all available streaming platforms, ordered by popularity.
|
||||
---
|
||||
|
||||
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
|
||||
|
||||
Fetch all available streaming platforms, ordered by popularity.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/platforms","method":"get"}]} />
|
||||
@@ -1,19 +0,0 @@
|
||||
---
|
||||
title: Mark season unwatched
|
||||
full: true
|
||||
_openapi:
|
||||
method: POST
|
||||
toc: []
|
||||
structuredData:
|
||||
headings: []
|
||||
contents:
|
||||
- content: >-
|
||||
Remove all watch records for episodes in a season in a single
|
||||
operation.
|
||||
---
|
||||
|
||||
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
|
||||
|
||||
Remove all watch records for episodes in a season in a single operation.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/seasons/{id}/unwatch","method":"post"}]} />
|
||||
@@ -1,17 +0,0 @@
|
||||
---
|
||||
title: Mark season watched
|
||||
full: true
|
||||
_openapi:
|
||||
method: POST
|
||||
toc: []
|
||||
structuredData:
|
||||
headings: []
|
||||
contents:
|
||||
- content: Mark all episodes in a season as watched in a single operation.
|
||||
---
|
||||
|
||||
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
|
||||
|
||||
Mark all episodes in a season as watched in a single operation.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/seasons/{id}/watch","method":"post"}]} />
|
||||
@@ -1,20 +0,0 @@
|
||||
---
|
||||
title: Get authentication config
|
||||
full: true
|
||||
_openapi:
|
||||
method: GET
|
||||
toc: []
|
||||
structuredData:
|
||||
headings: []
|
||||
contents:
|
||||
- content: >-
|
||||
Fetch the authentication configuration including OIDC availability,
|
||||
password login status, and registration state. Does not require
|
||||
authentication.
|
||||
---
|
||||
|
||||
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
|
||||
|
||||
Fetch the authentication configuration including OIDC availability, password login status, and registration state. Does not require authentication.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/system/auth-config","method":"get"}]} />
|
||||
@@ -8,12 +8,12 @@ _openapi:
|
||||
headings: []
|
||||
contents:
|
||||
- content: >-
|
||||
Fetch public information about this Sofa instance. Does not require
|
||||
authentication. Used by the login screen to display instance details.
|
||||
Fetch public information about this Sofa instance including
|
||||
authentication configuration. Does not require authentication.
|
||||
---
|
||||
|
||||
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
|
||||
|
||||
Fetch public information about this Sofa instance. Does not require authentication. Used by the login screen to display instance details.
|
||||
Fetch public information about this Sofa instance including authentication configuration. Does not require authentication.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/system/public-info","method":"get"}]} />
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
---
|
||||
title: Get title recommendations
|
||||
title: Get similar titles
|
||||
full: true
|
||||
_openapi:
|
||||
method: GET
|
||||
@@ -16,4 +16,4 @@ _openapi:
|
||||
|
||||
Fetch similar titles based on locally cached recommendation data, along with the user's statuses for each.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/titles/{id}/recommendations","method":"get"}]} />
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/titles/{id}/similar","method":"get"}]} />
|
||||
@@ -1,19 +0,0 @@
|
||||
---
|
||||
title: Mark all episodes watched
|
||||
full: true
|
||||
_openapi:
|
||||
method: POST
|
||||
toc: []
|
||||
structuredData:
|
||||
headings: []
|
||||
contents:
|
||||
- content: >-
|
||||
Mark every episode of a TV show as watched. Requires seasons to be
|
||||
hydrated first.
|
||||
---
|
||||
|
||||
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
|
||||
|
||||
Mark every episode of a TV show as watched. Requires seasons to be hydrated first.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/titles/{id}/watch-all","method":"post"}]} />
|
||||
@@ -1,17 +0,0 @@
|
||||
---
|
||||
title: Mark movie as watched
|
||||
full: true
|
||||
_openapi:
|
||||
method: POST
|
||||
toc: []
|
||||
structuredData:
|
||||
headings: []
|
||||
contents:
|
||||
- content: Log a watch event for a movie. Automatically sets status to completed.
|
||||
---
|
||||
|
||||
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
|
||||
|
||||
Log a watch event for a movie. Automatically sets status to completed.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/titles/{id}/watch","method":"post"}]} />
|
||||
+1
-1
@@ -16,4 +16,4 @@ _openapi:
|
||||
|
||||
Fetch the user's watch counts grouped by time period. Useful for rendering activity charts.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/dashboard/watch-history","method":"get"}]} />
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/tracking/history","method":"get"}]} />
|
||||
+1
-1
@@ -17,4 +17,4 @@ _openapi:
|
||||
|
||||
Add a title to the user's watchlist and trigger a full TMDB import if needed. If the title already exists in the user's library, returns alreadyAdded: true.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/titles/{id}/quick-add","method":"post"}]} />
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/tracking/titles/{id}/quick-add","method":"post"}]} />
|
||||
+1
-1
@@ -14,4 +14,4 @@ _openapi:
|
||||
|
||||
Set a 0-5 star rating for a title. Use 0 to clear the rating.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/titles/{id}/rating","method":"put"}]} />
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/tracking/titles/{id}/rating","method":"put"}]} />
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
---
|
||||
title: Get dashboard statistics
|
||||
title: Get watch statistics
|
||||
full: true
|
||||
_openapi:
|
||||
method: GET
|
||||
@@ -16,4 +16,4 @@ _openapi:
|
||||
|
||||
Fetch summary counts for the current user: movies watched this month, episodes this week, library size, and completed titles.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/dashboard/stats","method":"get"}]} />
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/tracking/stats","method":"get"}]} />
|
||||
@@ -0,0 +1,19 @@
|
||||
---
|
||||
title: Remove watch records
|
||||
full: true
|
||||
_openapi:
|
||||
method: POST
|
||||
toc: []
|
||||
structuredData:
|
||||
headings: []
|
||||
contents:
|
||||
- content: >-
|
||||
Remove watch records for one or more items. Use scope to indicate what
|
||||
the IDs refer to: movie, episode, season, or series.
|
||||
---
|
||||
|
||||
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
|
||||
|
||||
Remove watch records for one or more items. Use scope to indicate what the IDs refer to: movie, episode, season, or series.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/tracking/unwatch","method":"post"}]} />
|
||||
+1
-1
@@ -16,4 +16,4 @@ _openapi:
|
||||
|
||||
Set the user's tracking status for a title. Use null to remove the title from the library entirely.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/titles/{id}/status","method":"put"}]} />
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/tracking/titles/{id}/status","method":"put"}]} />
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
---
|
||||
title: Get user's title info
|
||||
title: Get user's tracking info for a title
|
||||
full: true
|
||||
_openapi:
|
||||
method: GET
|
||||
@@ -16,4 +16,4 @@ _openapi:
|
||||
|
||||
Fetch the current user's tracking status, rating, and watched episode IDs for a title.
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/titles/{id}/user-info","method":"get"}]} />
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/tracking/titles/{id}","method":"get"}]} />
|
||||
@@ -0,0 +1,20 @@
|
||||
---
|
||||
title: Mark items as watched
|
||||
full: true
|
||||
_openapi:
|
||||
method: POST
|
||||
toc: []
|
||||
structuredData:
|
||||
headings: []
|
||||
contents:
|
||||
- content: >-
|
||||
Mark one or more items as watched. Use scope to indicate what the IDs
|
||||
refer to: movie (title IDs), episode (episode IDs), season (season
|
||||
IDs), or series (title IDs to mark all episodes).
|
||||
---
|
||||
|
||||
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
|
||||
|
||||
Mark one or more items as watched. Use scope to indicate what the IDs refer to: movie (title IDs), episode (episode IDs), season (season IDs), or series (title IDs to mark all episodes).
|
||||
|
||||
<APIPage document={"./public/openapi.json"} operations={[{"path":"/tracking/watch","method":"post"}]} />
|
||||
@@ -12,11 +12,6 @@ const config = {
|
||||
},
|
||||
async redirects() {
|
||||
return [
|
||||
{
|
||||
source: "/docs/api",
|
||||
destination: "/docs/api/account/account.removeAvatar",
|
||||
permanent: false,
|
||||
},
|
||||
{
|
||||
source: "/support",
|
||||
destination: "https://github.com/jakejarvis/sofa/discussions",
|
||||
|
||||
+1829
-2299
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user