Add support for multiple Arr services

In the calendar, you can now have 2 separate Sonarr or Radarr instances
This commit is contained in:
ajnart
2022-06-06 23:10:53 +02:00
parent e2f59383d6
commit 6fd23cf6a0

View File

@@ -41,29 +41,47 @@ export default function CalendarComponent(props: any) {
} }
useEffect(() => { useEffect(() => {
// Filter only sonarr and radarr services // Create each Sonarr service and get the medias
const currentSonarrMedias: any[] = [...sonarrMedias];
// Get the url and apiKey for all Sonarr and Radarr services Promise.all(
sonarrServices.map((service) => sonarrServices.map((service) =>
getMedias(service, 'sonarr').then((res) => { getMedias(service, 'sonarr').then((res) => {
setSonarrMedias([...sonarrMedias, ...res.data]); currentSonarrMedias.push(...res.data);
}) })
); )
radarrServices.map((service) => ).then(() => {
getMedias(service, 'radarr').then((res) => { setSonarrMedias(currentSonarrMedias);
setRadarrMedias([...radarrMedias, ...res.data]); });
}) const currentRadarrMedias: any[] = [...radarrMedias];
); Promise.all(
lidarrServices.map((service) => radarrServices.map((service) =>
getMedias(service, 'lidarr').then((res) => { getMedias(service, 'radarr').then((res) => {
setLidarrMedias([...lidarrMedias, ...res.data]); currentRadarrMedias.push(...res.data);
}) })
); )
readarrServices.map((service) => ).then(() => {
getMedias(service, 'readarr').then((res) => { setRadarrMedias(currentRadarrMedias);
setReadarrMedias([...readarrMedias, ...res.data]); });
}) const currentLidarrMedias: any[] = [...lidarrMedias];
); Promise.all(
lidarrServices.map((service) =>
getMedias(service, 'lidarr').then((res) => {
currentLidarrMedias.push(...res.data);
})
)
).then(() => {
setLidarrMedias(currentLidarrMedias);
});
const currentReadarrMedias: any[] = [...readarrMedias];
Promise.all(
readarrServices.map((service) =>
getMedias(service, 'readarr').then((res) => {
currentReadarrMedias.push(...res.data);
})
)
).then(() => {
setReadarrMedias(currentReadarrMedias);
});
}, [config.services]); }, [config.services]);
return ( return (