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.
30 lines
902 B
30 lines
902 B
'use strict';
|
|
|
|
//use simple string replacement and filter to remove dead quotes, instead of running the whole messagehandler again
|
|
module.exports = (deletedPosts, updateQuotePosts) => {
|
|
const bulkWrites = [];
|
|
updateQuotePosts.forEach(post => {
|
|
deletedPosts.forEach(ap => {
|
|
const quotesBefore = post.quotes.length;
|
|
post.quotes = post.quotes.filter(q => q.postId !== ap.postId);
|
|
if (quotesBefore !== post.quotes.length) { //optimization, probably
|
|
post.message = post.message.replace(`<a class="quote" href="/${ap.board}/thread/${ap.thread}.html#${ap.postId}">>>${ap.postId}</a>`,
|
|
`<span class="invalid-quote">>>${ap.postId}</span>`);
|
|
}
|
|
});
|
|
bulkWrites.push({
|
|
'updateOne': {
|
|
'filter': {
|
|
'_id': post._id
|
|
},
|
|
'update': {
|
|
'$set': {
|
|
'quotes': post.quotes,
|
|
'message': post.message,
|
|
}
|
|
}
|
|
}
|
|
});
|
|
});
|
|
return bulkWrites;
|
|
};
|
|
|