🐛Allow multiple of the same torrent client

Allows multiple of the same type of torrent client
This commit is contained in:
Larvey
2022-06-20 17:10:54 -04:00
parent 91a249d953
commit d654fb39e5

View File

@@ -9,50 +9,56 @@ async function Post(req: NextApiRequest, res: NextApiResponse) {
// Get the type of service from the request url // Get the type of service from the request url
const torrents: NormalizedTorrent[] = []; const torrents: NormalizedTorrent[] = [];
const { config }: { config: Config } = req.body; const { config }: { config: Config } = req.body;
const qBittorrentService = config.services const qBittorrentServices = config.services
.filter((service) => service.type === 'qBittorrent') .filter((service) => service.type === 'qBittorrent');
.at(0);
const delugeService = config.services.filter((service) => service.type === 'Deluge').at(0); const delugeServices = config.services.filter((service) => service.type === 'Deluge');
const transmissionService = config.services const transmissionServices = config.services
.filter((service) => service.type === 'Transmission') .filter((service) => service.type === 'Transmission');
.at(0);
if (!qBittorrentService && !delugeService && !transmissionService) { if (!qBittorrentServices && !delugeServices && !transmissionServices) {
return res.status(500).json({ return res.status(500).json({
statusCode: 500, statusCode: 500,
message: 'Missing service', message: 'Missing services',
}); });
} }
if (qBittorrentService) { if (qBittorrentServices) {
for (const service of qBittorrentServices) {
torrents.push( torrents.push(
...( ...(
await new QBittorrent({ await new QBittorrent({
baseUrl: qBittorrentService.url, baseUrl: service.url,
username: qBittorrentService.username, username: service.username,
password: qBittorrentService.password, password: service.password,
}).getAllData() }).getAllData()
).torrents ).torrents
); );
} }
if (delugeService) { }
if (delugeServices) {
for (const service of delugeServices) {
torrents.push( torrents.push(
...( ...(
await new Deluge({ await new Deluge({
baseUrl: delugeService.url, baseUrl: service.url,
password: 'password' in delugeService ? delugeService.password : '', password: 'password' in service ? service.password : '',
}).getAllData()
).torrents
)
}
}
if (transmissionServices) {
for (const service of transmissionServices) {
torrents.push(
...(
await new Transmission({
baseUrl: service.url,
username: service.username,
password: 'password' in service ? service.password : '',
}).getAllData() }).getAllData()
).torrents ).torrents
); );
} }
if (transmissionService) {
torrents.push(
...(
await new Transmission({
baseUrl: transmissionService.url,
username: transmissionService.username,
password: 'password' in transmissionService ? transmissionService.password : '',
}).getAllData()
).torrents
);
} }
res.status(200).json(torrents); res.status(200).json(torrents);
} }