mirror of https://gitgud.io/fatchan/jschan.git
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.
73 lines
2.3 KiB
73 lines
2.3 KiB
'use strict';
|
|
|
|
module.exports = async(db, redis) => {
|
|
|
|
console.log('Updating globalsettings to add filter limit');
|
|
await db.collection('globalsettings').updateOne({ _id: 'globalsettings' }, {
|
|
'$set': {
|
|
'globalLimits.filters': {
|
|
max: 50,
|
|
},
|
|
'ethereumLinksURL': 'https://etherscan.io/address/%s',
|
|
},
|
|
});
|
|
|
|
console.log('Updating globalsettings to convert old filters into new filter db format');
|
|
const globalSettings = await db.collection('globalsettings').findOne({ _id: 'globalsettings' });
|
|
if (globalSettings.filters.length > 0) {
|
|
await db.collection('filters').insertOne({
|
|
board: null,
|
|
filters: globalSettings.filters,
|
|
filterMode: globalSettings.filterMode,
|
|
filterMessage: null,
|
|
filterBanDuration: globalSettings.filterBanDuration,
|
|
filterBanAppealable: globalSettings.filterBanAppealable ? true : false,
|
|
strictFiltering: globalSettings.strictFiltering ? true : false,
|
|
});
|
|
}
|
|
await db.collection('globalsettings').updateOne({ _id: 'globalsettings' }, {
|
|
'$unset': {
|
|
filters: '',
|
|
filterMode: '',
|
|
filterBanDuration: '',
|
|
filterBanAppealable: '',
|
|
strictFiltering: '',
|
|
'boardDefaults.filters': '',
|
|
'boardDefaults.filterMode': '',
|
|
'boardDefaults.filterBanDuration': '',
|
|
'boardDefaults.filterBanAppealable': '',
|
|
'boardDefaults.strictFiltering': '',
|
|
},
|
|
});
|
|
|
|
console.log('Updating boards to convert old filters into new filter db format');
|
|
const allBoards = await db.collection('boards').find({}).toArray();
|
|
for (let b of allBoards) {
|
|
if (b.settings.filters.length > 0) {
|
|
await db.collection('filters').insertOne({
|
|
board: b._id,
|
|
filters: b.settings.filters,
|
|
filterMode: b.settings.filterMode,
|
|
filterMessage: null,
|
|
filterBanDuration: b.settings.filterBanDuration,
|
|
filterBanAppealable: b.settings.filterBanAppealable ? true : false,
|
|
strictFiltering: b.settings.strictFiltering ? true : false,
|
|
});
|
|
}
|
|
}
|
|
await db.collection('boards').updateMany({}, {
|
|
'$unset': {
|
|
'settings.filters': '',
|
|
'settings.filterMode': '',
|
|
'settings.filterBanDuration': '',
|
|
'settings.filterBanAppealable': '',
|
|
'settings.strictFiltering': '',
|
|
},
|
|
});
|
|
|
|
console.log('Clearing globalsettings cache');
|
|
await redis.deletePattern('globalsettings');
|
|
console.log('Clearing boards cache');
|
|
await redis.deletePattern('board:*');
|
|
|
|
};
|
|
|