mirror of
https://github.com/taobataoma/meanTorrent.git
synced 2026-05-09 00:36:51 +02:00
feat(admin): add fields uptotal of users to count the uploaded torrent file numbers and get uptotal method
This commit is contained in:
2
config/env/torrents.js
vendored
2
config/env/torrents.js
vendored
@@ -57,7 +57,7 @@ module.exports = {
|
||||
admin: 'admin@chd.im',
|
||||
baseUrl: 'http://chd.im:3000',
|
||||
clientBlackListUrl: 'http://chd.im:3000/client_black_list',
|
||||
privateTorrentCmsMode: true
|
||||
privateTorrentCmsMode: false
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
@@ -388,6 +388,11 @@ exports.create = function (req, res) {
|
||||
|
||||
scoreUpdate(req, req.user, scoreConfig.action.uploadTorrent);
|
||||
|
||||
//update user uptotal fields
|
||||
req.user.update({
|
||||
$inc: {uptotal: 1}
|
||||
}).exec();
|
||||
|
||||
//scrape torrent status info in public cms mode
|
||||
if (!config.meanTorrentConfig.announce.privateTorrentCmsMode && config.meanTorrentConfig.scrapeTorrentStatus.onTorrentUpload) {
|
||||
scrape.doScrape(torrent);
|
||||
@@ -755,6 +760,11 @@ exports.delete = function (req, res) {
|
||||
torrent: torrent._id
|
||||
});
|
||||
|
||||
//update user uptotal fields
|
||||
torrent.user.update({
|
||||
$inc: {uptotal: -1}
|
||||
}).exec();
|
||||
|
||||
//remove the complete data and update user`s warning number if the torrent has H&R prop
|
||||
removeTorrentHnRWarning(torrent._id);
|
||||
Complete.remove({
|
||||
|
||||
@@ -137,6 +137,13 @@
|
||||
userId: '@userId',
|
||||
userDownloaded: '@userDownloaded'
|
||||
}
|
||||
},
|
||||
getUserUploadedTotal: {
|
||||
method: 'GET',
|
||||
url: '/api/users/:userId/uptotal',
|
||||
params: {
|
||||
userId: '@userId'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -155,6 +162,9 @@
|
||||
},
|
||||
setUserDownloaded: function (params) {
|
||||
return this.updateUserDownloaded(params).$promise;
|
||||
},
|
||||
countUserUploaded: function (params) {
|
||||
return this.getUserUploadedTotal(params).$promise;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ var path = require('path'),
|
||||
mongoose = require('mongoose'),
|
||||
User = mongoose.model('User'),
|
||||
Peer = mongoose.model('Peer'),
|
||||
Torrent = mongoose.model('Torrent'),
|
||||
Complete = mongoose.model('Complete'),
|
||||
errorHandler = require(path.resolve('./modules/core/server/controllers/errors.server.controller')),
|
||||
traceLogCreate = require(path.resolve('./config/lib/tracelog')).create;
|
||||
@@ -317,6 +318,27 @@ exports.getUserWarning = function (req, res) {
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* getUserUploadedTotal
|
||||
* @param req
|
||||
* @param res
|
||||
*/
|
||||
exports.getUserUploadedTotal = function (req, res) {
|
||||
Torrent.count({
|
||||
user: req.user._id
|
||||
}, function (err, count) {
|
||||
if (err) {
|
||||
return res.status(422).send({
|
||||
message: errorHandler.getErrorMessage(err)
|
||||
});
|
||||
} else {
|
||||
res.json({
|
||||
total: count
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* User middleware
|
||||
*/
|
||||
|
||||
@@ -147,6 +147,10 @@ var UserSchema = new Schema({
|
||||
type: Number,
|
||||
default: 0
|
||||
},
|
||||
uptotal: {
|
||||
type: Number,
|
||||
default: 0
|
||||
},
|
||||
seeded: {
|
||||
type: Number,
|
||||
default: 0
|
||||
|
||||
@@ -31,13 +31,15 @@ exports.invokeRolesPolicies = function () {
|
||||
{resources: '/api/users/:userId/downloaded', permissions: '*'},
|
||||
{resources: '/api/users/:userId/seeding', permissions: '*'},
|
||||
{resources: '/api/users/:userId/leeching', permissions: '*'},
|
||||
{resources: '/api/users/:userId/warning', permissions: '*'}
|
||||
{resources: '/api/users/:userId/warning', permissions: '*'},
|
||||
{resources: '/api/users/:userId/uptotal', permissions: '*'}
|
||||
]
|
||||
},
|
||||
{
|
||||
roles: ['user'],
|
||||
allows: [
|
||||
{resources: '/api/users/:userId', permissions: ['get']}
|
||||
{resources: '/api/users/:userId', permissions: ['get']},
|
||||
{resources: '/api/users/:userId/uptotal', permissions: ['get']}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@@ -38,6 +38,8 @@ module.exports = function (app) {
|
||||
.get(admin.getUserLeeching);
|
||||
app.route('/api/users/:userId/warning').all(adminPolicy.isAllowed)
|
||||
.get(admin.getUserWarning);
|
||||
app.route('/api/users/:userId/uptotal').all(adminPolicy.isAllowed)
|
||||
.get(admin.getUserUploadedTotal);
|
||||
|
||||
// Finish by binding the user middleware
|
||||
app.param('userId', admin.userByID);
|
||||
|
||||
Reference in New Issue
Block a user