Server: update to webseed implementation (tests, lint...)
authorChocobozzz <florian.bigard@gmail.com>
Fri, 7 Oct 2016 09:08:55 +0000 (11:08 +0200)
committerChocobozzz <florian.bigard@gmail.com>
Fri, 7 Oct 2016 11:59:06 +0000 (13:59 +0200)
package.json
server/initializers/constants.js
server/models/video.js
server/tests/api/multiple-pods.js
server/tests/api/single-pod.js
server/tests/api/users.js

index 59c7a4332cae749448fe5e328458dbcb65d2f4ef..909c181768eb73893ba58794c7e617fbba128092 100644 (file)
@@ -69,7 +69,8 @@
     "commander": "^2.9.0",
     "mocha": "^3.0.1",
     "standard": "^8.0.0",
-    "supertest": "^2.0.0"
+    "supertest": "^2.0.0",
+    "webtorrent": "^0.97.0"
   },
   "standard": {
     "ignore": [
index be2e3e9439bcf9bc6d8354a8ded910968b21814d..75065fe7270e2262b9afdc8a7aea588db799c027 100644 (file)
@@ -42,7 +42,8 @@ const CONFIG = {
     CERT_DIR: path.join(__dirname, '..', '..', config.get('storage.certs')),
     LOG_DIR: path.join(__dirname, '..', '..', config.get('storage.logs')),
     UPLOAD_DIR: path.join(__dirname, '..', '..', config.get('storage.uploads')),
-    THUMBNAILS_DIR: path.join(__dirname, '..', '..', config.get('storage.thumbnails'))
+    THUMBNAILS_DIR: path.join(__dirname, '..', '..', config.get('storage.thumbnails')),
+    TORRENTS_DIR: path.join(__dirname, '..', '..', config.get('storage.torrents'))
   },
   WEBSERVER: {
     SCHEME: config.get('webserver.https') === true ? 'https' : 'http',
index 7d073cffa97cb33b43b03246909f7a6fe4e58b53..9272bea6dc99c7886f57256df66c5226f56cb63b 100644 (file)
@@ -19,9 +19,6 @@ const utils = require('../helpers/utils')
 const http = config.get('webserver.https') === true ? 'https' : 'http'
 const host = config.get('webserver.host')
 const port = config.get('webserver.port')
-const uploadsDir = pathUtils.join(__dirname, '..', '..', config.get('storage.uploads'))
-const thumbnailsDir = pathUtils.join(__dirname, '..', '..', config.get('storage.thumbnails'))
-const torrentsDir = pathUtils.join(__dirname, '..', '..', config.get('storage.torrents'))
 const webseedBaseUrl = http + '://' + host + ':' + port + constants.STATIC_PATHS.WEBSEED
 
 // ---------------------------------------------------------------------------
@@ -112,7 +109,7 @@ VideoSchema.pre('save', function (next) {
         createTorrent(videoPath, { announceList: [ [ 'ws://' + host + ':' + port + '/tracker/socket' ] ], urlList: [ webseedBaseUrl + video.filename ] }, function (err, torrent) {
           if (err) return callback(err)
 
-          fs.writeFile(torrentsDir + video.filename + '.torrent', torrent, function (err) {
+          fs.writeFile(constants.CONFIG.STORAGE.TORRENTS_DIR + video.filename + '.torrent', torrent, function (err) {
             if (err) return callback(err)
 
             const parsedTorrent = parseTorrent(torrent)
@@ -263,7 +260,7 @@ function removeFile (video, callback) {
 
 // Maybe the torrent is not seeded, but we catch the error to don't stop the removing process
 function removeTorrent (video, callback) {
-  fs.unlink(torrentsDir + video.filename + '.torrent')
+  fs.unlink(constants.CONFIG.STORAGE.TORRENTS_DIR + video.filename + '.torrent', callback)
 }
 
 function createThumbnail (videoPath, callback) {
index b86f88c22643965bd17bc8208072f41f982583af..87fab791c39cc6a9e3cae2cfad1ff25812e9328a 100644 (file)
@@ -3,16 +3,14 @@
 const chai = require('chai')
 const each = require('async/each')
 const expect = chai.expect
-const pathUtils = require('path')
 const series = require('async/series')
+const webtorrent = new (require('webtorrent'))()
 
 const loginUtils = require('../utils/login')
 const miscsUtils = require('../utils/miscs')
 const podsUtils = require('../utils/pods')
 const serversUtils = require('../utils/servers')
 const videosUtils = require('../utils/videos')
-const webtorrent = require(pathUtils.join(__dirname, '../../lib/webtorrent'))
-webtorrent.silent = true
 
 describe('Test multiple pods', function () {
   let servers = []
@@ -53,9 +51,6 @@ describe('Test multiple pods', function () {
       function (next) {
         const server = servers[0]
         podsUtils.makeFriends(server.url, server.accessToken, next)
-      },
-      function (next) {
-        webtorrent.create({ host: 'client', port: '1' }, next)
       }
     ], done)
   })
@@ -415,7 +410,6 @@ describe('Test multiple pods', function () {
     servers.forEach(function (server) {
       process.kill(-server.app.pid)
     })
-    process.kill(-webtorrent.app.pid)
 
     // Keep the logs if the test failed
     if (this.ok) {
index bdaaee46c9c439e02aaae807bcacb28f6e549a7f..623a1a6a3733b16f188213b4055672c08fcf36ce 100644 (file)
@@ -7,13 +7,12 @@ const fs = require('fs')
 const keyBy = require('lodash/keyBy')
 const pathUtils = require('path')
 const series = require('async/series')
+const webtorrent = new (require('webtorrent'))()
 
 const loginUtils = require('../utils/login')
 const miscsUtils = require('../utils/miscs')
 const serversUtils = require('../utils/servers')
 const videosUtils = require('../utils/videos')
-const webtorrent = require(pathUtils.join(__dirname, '../../lib/webtorrent'))
-webtorrent.silent = true
 
 describe('Test a single pod', function () {
   let server = null
@@ -39,9 +38,6 @@ describe('Test a single pod', function () {
           server.accessToken = token
           next()
         })
-      },
-      function (next) {
-        webtorrent.create({ host: 'client', port: '1' }, next)
       }
     ], done)
   })
@@ -496,7 +492,6 @@ describe('Test a single pod', function () {
 
   after(function (done) {
     process.kill(-server.app.pid)
-    process.kill(-webtorrent.app.pid)
 
     // Keep the logs if the test failed
     if (this.ok) {
index c6c892bf279c1a264197bfb1392d0c07db55e908..94267f104e82bc202bc4c570f06f367b5a0345e0 100644 (file)
@@ -2,7 +2,6 @@
 
 const chai = require('chai')
 const expect = chai.expect
-const pathUtils = require('path')
 const series = require('async/series')
 
 const loginUtils = require('../utils/login')
@@ -10,8 +9,6 @@ const podsUtils = require('../utils/pods')
 const serversUtils = require('../utils/servers')
 const usersUtils = require('../utils/users')
 const videosUtils = require('../utils/videos')
-const webtorrent = require(pathUtils.join(__dirname, '../../lib/webtorrent'))
-webtorrent.silent = true
 
 describe('Test users', function () {
   let server = null