chore: bump version to 1.7.26 and update CHANGELOG and docs
Build and Push Docker Image / build (push) Successful in 1m25s
Docs Check / Markdown lint (push) Failing after 1m47s
Licence Check / Licence compatibility and copyright header verification (push) Successful in 2m12s
CI / Security audit (push) Successful in 2m54s
CI / Swagger Validation & Coverage (push) Successful in 3m7s
Docs Check / Mermaid diagram parse check (push) Successful in 3m18s
CI / Tests & coverage (push) Successful in 3m28s
Build and Push Docker Image / build (push) Successful in 1m25s
Docs Check / Markdown lint (push) Failing after 1m47s
Licence Check / Licence compatibility and copyright header verification (push) Successful in 2m12s
CI / Security audit (push) Successful in 2m54s
CI / Swagger Validation & Coverage (push) Successful in 3m7s
Docs Check / Mermaid diagram parse check (push) Successful in 3m18s
CI / Tests & coverage (push) Successful in 3m28s
This commit is contained in:
@@ -80,7 +80,73 @@ function filterRequestsByUser(requests, username, showAll) {
|
||||
});
|
||||
}
|
||||
|
||||
async function decorateRequestsWithArrLinks(requests, isAdmin) {
|
||||
if (!isAdmin || !Array.isArray(requests)) return;
|
||||
|
||||
const arrRetrieverRegistry = require('./arrRetrievers');
|
||||
await arrRetrieverRegistry.initialize();
|
||||
|
||||
const sonarrRetrievers = arrRetrieverRegistry.getRetrieversByType('sonarr') || [];
|
||||
const radarrRetrievers = arrRetrieverRegistry.getRetrieversByType('radarr') || [];
|
||||
|
||||
const [sonarrData, radarrData] = await Promise.all([
|
||||
Promise.all(sonarrRetrievers.map(async r => {
|
||||
try {
|
||||
const response = await require('axios').get(`${r.url}/api/v3/series`, {
|
||||
headers: { 'X-Api-Key': r.apiKey }
|
||||
});
|
||||
return { instance: r, series: response.data || [] };
|
||||
} catch {
|
||||
return { instance: r, series: [] };
|
||||
}
|
||||
})),
|
||||
Promise.all(radarrRetrievers.map(async r => {
|
||||
try {
|
||||
const response = await require('axios').get(`${r.url}/api/v3/movie`, {
|
||||
headers: { 'X-Api-Key': r.apiKey }
|
||||
});
|
||||
return { instance: r, movies: response.data || [] };
|
||||
} catch {
|
||||
return { instance: r, movies: [] };
|
||||
}
|
||||
}))
|
||||
]);
|
||||
|
||||
requests.forEach(req => {
|
||||
// Determine if it's TV or Movie. Often `mediaType` is set, or `type === 'Tv'`
|
||||
// Fallback to checking for TV specific IDs.
|
||||
const isTv = req.mediaType === 'tv' || req.type === 'Tv' || req.tvDbId || req.theTvDbId;
|
||||
|
||||
if (isTv) {
|
||||
const tvdbId = req.theTvDbId || req.theMovieDbId || req.theTvdbId || req.theTmdbId || req.TvDbId || req.TheTvDbId;
|
||||
if (!tvdbId) return;
|
||||
|
||||
for (const instData of sonarrData) {
|
||||
const match = instData.series.find(s => s && (s.tvdbId === parseInt(tvdbId, 10) || s.tmdbId === parseInt(tvdbId, 10)));
|
||||
if (match && match.titleSlug) {
|
||||
req.arrLink = `${instData.instance.url}/series/${match.titleSlug}`;
|
||||
req.arrType = 'sonarr';
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
const tmdbId = req.theMovieDbId || req.imdbId || req.theTmdbId || req.TheMovieDbId || req.ImdbId;
|
||||
if (!tmdbId) return;
|
||||
|
||||
for (const instData of radarrData) {
|
||||
const match = instData.movies.find(m => m && (m.tmdbId === parseInt(tmdbId, 10) || m.imdbId === tmdbId));
|
||||
if (match && match.titleSlug) {
|
||||
req.arrLink = `${instData.instance.url}/movie/${match.titleSlug}`;
|
||||
req.arrType = 'radarr';
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
extractRequestedUser,
|
||||
filterRequestsByUser
|
||||
filterRequestsByUser,
|
||||
decorateRequestsWithArrLinks
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user