diff --git a/renderer/index.js b/renderer/index.js index 2779780c..f7e076a9 100644 --- a/renderer/index.js +++ b/renderer/index.js @@ -724,16 +724,16 @@ function torrentWarning (torrentKey, message) { } function torrentError (torrentKey, message) { - var torrentSummary = getTorrentSummary(torrentKey) + // TODO: WebTorrent needs semantic errors + if (message.startsWith('Cannot add duplicate torrent')) { + // Remove infohash from the message + message = 'Cannot add duplicate torrent' + } + onError(message) - // TODO: WebTorrent should have semantic errors - if (message.startsWith('There is already a swarm')) { - onError(new Error('Can\'t add duplicate torrent')) - } else if (!torrentSummary) { - onError(message) - } else { - console.log('error, stopping torrent %s (%s):\n\t%o', - torrentSummary.name, torrentSummary.infoHash, message) + var torrentSummary = getTorrentSummary(torrentKey) + if (torrentSummary) { + console.log('Pausing torrent %s due to error: %s', torrentSummary.infoHash, message) torrentSummary.status = 'paused' update() } diff --git a/renderer/webtorrent.js b/renderer/webtorrent.js index d90458fc..385b4b45 100644 --- a/renderer/webtorrent.js +++ b/renderer/webtorrent.js @@ -68,23 +68,14 @@ function init () { // See https://github.com/feross/webtorrent/blob/master/docs/api.md#clientaddtorrentid-opts-function-ontorrent-torrent- function startTorrenting (torrentKey, torrentID, path, fileModtimes) { console.log('starting torrent %s: %s', torrentKey, torrentID) - var torrent - try { - torrent = client.add(torrentID, { - path: path, - fileModtimes: fileModtimes - }) - } catch (err) { - return ipc.send('wt-error', torrentKey, err.message) - } - // If we add a duplicate magnet URI or infohash, WebTorrent returns the - // existing torrent object! (If we add a duplicate torrent file, it creates a - // new torrent object and raises an error later.) Workaround: - if (torrent.key) { - return ipc.send('wt-error', torrentKey, 'Can\'t add duplicate torrent') - } + + var torrent = client.add(torrentID, { + path: path, + fileModtimes: fileModtimes + }) torrent.key = torrentKey addTorrentEvents(torrent) + return torrent }