diff --git a/server/entity/MediaRequest.ts b/server/entity/MediaRequest.ts index beb5d10a29..1038de9733 100644 --- a/server/entity/MediaRequest.ts +++ b/server/entity/MediaRequest.ts @@ -1190,44 +1190,34 @@ export class MediaRequest { try { const mediaType = this.type === MediaType.MOVIE ? 'Movie' : 'Series'; + const prefix = this.isAnime ? 'Anime ' : this.is4k ? '4K ' : ''; + let event: string | undefined; let notifyAdmin = true; let notifySystem = true; switch (type) { case Notification.MEDIA_APPROVED: - event = `${ - this.isAnime ? 'Anime ' : this.is4k ? '4K ' : '' - }${mediaType} Request Approved`; + event = `${prefix}${mediaType} Request Approved`; notifyAdmin = false; break; case Notification.MEDIA_DECLINED: - event = `${ - this.isAnime ? 'Anime ' : this.is4k ? '4K ' : '' - }${mediaType} Request Declined`; + event = `${prefix}${mediaType} Request Declined`; notifyAdmin = false; break; case Notification.MEDIA_PENDING: - event = `New ${ - this.isAnime ? 'Anime ' : this.is4k ? '4K ' : '' - }${mediaType} Request`; + event = `New ${prefix}${mediaType} Request`; break; case Notification.MEDIA_AUTO_REQUESTED: - event = `${ - this.isAnime ? 'Anime ' : this.is4k ? '4K ' : '' - }${mediaType} Request Automatically Submitted`; + event = `${prefix}${mediaType} Request Automatically Submitted`; notifyAdmin = false; notifySystem = false; break; case Notification.MEDIA_AUTO_APPROVED: - event = `${ - this.isAnime ? 'Anime ' : this.is4k ? '4K ' : '' - }${mediaType} Request Automatically Approved`; + event = `${prefix}${mediaType} Request Automatically Approved`; break; case Notification.MEDIA_FAILED: - event = `${ - this.isAnime ? 'Anime ' : this.is4k ? '4K ' : '' - }${mediaType} Request Failed`; + event = `${prefix}${mediaType} Request Failed`; break; } diff --git a/src/components/RequestModal/CollectionRequestModal.tsx b/src/components/RequestModal/CollectionRequestModal.tsx index 614a00daff..004ec78235 100644 --- a/src/components/RequestModal/CollectionRequestModal.tsx +++ b/src/components/RequestModal/CollectionRequestModal.tsx @@ -17,6 +17,8 @@ import { useCallback, useEffect, useState } from 'react'; import { defineMessages, useIntl } from 'react-intl'; import { useToasts } from 'react-toast-notifications'; import useSWR from 'swr'; +import { ANIME_KEYWORD_ID } from '@server/api/themoviedb/constants'; +import type { MovieDetails } from '@server/models/Movie'; const messages = defineMessages({ requestadmin: 'This request will be approved automatically.', @@ -184,11 +186,13 @@ const CollectionRequestModal = ({ let overrideParams = {}; if (requestOverrides) { overrideParams = { - serverId: requestOverrides.server, - profileId: requestOverrides.profile, - rootFolder: requestOverrides.folder, + // TODO: Disabled these overrides as they aren't configurable through the modal + // Only the user id is an option, the rest defaults to the default radarr instance + //serverId: requestOverrides.server, + //profileId: requestOverrides.profile, + //rootFolder: requestOverrides.folder, userId: requestOverrides.user?.id, - tags: requestOverrides.tags, + //tags: requestOverrides.tags, }; } @@ -196,10 +200,16 @@ const CollectionRequestModal = ({ ( data?.parts.filter((part) => selectedParts.includes(part.id)) ?? [] ).map(async (part) => { + const movieData = await axios.get(`/api/v1/movie/${part.id}`); + const isAnime = movieData.data.keywords.some( + (keyword) => keyword.id === ANIME_KEYWORD_ID + ); + await axios.post('/api/v1/request', { mediaId: part.id, mediaType: 'movie', is4k, + isAnime, ...overrideParams, }); })