adding script to parse torrent folder and update db - seedlinux - Torrent indexing tool opensource torrents with share ratio's etc.
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
---
(DIR) commit 1a5521dad4623d081a795545b7aec954d4f30904
(DIR) parent 4212fe0f4b92c5c56ee4be03844479e06558d9e4
(HTM) Author: Jay Scott <me@jay.scot>
Date: Tue, 4 Jul 2017 15:10:45 +0100
adding script to parse torrent folder and update db
Diffstat:
A bin/parse | 81 ++++++++++++++++++++++++++++++
M package.json | 1 -
M views/layout.pug | 1 -
3 files changed, 81 insertions(+), 2 deletions(-)
---
(DIR) diff --git a/bin/parse b/bin/parse
@@ -0,0 +1,80 @@
+#!/usr/bin/env node
+'use strict';
+
+console.log('Parsing torrent folder');
+
+const async = require('async');
+const mongoose = require('mongoose');
+const mongoDB = process.env.DB_URI;
+const parseTorrent = require('parse-torrent');
+const Torrent = require('../models/torrent_model');
+const fs = require('fs');
+
+const torrentFolder = './data/torrents';
+
+mongoose.connect(mongoDB);
+var db = mongoose.connection;
+db.on('error', console.error.bind(console, 'MongoDB connection error:'));
+
+function saveTorrent(query, data, callback) {
+ Torrent.findOneAndUpdate(query, data, {upsert: true},function(err) {
+ if (err) {
+ callback(err, null);
+ } else {
+ callback(null);
+ }
+ });
+}
+
+fs.readdir(torrentFolder, function (err, files) {
+ if (err) console.log(err);
+
+ async.eachSeries(files, function(file, callback) {
+ async.waterfall([
+ function(callback){
+
+ console.log("Parsing - " + file);
+
+ let tFile = fs.readFileSync(torrentFolder + '/' + file);
+ let tData = parseTorrent(tFile);
+
+ let tMagnet = parseTorrent.toMagnetURI({
+ infoHash: tData.infoHash
+ });
+
+ let newData = {
+ name: tData.name,
+ hash: tData.infoHash,
+ created: tData.created,
+ comment: tData.comment,
+ announce: tData.announce,
+ files: tData.files,
+ magneturi: tMagnet,
+ };
+
+ callback(null, newData);
+ },
+ function(arg1, callback){
+ saveTorrent({hash: arg1.hash }, arg1, function(err, data) {
+ if (err) callback(true);
+
+ callback(null, data);
+ });
+ }], function (err) {
+
+ if (err)
+ throw err;
+
+ callback();
+ }
+ );
+ }, function(err) {
+ if( err ) {
+ console.log('A torrent failed to process');
+ process.exit(1);
+ } else {
+ console.log('All torrents have been processed successfully');
+ process.exit();
+ }
+ });
+});
+\ No newline at end of file
(DIR) diff --git a/package.json b/package.json
@@ -9,7 +9,6 @@
"start": "DEBUG=seedlinux:* node ./bin/www"
},
"dependencies": {
- "app-root-path": "^2.0.1",
"async": "^2.5.0",
"body-parser": "~1.17.1",
"cookie-parser": "~1.4.3",
(DIR) diff --git a/views/layout.pug b/views/layout.pug
@@ -12,7 +12,6 @@ html
img.ui.centered.medium.image(src='/images/logo.png')
.sub.ui.centered.header= "Start Contributing to Open Source!"
-
.ui.hidden.divider
.ui.container