mirror of
https://github.com/taobataoma/meanTorrent.git
synced 2026-01-22 07:12:31 +01:00
205 lines
5.4 KiB
JavaScript
205 lines
5.4 KiB
JavaScript
'use strict';
|
|
|
|
var path = require('path'),
|
|
fs = require('fs'),
|
|
config = require(path.resolve('./config/config'));
|
|
|
|
module.exports.imageFileFilter = function (req, file, callback) {
|
|
if (file.mimetype !== 'image/png' && file.mimetype !== 'image/jpg' && file.mimetype !== 'image/jpeg' && file.mimetype !== 'image/gif' && file.mimetype !== 'image/bmp') {
|
|
var err = new Error();
|
|
err.code = 'UNSUPPORTED_MEDIA_TYPE';
|
|
return callback(err, false);
|
|
}
|
|
callback(null, true);
|
|
};
|
|
|
|
module.exports.torrentFileFilter = function (req, file, callback) {
|
|
var ext = file.originalname.replace(/^.+\./, '');
|
|
if (file.mimetype !== 'application/x-bittorrent' && ext !== 'torrent') {
|
|
var err = new Error();
|
|
err.code = 'UNSUPPORTED_MEDIA_TYPE';
|
|
return callback(err, false);
|
|
}
|
|
callback(null, true);
|
|
};
|
|
|
|
module.exports.subtitleFileFilter = function (req, file, callback) {
|
|
var ext = file.originalname.replace(/^.+\./, '');
|
|
if (ext !== 'srt' && ext !== 'ass' && ext !== 'rar' && ext !== 'zip' && ext !== '7z') {
|
|
var err = new Error();
|
|
err.code = 'UNSUPPORTED_MEDIA_TYPE';
|
|
return callback(err, false);
|
|
}
|
|
callback(null, true);
|
|
};
|
|
|
|
module.exports.createUploadFilename = function (req, file, cb) {
|
|
//var regex = new RegExp(',', 'g');
|
|
//var filename = file.originalname.replace(regex, ' ');
|
|
var RexStr = /\(|\)|\[|\]|\,/g;
|
|
var filename = file.originalname.replace(RexStr, function (MatchStr) {
|
|
switch (MatchStr) {
|
|
case '(':
|
|
return '<';
|
|
case ')':
|
|
return '>';
|
|
case '[':
|
|
return '{';
|
|
case ']':
|
|
return '}';
|
|
case ',':
|
|
return ' ';
|
|
default:
|
|
break;
|
|
}
|
|
});
|
|
|
|
if (fs.existsSync(config.uploads.torrent.file.temp + filename)) {
|
|
fs.unlinkSync(config.uploads.torrent.file.temp + filename);
|
|
}
|
|
|
|
if (fs.existsSync(config.uploads.torrent.file.dest + filename)) {
|
|
var err = new Error();
|
|
err.code = 'FILE_ALREADY_EXISTS';
|
|
cb(err, null);
|
|
} else {
|
|
cb(null, filename);
|
|
}
|
|
};
|
|
|
|
module.exports.getUploadDestination = function (req, file, cb) {
|
|
cb(null, config.uploads.torrent.file.temp);
|
|
};
|
|
|
|
module.exports.createUploadAttachFilename = function (req, file, cb) {
|
|
var RexStr = /\(|\)|\[|\]|\,/g;
|
|
var filename = file.originalname.replace(RexStr, function (MatchStr) {
|
|
switch (MatchStr) {
|
|
case '(':
|
|
return '<';
|
|
case ')':
|
|
return '>';
|
|
case '[':
|
|
return '{';
|
|
case ']':
|
|
return '}';
|
|
case ',':
|
|
return ' ';
|
|
default:
|
|
break;
|
|
}
|
|
});
|
|
|
|
if (fs.existsSync(config.uploads.attach.file.temp + filename)) {
|
|
fs.unlinkSync(config.uploads.attach.file.temp + filename);
|
|
}
|
|
|
|
if (fs.existsSync(config.uploads.attach.file.dest + filename)) {
|
|
var ext = file.originalname.replace(/^.+\./, '');
|
|
var regex = new RegExp(ext, 'g');
|
|
filename = filename.replace(regex, Date.now() + '.' + ext);
|
|
|
|
cb(null, filename);
|
|
} else {
|
|
cb(null, filename);
|
|
}
|
|
};
|
|
|
|
module.exports.getUploadAttachDestination = function (req, file, cb) {
|
|
cb(null, config.uploads.attach.file.temp);
|
|
};
|
|
|
|
module.exports.createUploadSubtitleFilename = function (req, file, cb) {
|
|
var regex = new RegExp(',', 'g');
|
|
var filename = file.originalname.replace(regex, ' ');
|
|
|
|
if (fs.existsSync(config.uploads.subtitle.file.dest + filename)) {
|
|
var err = new Error();
|
|
err.code = 'FILE_ALREADY_EXISTS';
|
|
cb(err, null);
|
|
} else {
|
|
cb(null, filename);
|
|
}
|
|
};
|
|
|
|
module.exports.getUploadSubtitleDestination = function (req, file, cb) {
|
|
cb(null, config.uploads.subtitle.file.dest);
|
|
};
|
|
|
|
|
|
module.exports.createUploadCoverImageFilename = function (req, file, cb) {
|
|
var RexStr = /\(|\)|\[|\]|\,/g;
|
|
var filename = file.originalname.replace(RexStr, function (MatchStr) {
|
|
switch (MatchStr) {
|
|
case '(':
|
|
return '<';
|
|
case ')':
|
|
return '>';
|
|
case '[':
|
|
return '{';
|
|
case ']':
|
|
return '}';
|
|
case ',':
|
|
return ' ';
|
|
default:
|
|
break;
|
|
}
|
|
});
|
|
|
|
if (fs.existsSync(config.uploads.torrent.cover.temp + filename)) {
|
|
fs.unlinkSync(config.uploads.torrent.cover.temp + filename);
|
|
}
|
|
|
|
if (fs.existsSync(config.uploads.torrent.cover.dest + filename)) {
|
|
var ext = file.originalname.replace(/^.+\./, '');
|
|
var regex = new RegExp(ext, 'g');
|
|
filename = filename.replace(regex, Date.now() + '.' + ext);
|
|
|
|
cb(null, filename);
|
|
} else {
|
|
cb(null, filename);
|
|
}
|
|
};
|
|
|
|
module.exports.getUploadCoverImageDestination = function (req, file, cb) {
|
|
cb(null, config.uploads.torrent.cover.temp);
|
|
};
|
|
|
|
module.exports.createUploadTorrentImageFilename = function (req, file, cb) {
|
|
var RexStr = /\(|\)|\[|\]|\,/g;
|
|
var filename = file.originalname.replace(RexStr, function (MatchStr) {
|
|
switch (MatchStr) {
|
|
case '(':
|
|
return '<';
|
|
case ')':
|
|
return '>';
|
|
case '[':
|
|
return '{';
|
|
case ']':
|
|
return '}';
|
|
case ',':
|
|
return ' ';
|
|
default:
|
|
break;
|
|
}
|
|
});
|
|
|
|
if (fs.existsSync(config.uploads.torrent.image.temp + filename)) {
|
|
fs.unlinkSync(config.uploads.torrent.image.temp + filename);
|
|
}
|
|
|
|
if (fs.existsSync(config.uploads.torrent.image.dest + filename)) {
|
|
var ext = file.originalname.replace(/^.+\./, '');
|
|
var regex = new RegExp(ext, 'g');
|
|
filename = filename.replace(regex, Date.now() + '.' + ext);
|
|
|
|
cb(null, filename);
|
|
} else {
|
|
cb(null, filename);
|
|
}
|
|
};
|
|
|
|
module.exports.getUploadTorrentImageDestination = function (req, file, cb) {
|
|
cb(null, config.uploads.torrent.image.temp);
|
|
};
|