fix regression with moveposts and deleteposts when running markdown again for quotes

small change to diceroll, just use bind, no need to return the function like that
indiachan-spamvector v0.5.2
Thomas Lynch 2 years ago
parent b82585f428
commit 7cee1f14da
  1. 4
      CHANGELOG.md
  2. 2
      helpers/posting/diceroll.js
  3. 2
      helpers/posting/markdown.js
  4. 2
      helpers/posting/message.js
  5. 15
      models/forms/deletepost.js
  6. 17
      models/forms/moveposts.js
  7. 4
      package-lock.json
  8. 2
      package.json

@ -1,3 +1,7 @@
### 0.5.2
- Fix regression in remarkup of posts during moving, deleting, cyclic threads, etc due to permissions.
- Small internal change to how dicerolls are processed.
### 0.5.1
- Small change to expanding spoilered files.
- Bugfix outdated bans template mixin.

@ -5,7 +5,7 @@ module.exports = {
regexPrepare: /##(?<numdice>[1-9][0-9]{0,1})d(?<numsides>1[0-9]{1,8}|[2-9][0-9]{0,8})(?:(?<operator>[+-])(?<modifier>[1-9][0-9]{0,8}))?(?<value>=[1-9][0-9]{0,8})?/gmi,
regexMarkdown: /##(?<numdice>[1-9][0-9]{0,1})d(?<numsides>1[0-9]{1,8}|[2-9][0-9]{0,8})(?:(?<operator>[+-])(?<modifier>[1-9][0-9]{0,8}))?&#x3D;(?<value>[1-9][0-9]{0,8})/gmi,
prepare: (force) => (match, numdice, numsides, operator, modifier, value) => {
prepare: (force, match, numdice, numsides, operator, modifier, value) => {
if (!force && value) {
return match;
}

@ -59,7 +59,7 @@ module.exports = {
//every other chunk will be a code block
if (i % 2 === 0) {
chunks[i] = chunks[i].replace(
diceroll.regexPrepare, diceroll.prepare(force));
diceroll.regexPrepare, diceroll.prepare.bind(null, force));
}
}
return chunks.join('');

@ -4,7 +4,7 @@
const quoteHandler = require(__dirname+'/quotes.js')
, { markdown } = require(__dirname+'/markdown.js')
, sanitizeOptions = require(__dirname+'/sanitizeoptions.js')
, Permission = require(__dirname+'/../permissions.js')
, Permission = require(__dirname+'/../permission.js')
, roleManager = require(__dirname+'/../rolemanager.js')
, sanitize = require('sanitize-html');

@ -5,12 +5,10 @@ const uploadDirectory = require(__dirname+'/../../helpers/files/uploadDirectory.
, Mongo = require(__dirname+'/../../db/db.js')
, { Posts, Files } = require(__dirname+'/../../db/')
, Socketio = require(__dirname+'/../../socketio.js')
, quoteHandler = require(__dirname+'/../../helpers/posting/quotes.js')
, { markdown } = require(__dirname+'/../../helpers/posting/markdown.js')
, { prepareMarkdown } = require(__dirname+'/../../helpers/posting/markdown.js')
, messageHandler = require(__dirname+'/../../helpers/posting/message.js')
, config = require(__dirname+'/../../config.js')
, { func: pruneFiles } = require(__dirname+'/../../schedules/tasks/prune.js')
, sanitize = require('sanitize-html')
, sanitizeOptions = require(__dirname+'/../../helpers/posting/sanitizeoptions.js');
module.exports = async (posts, board, all=false) => {
@ -127,9 +125,8 @@ module.exports = async (posts, board, all=false) => {
await Promise.all(remarkupPosts.map(async post => { //doing these all at once
if (post.nomarkup && post.nomarkup.length > 0) { //is this check even necessary? how would it have a quote with no message
//redo the markup
let message = markdown(post.nomarkup);
const { quotedMessage, threadQuotes, crossQuotes } = await quoteHandler.process(post.board, message, post.thread);
message = sanitize(quotedMessage, sanitizeOptions.after);
const nomarkup = prepareMarkdown(post.nomarkup, false);
const { message, quotes, crossquotes } = await messageHandler(nomarkup, post.board, post.thread, null);
bulkWrites.push({
'updateOne': {
'filter': {
@ -137,8 +134,8 @@ module.exports = async (posts, board, all=false) => {
},
'update': {
'$set': {
'quotes': threadQuotes,
'crossquotes': crossQuotes,
'quotes': quotes,
'crossquotes': crossquotes,
'message': message
}
}

@ -4,11 +4,9 @@ const uploadDirectory = require(__dirname+'/../../helpers/files/uploadDirectory.
, { remove } = require('fs-extra')
, { Posts } = require(__dirname+'/../../db/')
, Socketio = require(__dirname+'/../../socketio.js')
, quoteHandler = require(__dirname+'/../../helpers/posting/quotes.js')
, { markdown } = require(__dirname+'/../../helpers/posting/markdown.js')
, { prepareMarkdown } = require(__dirname+'/../../helpers/posting/markdown.js')
, messageHandler = require(__dirname+'/../../helpers/posting/message.js')
, { createHash } = require('crypto')
, sanitize = require('sanitize-html')
, sanitizeOptions = require(__dirname+'/../../helpers/posting/sanitizeoptions.js');
module.exports = async (req, res) => {
@ -128,14 +126,13 @@ module.exports = async (req, res) => {
postUpdate.userId = userId;
}
if (post.nomarkup && post.nomarkup.length > 0) {
let message = markdown(post.nomarkup);
let { quotedMessage, threadQuotes, crossQuotes } = await quoteHandler.process(post.board, message, post.thread); // req.body.move_to_thread);
message = sanitize(quotedMessage, sanitizeOptions.after);
const nomarkup = prepareMarkdown(post.nomarkup, false);
const { message, quotes, crossquotes } = await messageHandler(nomarkup, post.board, post.thread, null);
bulkWrites.push({
'updateMany': {
'filter': {
'_id': {
'$in': threadQuotes.map(q => q._id)
'$in': quotes.map(q => q._id)
}
},
'update': {
@ -145,8 +142,8 @@ module.exports = async (req, res) => {
}
}
});
postUpdate.quotes = threadQuotes;
postUpdate.crossquotes = crossQuotes;
postUpdate.quotes = quotes;
postUpdate.crossquotes = crossquotes;
postUpdate.message = message;
}
if (Object.keys(postUpdate).length > 0) {

4
package-lock.json generated

@ -1,12 +1,12 @@
{
"name": "jschan",
"version": "0.5.1",
"version": "0.5.2",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "jschan",
"version": "0.5.1",
"version": "0.5.2",
"license": "AGPL-3.0-only",
"dependencies": {
"@fatchan/express-fileupload": "^1.3.1",

@ -1,6 +1,6 @@
{
"name": "jschan",
"version": "0.5.1",
"version": "0.5.2",
"migrateVersion": "0.5.0",
"description": "",
"main": "server.js",

Loading…
Cancel
Save