Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
- var Client = require("ftp");
- var async = require("async");
- var fs = require("fs");
- var c = new Client();
- var start_dir = "/XVID-DE/";
- var index_dir = [];
- var dl_dir = "C:\\Users\\upper\\Desktop\\MOVIES\\";
- c.on('ready', function() {
- c.list(start_dir, function(err, list) {
- if (err) throw err;
- var _FILES = [];
- var list = [list[8]];
- async.forEachOfLimit(list, 1, function(value, key, cb) {
- var name = value.name;
- if (name == "." || name == "..")
- return cb();
- var subDir = start_dir + name;
- c.list(subDir, function(err, list1) {
- if (err)
- return cb(err);
- var subDirLength = list1.length;
- var complete = false;
- var svfExist = false;
- var isMovieFile = false;
- var imdb_id = false;
- var movieFile = false;
- var nfoFile = false;
- var rarArchive = [];
- for (var i = 0; i < subDirLength; i++) {
- var _name = list1[i].name.toLowerCase();
- if (isset(_name, ".sfv")) {
- svfExist = true;
- }
- if (isset(_name, "complete") && isset(_name, "100")) {
- complete = true;
- }
- if (isset(_name, ".avi") || isset(_name, ".mov") || isset(_name, ".mkv")) {
- isMovieFile = true;
- movieFile = subDir + "/" + list1[i].name;
- }
- if (isset(_name, ".nfo")) {
- nfoFile = subDir + "/" + list1[i].name;
- }
- if (/(\.r\d*)/.test(_name) || isset(_name, ".rar")) {
- rarArchive.push(subDir + "/" + list1[i].name);
- }
- }
- var statement = false;
- if (isMovieFile && nfoFile) {
- statement = true;
- console.log(movieFile);
- c.get(nfoFile, function(err, stream) {
- console.log("_GET_NFO");
- var string = ''
- stream.on('data', function(buffer) {
- var part = buffer.toString();
- string += part;
- });
- stream.on('end', function() {
- var imdb = string.match(/\/(tt\d*)\//);
- if (imdb != null || typeof imdb[1] != "undefined") {
- var imdb_id = imdb[1];
- var subRlsFolder = dl_dir + name.trim()
- fs.mkdir(subRlsFolder, function(err) {
- var __name = movieFile.split("/");
- var subName = __name[__name.length - 1];
- console.time("SINGLE_FILE_DL");
- c.get(movieFile, function(err, stream) {
- if (err) throw err;
- stream.once('close', function() {
- console.timeEnd("SINGLE_FILE_DL");
- cb();
- console.log(subName + " DONE")
- });
- stream.pipe(fs.createWriteStream(subRlsFolder + "\\" + subName));
- });
- });
- } else {
- cb();
- }
- });
- });
- }
- if (complete && svfExist && nfoFile) {
- statement = true;
- console.log("COMPLETE");
- console.log(nfoFile);
- c.get(nfoFile, function(err, stream) {
- console.log("_GET_NFO");
- var string = ''
- stream.on('data', function(buffer) {
- var part = buffer.toString();
- string += part;
- });
- stream.on('end', function() {
- var imdb = string.match(/\/(tt\d*)\//);
- if (imdb != null || typeof imdb[1] != "undefined") {
- var imdb_id = imdb[1];
- _FILES = {
- rlsName: name,
- isSingleFile: movieFile,
- archive: rarArchive,
- nfoFile: nfoFile,
- imdb: imdb_id
- };
- var subRlsFolder = dl_dir + _FILES.rlsName.trim()
- fs.mkdir(subRlsFolder, function(err) {
- if (err)
- return cb("mkdir do not work");
- console.time("dbsave");
- async.forEachOfLimit(_FILES.archive, 4, function(val, key, callback) {
- var __name = val.split("/");
- var subName = __name[__name.length - 1];
- if (key % 4 == 0) {
- c.get(val, function(err, stream) {
- if (err) throw err;
- stream.once('close', function() {
- callback();
- console.log(subName + " DONE")
- });
- stream.pipe(fs.createWriteStream(subRlsFolder + "\\" + subName));
- });
- } else {
- var cl = new Client();
- cl.on('ready', function() {
- cl.get(val, function(err, stream) {
- if (err) throw err;
- stream.once('close', function() {
- cl.end();
- callback();
- console.log(subName + " DONE")
- });
- stream.pipe(fs.createWriteStream(subRlsFolder + "\\" + subName));
- });
- });
- cl.connect(conObj);
- }
- }, function(err) {
- console.log("WE ARE DONE");
- console.timeEnd("dbsave");
- return cb();
- });
- });
- } else {
- cb("NO_IMDB");
- }
- });
- });
- }
- if (!statement) {
- cb();
- }
- });
- }, function(err) {
- console.log("DAT FINAL CALLBACK");
- if (err) {
- return console.log(err);
- }
- c.end();
- console.log("PENIS");
- });
- });
- });
- function isset(val, check) {
- if (val.indexOf(check) > -1)
- return true;
- return false;
- }
- var conObj = {
- secure: true,
- host: "IP.AD.RE.SS",
- port: PORT,
- user: "username,
- password: pass
- };
- c.connect(conObj);
- function checkSubdir(dir, c, callback) {
- c.list(dir, function(err, list) {
- var subDirLength = list.length;
- var toDl = false;
- for (var i = 0; i < subDirLength; i++) {
- if (list[i].name.toLowerCase().indexOf(".sfv") > -1)
- toDl = true;
- }
- callback(dir, toDl);
- });
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement