Bugfix quote difference/intersection when updating for edits references #121

merge-requests/208/head
fatchan 4 years ago
parent fbc4661ffc
commit 6e1f552304
  1. 2
      configs/main.js.example
  2. 12
      models/forms/editpost.js
  3. 72
      package-lock.json

@ -112,7 +112,7 @@ module.exports = {
defaultBanDuration: 31536000000,
//max number of quotes that will be linked in a post. 0 for unlimited (not recommended)
quoteLimit: 15,
quoteLimit: 25,
//aply global filters more aggressively, trying against extra text that strips diacritics and some ZWS chars
strictFiltering: false,

@ -1,6 +1,7 @@
'use strict';
const { Posts, Bans, Modlogs } = require(__dirname+'/../../db/')
, Mongo = require(__dirname+'/../../db/db.js')
, getTripCode = require(__dirname+'/../../helpers/posting/tripcode.js')
, messageHandler = require(__dirname+'/../../helpers/posting/message.js')
, nameHandler = require(__dirname+'/../../helpers/posting/name.js')
@ -74,10 +75,14 @@ todo: handle some more situations
//todo: email and subject (probably dont need any transformation since staff bypass limits on forceanon, and it doesnt have to account for sage/etc
//intersection/difference of quotes sets for linking and unlinking
const oldQuoteIds = post.quotes.map(q => q._id);
const oldQuoteIds = post.quotes.map(q => q._id.toString());
const oldQuotesSet = new Set(oldQuoteIds);
const newQuoteIds = quotes.map(q => q._id);
const addedQuotesSet = new Set(newQuoteIds.filter(qid => !oldQuotesSet.has(qid)));
const newQuoteIds = quotes.map(q => q._id.toString());
const newQuotesSet = new Set(newQuoteIds);
const addedQuotesSet = new Set(newQuoteIds.filter(qid => !oldQuotesSet.has(qid)).map(Mongo.ObjectId));
const removedQuotesSet = new Set(oldQuoteIds.filter(qid => !newQuotesSet.has(qid)).map(Mongo.ObjectId));
//linking new added quotes
if (addedQuotesSet.size > 0) {
await Posts.db.updateMany({
@ -91,7 +96,6 @@ todo: handle some more situations
});
}
const removedQuotesSet = new Set(oldQuoteIds.filter(qid => !addedQuotesSet.has(qid)));
//unlinking removed quotes
if (removedQuotesSet.size > 0) {
await Posts.db.updateMany({

72
package-lock.json generated

@ -2525,7 +2525,7 @@
},
"express-fileupload": {
"version": "github:fatchan/express-fileupload#ecc5ad4f41771a1c23eed365e451220b9cc3e3c1",
"from": "github:fatchan/express-fileupload#ecc5ad4f41771a1c23eed365e451220b9cc3e3c1",
"from": "github:fatchan/express-fileupload",
"requires": {
"busboy": "^0.3.1"
}
@ -5848,6 +5848,25 @@
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"socks-proxy-agent": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz",
"integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==",
"requires": {
"agent-base": "~4.2.1",
"socks": "~2.3.2"
},
"dependencies": {
"agent-base": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz",
"integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==",
"requires": {
"es6-promisify": "^5.0.0"
}
}
}
}
}
},
@ -6419,6 +6438,25 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"socks-proxy-agent": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz",
"integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==",
"requires": {
"agent-base": "~4.2.1",
"socks": "~2.3.2"
},
"dependencies": {
"agent-base": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz",
"integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==",
"requires": {
"es6-promisify": "^5.0.0"
}
}
}
},
"yallist": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
@ -7391,21 +7429,35 @@
}
},
"socks-proxy-agent": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz",
"integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==",
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz",
"integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==",
"requires": {
"agent-base": "~4.2.1",
"socks": "~2.3.2"
"agent-base": "6",
"debug": "4",
"socks": "^2.3.3"
},
"dependencies": {
"agent-base": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz",
"integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==",
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.0.tgz",
"integrity": "sha512-j1Q7cSCqN+AwrmDd+pzgqc0/NpC655x2bUf5ZjRIO77DcNBFmh+OgRNzF6OKdCC9RSCb19fGd99+bhXFdkRNqw==",
"requires": {
"debug": "4"
}
},
"debug": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
"requires": {
"es6-promisify": "^5.0.0"
"ms": "^2.1.1"
}
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}
}
},

Loading…
Cancel
Save