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(() => {
// Filter only sonarr and radarr services
// Get the url and apiKey for all Sonarr and Radarr services
sonarrServices.map((service) =>
getMedias(service, 'sonarr').then((res) => {
setSonarrMedias([...sonarrMedias, ...res.data]);
})
);
radarrServices.map((service) =>
getMedias(service, 'radarr').then((res) => {
setRadarrMedias([...radarrMedias, ...res.data]);
})
);
lidarrServices.map((service) =>
getMedias(service, 'lidarr').then((res) => {
setLidarrMedias([...lidarrMedias, ...res.data]);
})
);
readarrServices.map((service) =>
getMedias(service, 'readarr').then((res) => {
setReadarrMedias([...readarrMedias, ...res.data]);
})
);
// Create each Sonarr service and get the medias
const currentSonarrMedias: any[] = [...sonarrMedias];
Promise.all(
sonarrServices.map((service) =>
getMedias(service, 'sonarr').then((res) => {
currentSonarrMedias.push(...res.data);
})
)
).then(() => {
setSonarrMedias(currentSonarrMedias);
});
const currentRadarrMedias: any[] = [...radarrMedias];
Promise.all(
radarrServices.map((service) =>
getMedias(service, 'radarr').then((res) => {
currentRadarrMedias.push(...res.data);
})
)
).then(() => {
setRadarrMedias(currentRadarrMedias);
});
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]);
return (