diff --git a/docs/Rules.mdx b/docs/Rules.mdx index 4d0708a4..4f2d2209 100644 --- a/docs/Rules.mdx +++ b/docs/Rules.mdx @@ -75,6 +75,8 @@ When you choose `Change quality profile and search` for Radarr or Sonarr, Mainta For Sonarr season rules, additional actions are available to also clean up the parent show when it becomes empty after season processing. +Never-downloaded later seasons do not block those parent-show cleanup actions. Maintainerr only treats a monitored season as still keeping the show active when Sonarr reports episode files for that season. + :::warning Disabling an active rule group does not empty its linked collection. Existing tracked items stay there until the rule group is re-enabled or deleted. diff --git a/static/openapi-spec/maintainerr_api_specs.yaml b/static/openapi-spec/maintainerr_api_specs.yaml index 198c8a72..d0ae6113 100644 --- a/static/openapi-spec/maintainerr_api_specs.yaml +++ b/static/openapi-spec/maintainerr_api_specs.yaml @@ -279,27 +279,27 @@ paths: description: '' tags: - /settings - /api/plex: + /api/media-server: get: - operationId: PlexApiController_getStatus + operationId: MediaServerController_getStatus parameters: [] responses: '200': description: '' tags: - - /plex - /api/plex/libraries: + - /media-server + /api/media-server/libraries: get: - operationId: PlexApiController_getLibraries + operationId: MediaServerController_getLibraries parameters: [] responses: '200': description: '' tags: - - /plex - /api/plex/library/{id}/content/{page}: + - /media-server + /api/media-server/library/{id}/content: get: - operationId: PlexApiController_getLibraryContent + operationId: MediaServerController_getLibraryContent parameters: - name: id required: true @@ -307,12 +307,12 @@ paths: schema: type: string - name: page - required: true - in: path + required: false + in: query schema: type: number - - name: amount - required: true + - name: limit + required: false in: query schema: type: number @@ -320,10 +320,10 @@ paths: '200': description: '' tags: - - /plex - /api/plex/meta/{id}: + - /media-server + /api/media-server/meta/{id}: get: - operationId: PlexApiController_getMetadata + operationId: MediaServerController_getMetadata parameters: - name: id required: true @@ -334,10 +334,10 @@ paths: '200': description: '' tags: - - /plex - /api/plex/meta/{id}/seen: + - /media-server + /api/media-server/meta/{id}/seen: get: - operationId: PlexApiController_getSeenBy + operationId: MediaServerController_getWatchHistory parameters: - name: id required: true @@ -348,19 +348,19 @@ paths: '200': description: '' tags: - - /plex - /api/plex/users: + - /media-server + /api/media-server/users: get: - operationId: PlexApiController_getUser + operationId: MediaServerController_getUsers parameters: [] responses: '200': description: '' tags: - - /plex - /api/plex/meta/{id}/children: + - /media-server + /api/media-server/meta/{id}/children: get: - operationId: PlexApiController_getChildrenMetadata + operationId: MediaServerController_getChildrenMetadata parameters: - name: id required: true @@ -371,81 +371,81 @@ paths: '200': description: '' tags: - - /plex - /api/plex/library/{id}/recent: + - /media-server + /api/media-server/library/{id}/recent: get: - operationId: PlexApiController_getRecentlyAdded + operationId: MediaServerController_getRecentlyAdded parameters: - name: id required: true in: path schema: - type: number + type: string responses: '200': description: '' tags: - - /plex - /api/plex/library/{id}/collections: + - /media-server + /api/media-server/library/{id}/collections: get: - operationId: PlexApiController_getCollections + operationId: MediaServerController_getCollections parameters: - name: id required: true in: path schema: - type: number + type: string responses: '200': description: '' tags: - - /plex - /api/plex/library/collection/{collectionId}: + - /media-server + /api/media-server/collection/{id}: get: - operationId: PlexApiController_getCollection + operationId: MediaServerController_getCollection parameters: - - name: collectionId + - name: id required: true in: path schema: - type: number + type: string responses: '200': description: '' tags: - - /plex + - /media-server delete: - operationId: PlexApiController_deleteCollection + operationId: MediaServerController_deleteCollection parameters: - - name: collectionId + - name: id required: true in: path schema: - type: number + type: string responses: '200': description: '' tags: - - /plex - /api/plex/library/collection/{collectionId}/children: + - /media-server + /api/media-server/collection/{id}/children: get: - operationId: PlexApiController_getCollectionChildren + operationId: MediaServerController_getCollectionChildren parameters: - - name: collectionId + - name: id required: true in: path schema: - type: number + type: string responses: '200': description: '' tags: - - /plex - /api/plex/search/{input}: + - /media-server + /api/media-server/search/{query}: get: - operationId: PlexApiController_searchLibrary + operationId: MediaServerController_searchContent parameters: - - name: input + - name: query required: true in: path schema: @@ -454,77 +454,76 @@ paths: '200': description: '' tags: - - /plex - /api/plex/library/collection/{collectionId}/child/{childId}: + - /media-server + /api/media-server/collection/{collectionId}/item/{itemId}: put: - operationId: PlexApiController_addChildToCollection + operationId: MediaServerController_addToCollection parameters: - name: collectionId required: true in: path schema: - type: number - - name: childId + type: string + - name: itemId required: true in: path schema: - type: number + type: string responses: '200': description: '' tags: - - /plex + - /media-server delete: - operationId: PlexApiController_deleteChildFromCollection + operationId: MediaServerController_removeFromCollection parameters: - name: collectionId required: true in: path schema: - type: number - - name: childId + type: string + - name: itemId required: true in: path schema: - type: number + type: string responses: '200': description: '' tags: - - /plex - /api/plex/library/collection/update: + - /media-server + /api/media-server/collection: put: - operationId: PlexApiController_updateCollection + operationId: MediaServerController_updateCollection parameters: [] responses: '200': description: '' tags: - - /plex - /api/plex/library/collection/create: + - /media-server post: - operationId: PlexApiController_createCollection + operationId: MediaServerController_createCollection parameters: [] responses: '201': description: '' tags: - - /plex - /api/plex/library/collection/settings: + - /media-server + /api/media-server/collection/visibility: put: - operationId: PlexApiController_UpdateCollectionSettings + operationId: MediaServerController_updateCollectionVisibility parameters: [] requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/CollectionHubSettingsDto' + $ref: '#/components/schemas/CollectionVisibilitySettings' responses: '200': description: '' tags: - - /plex + - /media-server /api/overseerr/movie/{id}: get: operationId: OverseerrApiController_getMovie @@ -1617,9 +1616,19 @@ components: CronScheduleDto: type: object properties: {} - CollectionHubSettingsDto: + CollectionVisibilitySettings: type: object - properties: {} + properties: + libraryId: + type: string + collectionId: + type: string + ownHome: + type: boolean + sharedHome: + type: boolean + recommended: + type: boolean RulesDto: type: object properties: {}