jschan - Anonymous imageboard software. Classic look, modern features and feel. Works without JavaScript and supports Tor, I2P, Lokinet, etc.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

64 lines
1.1 KiB

'use strict';
const Mongo = require(__dirname+'/db.js')
, db = Mongo.db.collection('filters');
module.exports = {
db,
// null board retrieves global filters only
findForBoard: (board=null, limit=0) => {
return db.find({'board': board}).sort({
'_id': -1
})
.limit(limit)
.toArray();
},
findOne: (board, id) => {
return db.findOne({
'_id': id,
'board': board,
});
},
updateOne: (board, id, filters, strictFiltering, filterMode, filterMessage, filterBanDuration, filterBanAppealable) => {
return db.updateOne({
'_id': id,
'board': board,
}, {
'$set': {
'filters': filters,
'strictFiltering': strictFiltering,
'filterMode': filterMode,
'filterMessage': filterMessage,
'filterBanDuration': filterBanDuration,
'filterBanAppealable': filterBanAppealable,
}
});
},
insertOne: (filters) => {
return db.insertOne(filters);
},
deleteMany: (board, ids) => {
return db.deleteMany({
'_id': {
'$in': ids
},
'board': board
});
},
deleteBoard: (board) => {
return db.deleteMany({'board': board});
},
deleteAll: () => {
return db.deleteMany({});
},
};