Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/webtorrent/webtorrent.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimba Zhang <solderzzc@gmail.com>2015-07-30 01:07:22 +0300
committerSimba Zhang <solderzzc@gmail.com>2015-07-30 01:11:21 +0300
commit45c3250d132b4a680a103a3c86cf5e83b0b65ef4 (patch)
tree2ee408a2ab9b435dfe16b79d4440cd973db6a8c9 /bin/cmd.js
parent00786d0ffcc9b0756f02f2e80059f2ce46d9f38e (diff)
Added command line hook scripts(done/exit).
Give a chance for the programs use webtorrent cli to run scripts when download done or exit.
Diffstat (limited to 'bin/cmd.js')
-rwxr-xr-xbin/cmd.js49
1 files changed, 49 insertions, 0 deletions
diff --git a/bin/cmd.js b/bin/cmd.js
index f70a93e..643d776 100755
--- a/bin/cmd.js
+++ b/bin/cmd.js
@@ -45,6 +45,8 @@ var argv = minimist(process.argv.slice(2), {
i: 'index',
o: 'out',
q: 'quiet',
+ d: 'done',
+ e: 'exit',
h: 'help',
v: 'version'
},
@@ -93,6 +95,30 @@ if (argv.subtitles) {
OMX_EXEC += ' --subtitles ' + argv.subtitles
}
+function checkPermission(filename){
+ try {
+ var stats = fs.lstatSync(filename)
+ if (!stats.isFile()) {
+ errorAndExit("Your script "+ filename +" is not exist")
+ }
+ // check if the script has executable permission
+ if(!(1 & parseInt ((stats.mode & parseInt ("777", 8)).toString (8)[0]))){
+ errorAndExit(filename+" don't have executable permission")
+ }
+ return fs.realpathSync(filename)
+ }
+ catch (err) {
+ errorAndExit(err)
+ }
+}
+
+if (argv.done) {
+ var doneScript = checkPermission(argv.done)
+}
+if (argv.exit) {
+ var exitScript = checkPermission(argv.exit)
+}
+
playerName = argv.airplay ? 'Airplay'
: argv.chromecast ? 'Chromecast'
: argv.xbmc ? 'XBMC'
@@ -172,6 +198,8 @@ Options (all):
-p, --port [number] change the http port [default: 8000]
-b, --blocklist [path] load blocklist file/http url
-t, --subtitles [file] load subtitles file
+ -d, --done [script] run script after download done
+ -e, --exit [script] run script during exiting
-q, --quiet don't show UI on stdout
-v, --version print the current version
--verbose show detailed torrent protocol info
@@ -584,8 +612,28 @@ function drawTorrent (torrent) {
clivas.flush(true)
}
}
+function getTorrentInfo(){
+ var params = []
+ if (client){
+ var torrent = client.torrents[0]
+ if (torrent){
+ var torrentFilename=path.join(torrent.storage.path,torrent.infoHash)+'.torrent'
+
+ try {
+ fs.writeFileSync(torrentFilename, torrent.torrentFile)
+ } catch(err){
+ torrentFilename = ""
+ }
+ params.push(torrentFilename)
+ params.push(path.join(torrent.storage.path,torrent.name))
+ params.push(torrent.magnetURI)
+ }
+ }
+ return params
+}
function torrentDone () {
+ if (doneScript) cp.execFile(doneScript, getTorrentInfo()).unref()
if (!playerName && !serving && argv.out) gracefulExit()
}
@@ -604,6 +652,7 @@ function gracefulExit () {
// destroying can take a while, so print a message to the user
clivas.line('\n{green:webtorrent is gracefully exiting...}')
+ if (exitScript) cp.execFile(exitScript, getTorrentInfo()).unref()
client.destroy(function (err) {
if (err) return errorAndExit(err)