@@ -130,6 +130,7 @@ function sliceArgv (argv) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function processArgv (argv) {
|
function processArgv (argv) {
|
||||||
|
var pathsToOpen = []
|
||||||
argv.forEach(function (arg) {
|
argv.forEach(function (arg) {
|
||||||
if (arg === '-n') {
|
if (arg === '-n') {
|
||||||
menu.showOpenSeedFiles()
|
menu.showOpenSeedFiles()
|
||||||
@@ -141,7 +142,15 @@ function processArgv (argv) {
|
|||||||
// Ignore OS X launchd "process serial number" argument
|
// Ignore OS X launchd "process serial number" argument
|
||||||
// More: https://github.com/feross/webtorrent-desktop/issues/214
|
// More: https://github.com/feross/webtorrent-desktop/issues/214
|
||||||
} else {
|
} else {
|
||||||
windows.main.send('dispatch', 'onOpen', arg)
|
pathsToOpen.push(arg)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
if (pathsToOpen.length > 0) openFilePaths(pathsToOpen)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert paths to {name, path, size} objects, then send to renderer process
|
||||||
|
// Opening files means either adding torrents, creating and seeding a torrent
|
||||||
|
// from files, or adding subtitles
|
||||||
|
function openFilePaths (paths) {
|
||||||
|
windows.main.send('dispatch', 'onOpen', paths)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -804,20 +804,38 @@ function startTorrentingSummary (torrentSummary) {
|
|||||||
// Shows the Create Torrent page with options to seed a given file or folder
|
// Shows the Create Torrent page with options to seed a given file or folder
|
||||||
function showCreateTorrent (files) {
|
function showCreateTorrent (files) {
|
||||||
if (Array.isArray(files)) {
|
if (Array.isArray(files)) {
|
||||||
state.location.go({
|
if (files.length === 0 || typeof files[0] !== 'string') {
|
||||||
url: 'create-torrent',
|
state.location.go({
|
||||||
files: files
|
url: 'create-torrent',
|
||||||
})
|
files: files
|
||||||
return
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
files = [files]
|
||||||
}
|
}
|
||||||
|
|
||||||
var fileOrFolder = files
|
findFilesRecursive(files, showCreateTorrent)
|
||||||
findFilesRecursive(fileOrFolder, showCreateTorrent)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Recursively finds {name, path, size} for all files in a folder
|
// Recursively finds {name, path, size} for all files in a folder
|
||||||
// Calls `cb` on success, calls `onError` on failure
|
// Calls `cb` on success, calls `onError` on failure
|
||||||
function findFilesRecursive (fileOrFolder, cb) {
|
function findFilesRecursive (paths, cb) {
|
||||||
|
if (paths.length > 1) {
|
||||||
|
var numComplete = 0
|
||||||
|
var ret = []
|
||||||
|
paths.forEach(function (path) {
|
||||||
|
findFilesRecursive([path], function (fileObjs) {
|
||||||
|
ret = ret.concat(fileObjs)
|
||||||
|
if (++numComplete === paths.length) {
|
||||||
|
cb(ret)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
var fileOrFolder = paths[0]
|
||||||
fs.stat(fileOrFolder, function (err, stat) {
|
fs.stat(fileOrFolder, function (err, stat) {
|
||||||
if (err) return onError(err)
|
if (err) return onError(err)
|
||||||
|
|
||||||
@@ -835,16 +853,8 @@ function findFilesRecursive (fileOrFolder, cb) {
|
|||||||
var folderPath = fileOrFolder
|
var folderPath = fileOrFolder
|
||||||
fs.readdir(folderPath, function (err, fileNames) {
|
fs.readdir(folderPath, function (err, fileNames) {
|
||||||
if (err) return onError(err)
|
if (err) return onError(err)
|
||||||
var numComplete = 0
|
var paths = fileNames.map((fileName) => path.join(folderPath, fileName))
|
||||||
var ret = []
|
findFilesRecursive(paths, cb)
|
||||||
fileNames.forEach(function (fileName) {
|
|
||||||
findFilesRecursive(path.join(folderPath, fileName), function (fileObjs) {
|
|
||||||
ret = ret.concat(fileObjs)
|
|
||||||
if (++numComplete === fileNames.length) {
|
|
||||||
cb(ret)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user