diff --git a/overseerr-api.yml b/overseerr-api.yml
index 4417851ab..b7d243edf 100644
--- a/overseerr-api.yml
+++ b/overseerr-api.yml
@@ -5046,6 +5046,7 @@ paths:
unavailable,
failed,
deleted,
+ completed,
]
- in: query
name: sort
diff --git a/server/lib/availabilitySync.ts b/server/lib/availabilitySync.ts
index 7db24fec9..c505f8a89 100644
--- a/server/lib/availabilitySync.ts
+++ b/server/lib/availabilitySync.ts
@@ -31,7 +31,7 @@ class AvailabilitySync {
try {
logger.info(`Starting availability sync...`, {
- label: 'AvailabilitySync',
+ label: 'Availability Sync',
});
const pageSize = 50;
@@ -73,7 +73,7 @@ class AvailabilitySync {
logger.info(
`The non-4K movie [TMDB ID ${media.tmdbId}] still exists. Preventing removal.`,
{
- label: 'AvailabilitySync',
+ label: 'Availability Sync',
}
);
}
@@ -83,7 +83,7 @@ class AvailabilitySync {
logger.info(
`The 4K movie [TMDB ID ${media.tmdbId}] still exists. Preventing removal.`,
{
- label: 'AvailabilitySync',
+ label: 'Availability Sync',
}
);
}
@@ -122,7 +122,7 @@ class AvailabilitySync {
logger.info(
`The non-4K show [TMDB ID ${media.tmdbId}] still exists. Preventing removal.`,
{
- label: 'AvailabilitySync',
+ label: 'Availability Sync',
}
);
}
@@ -132,7 +132,7 @@ class AvailabilitySync {
logger.info(
`The 4K show [TMDB ID ${media.tmdbId}] still exists. Preventing removal.`,
{
- label: 'AvailabilitySync',
+ label: 'Availability Sync',
}
);
}
@@ -206,11 +206,11 @@ class AvailabilitySync {
} catch (ex) {
logger.error('Failed to complete availability sync.', {
errorMessage: ex.message,
- label: 'AvailabilitySync',
+ label: 'Availability Sync',
});
} finally {
logger.info(`Availability sync complete.`, {
- label: 'AvailabilitySync',
+ label: 'Availability Sync',
});
this.running = false;
}
@@ -298,7 +298,7 @@ class AvailabilitySync {
} [TMDB ID ${media.tmdbId}] was not found in any ${
media.mediaType === 'movie' ? 'Radarr' : 'Sonarr'
} and Plex instance. Status will be changed to deleted.`,
- { label: 'AvailabilitySync' }
+ { label: 'Availability Sync' }
);
await mediaRepository.save({ media, ...media });
@@ -309,7 +309,7 @@ class AvailabilitySync {
} [TMDB ID ${media.tmdbId}].`,
{
errorMessage: ex.message,
- label: 'AvailabilitySync',
+ label: 'Availability Sync',
}
);
}
@@ -343,7 +343,7 @@ class AvailabilitySync {
media.status = MediaStatus.PARTIALLY_AVAILABLE;
logger.info(
`Marking the non-4K show [TMDB ID ${media.tmdbId}] as PARTIALLY_AVAILABLE because season removal has occurred.`,
- { label: 'AvailabilitySync' }
+ { label: 'Availability Sync' }
);
}
@@ -351,7 +351,7 @@ class AvailabilitySync {
media.status4k = MediaStatus.PARTIALLY_AVAILABLE;
logger.info(
`Marking the 4K show [TMDB ID ${media.tmdbId}] as PARTIALLY_AVAILABLE because season removal has occurred.`,
- { label: 'AvailabilitySync' }
+ { label: 'Availability Sync' }
);
}
@@ -363,7 +363,7 @@ class AvailabilitySync {
}] was not found in any ${
media.mediaType === 'tv' ? 'Sonarr' : 'Radarr'
} and Plex instance. Status will be changed to deleted.`,
- { label: 'AvailabilitySync' }
+ { label: 'Availability Sync' }
);
} catch (ex) {
logger.debug(
@@ -372,7 +372,7 @@ class AvailabilitySync {
} season(s) [${seasonKeys}], TMDB ID ${media.tmdbId}.`,
{
errorMessage: ex.message,
- label: 'AvailabilitySync',
+ label: 'Availability Sync',
}
);
}
@@ -421,7 +421,7 @@ class AvailabilitySync {
}] from Radarr.`,
{
errorMessage: ex.message,
- label: 'AvailabilitySync',
+ label: 'Availability Sync',
}
);
}
@@ -476,7 +476,7 @@ class AvailabilitySync {
}] from Sonarr.`,
{
errorMessage: ex.message,
- label: 'AvailabilitySync',
+ label: 'Availability Sync',
}
);
}
@@ -598,7 +598,7 @@ class AvailabilitySync {
} [TMDB ID ${media.tmdbId}] from Plex.`,
{
errorMessage: ex.message,
- label: 'AvailabilitySync',
+ label: 'Availability Sync',
}
);
}
diff --git a/src/components/RequestList/index.tsx b/src/components/RequestList/index.tsx
index 1d464ce1f..9b8028757 100644
--- a/src/components/RequestList/index.tsx
+++ b/src/components/RequestList/index.tsx
@@ -35,6 +35,7 @@ enum Filter {
UNAVAILABLE = 'unavailable',
FAILED = 'failed',
DELETED = 'deleted',
+ COMPLETED = 'completed',
}
type Sort = 'added' | 'modified';
@@ -166,6 +167,9 @@ const RequestList = () => {
+