Transfers’ta tamamlanan torrentleri sadece listeden kaldır, eksik olanları diskten de temizle.
This commit is contained in:
@@ -397,23 +397,34 @@ app.delete("/api/torrents/:hash", requireAuth, (req, res) => {
|
||||
if (!entry) return res.status(404).json({ error: "torrent bulunamadı" });
|
||||
|
||||
const { torrent, savePath } = entry;
|
||||
const isComplete = torrent?.done || (torrent?.progress ?? 0) >= 1;
|
||||
const rootFolder = savePath ? path.basename(savePath) : null;
|
||||
|
||||
torrent.destroy(() => {
|
||||
torrents.delete(req.params.hash);
|
||||
const rootFolder = savePath ? path.basename(savePath) : null;
|
||||
if (savePath && fs.existsSync(savePath)) {
|
||||
try {
|
||||
fs.rmSync(savePath, { recursive: true, force: true });
|
||||
console.log(`🗑️ ${savePath} klasörü silindi`);
|
||||
} catch (err) {
|
||||
console.warn(`⚠️ ${savePath} silinemedi:`, err.message);
|
||||
if (!isComplete) {
|
||||
if (savePath && fs.existsSync(savePath)) {
|
||||
try {
|
||||
fs.rmSync(savePath, { recursive: true, force: true });
|
||||
console.log(`🗑️ ${savePath} klasörü silindi`);
|
||||
} catch (err) {
|
||||
console.warn(`⚠️ ${savePath} silinemedi:`, err.message);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (rootFolder) {
|
||||
removeThumbnailsForPath(rootFolder);
|
||||
broadcastFileUpdate(rootFolder);
|
||||
if (rootFolder) {
|
||||
removeThumbnailsForPath(rootFolder);
|
||||
broadcastFileUpdate(rootFolder);
|
||||
}
|
||||
} else {
|
||||
console.log(
|
||||
`ℹ️ ${req.params.hash} torrent'i tamamlandığı için yalnızca Transfers listesinden kaldırıldı; dosyalar tutuldu.`
|
||||
);
|
||||
}
|
||||
broadcastSnapshot();
|
||||
res.json({ ok: true });
|
||||
res.json({
|
||||
ok: true,
|
||||
filesRemoved: !isComplete
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user