feat: show download/target paths for admin users
- Admin users see download path (SABnzbd storage / qBittorrent save_path) - Admin users see target path (Sonarr series folder / Radarr movie folder) - Paths displayed in monospace font at bottom of card details - Non-admin users unaffected (paths not sent in API response)
This commit is contained in:
@@ -304,7 +304,7 @@ router.get('/user-downloads', async (req, res) => {
|
||||
if (series) {
|
||||
const userTag = extractUserTag(series.tags, sonarrTagMap);
|
||||
if (userTag && (showAll || userTag.toLowerCase() === username)) {
|
||||
userDownloads.push({
|
||||
const dlObj = {
|
||||
type: 'series',
|
||||
title: nzbName,
|
||||
coverArt: getCoverArt(series),
|
||||
@@ -318,7 +318,12 @@ router.get('/user-downloads', async (req, res) => {
|
||||
seriesName: series.title,
|
||||
episodeInfo: sonarrMatch,
|
||||
userTag: userTag
|
||||
});
|
||||
};
|
||||
if (isAdmin) {
|
||||
dlObj.downloadPath = slot.storage || null;
|
||||
dlObj.targetPath = series.path || null;
|
||||
}
|
||||
userDownloads.push(dlObj);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -334,7 +339,7 @@ router.get('/user-downloads', async (req, res) => {
|
||||
if (movie) {
|
||||
const userTag = extractUserTag(movie.tags, radarrTagMap);
|
||||
if (userTag && (showAll || userTag.toLowerCase() === username)) {
|
||||
userDownloads.push({
|
||||
const dlObj = {
|
||||
type: 'movie',
|
||||
title: nzbName,
|
||||
coverArt: getCoverArt(movie),
|
||||
@@ -348,7 +353,12 @@ router.get('/user-downloads', async (req, res) => {
|
||||
movieName: movie.title,
|
||||
movieInfo: radarrMatch,
|
||||
userTag: userTag
|
||||
});
|
||||
};
|
||||
if (isAdmin) {
|
||||
dlObj.downloadPath = slot.storage || null;
|
||||
dlObj.targetPath = movie.path || null;
|
||||
}
|
||||
userDownloads.push(dlObj);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -381,7 +391,7 @@ router.get('/user-downloads', async (req, res) => {
|
||||
if (series) {
|
||||
const userTag = extractUserTag(series.tags, sonarrTagMap);
|
||||
if (userTag && (showAll || userTag.toLowerCase() === username)) {
|
||||
userDownloads.push({
|
||||
const dlObj = {
|
||||
type: 'series',
|
||||
title: nzbName,
|
||||
coverArt: getCoverArt(series),
|
||||
@@ -391,7 +401,12 @@ router.get('/user-downloads', async (req, res) => {
|
||||
seriesName: series.title,
|
||||
episodeInfo: sonarrMatch,
|
||||
userTag: userTag
|
||||
});
|
||||
};
|
||||
if (isAdmin) {
|
||||
dlObj.downloadPath = slot.storage || null;
|
||||
dlObj.targetPath = series.path || null;
|
||||
}
|
||||
userDownloads.push(dlObj);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -407,7 +422,7 @@ router.get('/user-downloads', async (req, res) => {
|
||||
if (movie) {
|
||||
const userTag = extractUserTag(movie.tags, radarrTagMap);
|
||||
if (userTag && (showAll || userTag.toLowerCase() === username)) {
|
||||
userDownloads.push({
|
||||
const dlObj = {
|
||||
type: 'movie',
|
||||
title: nzbName,
|
||||
coverArt: getCoverArt(movie),
|
||||
@@ -417,7 +432,12 @@ router.get('/user-downloads', async (req, res) => {
|
||||
movieName: movie.title,
|
||||
movieInfo: radarrMatch,
|
||||
userTag: userTag
|
||||
});
|
||||
};
|
||||
if (isAdmin) {
|
||||
dlObj.downloadPath = slot.storage || null;
|
||||
dlObj.targetPath = movie.path || null;
|
||||
}
|
||||
userDownloads.push(dlObj);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -476,6 +496,10 @@ router.get('/user-downloads', async (req, res) => {
|
||||
download.seriesName = series.title;
|
||||
download.episodeInfo = sonarrMatch;
|
||||
download.userTag = userTag;
|
||||
if (isAdmin) {
|
||||
download.downloadPath = download.savePath || null;
|
||||
download.targetPath = series.path || null;
|
||||
}
|
||||
userDownloads.push(download);
|
||||
continue; // Skip to next torrent
|
||||
}
|
||||
@@ -500,6 +524,10 @@ router.get('/user-downloads', async (req, res) => {
|
||||
download.movieName = movie.title;
|
||||
download.movieInfo = radarrMatch;
|
||||
download.userTag = userTag;
|
||||
if (isAdmin) {
|
||||
download.downloadPath = download.savePath || null;
|
||||
download.targetPath = movie.path || null;
|
||||
}
|
||||
userDownloads.push(download);
|
||||
continue; // Skip to next torrent
|
||||
}
|
||||
@@ -524,6 +552,10 @@ router.get('/user-downloads', async (req, res) => {
|
||||
download.seriesName = series.title;
|
||||
download.episodeInfo = sonarrHistoryMatch;
|
||||
download.userTag = userTag;
|
||||
if (isAdmin) {
|
||||
download.downloadPath = download.savePath || null;
|
||||
download.targetPath = series.path || null;
|
||||
}
|
||||
userDownloads.push(download);
|
||||
continue;
|
||||
}
|
||||
@@ -548,6 +580,10 @@ router.get('/user-downloads', async (req, res) => {
|
||||
download.movieName = movie.title;
|
||||
download.movieInfo = radarrHistoryMatch;
|
||||
download.userTag = userTag;
|
||||
if (isAdmin) {
|
||||
download.downloadPath = download.savePath || null;
|
||||
download.targetPath = movie.path || null;
|
||||
}
|
||||
userDownloads.push(download);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -198,6 +198,7 @@ function mapTorrentToDownload(torrent) {
|
||||
hash: torrent.hash,
|
||||
category: torrent.category,
|
||||
tags: torrent.tags,
|
||||
savePath: torrent.save_path || torrent.content_path || null,
|
||||
qbittorrent: true
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user