Ensure that only files belonging to torrent are deleted

This commit is contained in:
John Furrow
2017-06-07 21:52:54 -07:00
parent a0e6621873
commit 30a2448509
9 changed files with 214 additions and 103 deletions

View File

@@ -10,7 +10,6 @@ const clientResponseUtil = require('../util/clientResponseUtil');
const clientSettingsMap = require('../../shared/constants/clientSettingsMap');
const ClientRequest = require('./ClientRequest');
const formatUtil = require('../../shared/util/formatUtil');
const scgi = require('../util/scgi');
const TemporaryStorage = require('./TemporaryStorage');
const torrentFilePropsMap = require('../../shared/constants/torrentFilePropsMap');
const torrentPeerPropsMap = require('../../shared/constants/torrentPeerPropsMap');
@@ -78,43 +77,6 @@ var client = {
request.send();
},
deleteTorrents: (options, callback) => {
let filesToDelete = null;
let eraseTorrentsRequest = new ClientRequest();
eraseTorrentsRequest.removeTorrents({hashes: options.hashes});
eraseTorrentsRequest.onComplete((response, error) => {
if (options.deleteData) {
const torrents = torrentCollection.torrents;
options.hashes.forEach(hash => {
let fileToDelete = null;
const torrent = torrents[hash];
if (torrent.isMultiFile && torrent.directory != null) {
fileToDelete = torrent.directory;
} else if (torrent.directory != null && torrent.name != null) {
fileToDelete = path.join(torrent.directory, torrent.name);
}
if (fileToDelete != null) {
rimraf(fileToDelete, {disableGlob: true}, error => {
if (error) {
console.error(`Error deleting file: ${fileToDelete}\n${error}`);
}
});
}
});
}
torrentService.fetchTorrentList();
callback(response, error);
});
eraseTorrentsRequest.send();
},
downloadFiles(hash, files, res) {
try {
let selectedTorrent = null;