Skip to content

Adopt request state, following and season requests #401

Description

@Quick104

Silo's request system is being reworked on the server and web (not merged yet). The native API changes are additive, so this client keeps working unchanged, but it can't use the new behaviour until it adopts it. Every addition is behind a capability in GET /api/v2/requests/status.

What the server adds

  • One request state. MediaRequest.state and RequestMediaState.state take the values pending, approved, processing, partially_available, available, declined, cancelled and failed. The server derives the state from the request's status, outcome, servers and library presence. Show it instead of combining status and outcome in the client.
  • Why a request was declined or cancelled. MediaRequest.outcome_reason.
  • Following someone else's request. PUT / DELETE /api/v2/requests/follows/{media_type}/{tmdb_id}, with request.following and request.requested_by_viewer on the title detail. Capability: follow_supported. A follower's "now available" notification carries follower: true.
  • Cancelling. An owner can cancel a pending request, and an approved request that hasn't been sent to a server yet (it has no targets).
  • Season requests.
    • createRequest accepts seasons. Without them, the request covers every aired season the library doesn't have.
    • MediaRequest.seasons and season_progress.
    • The series detail lists seasons with availability (missing, partial, available) and requested.
    • Capabilities: season_requests_supported, and missing_seasons_requestable (whether a series already in the library can be requested for its missing seasons).

Work

  • Show state in request lists and on the title detail, with outcome_reason when a request was declined or cancelled.
  • "Notify me when available" on a title someone else requested, when follow_supported.
  • Offer Cancel on approved requests that have no targets.
  • A season picker when requesting a series, when season_requests_supported, and "Request seasons" on a library series when missing_seasons_requestable.
  • Show the requested seasons and "partially available" progress in My requests.
  • Latest season / Upcoming seasons shortcuts in the picker, matching web (Add Latest season and Upcoming seasons shortcuts to the season picker silo-server#1555).

The web implementation is in silo-server; the PRs will be linked here when they open.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    api-v2API v2 / Huma program (epic silo-server#135)enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions