0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2025-12-24 14:12:40 +00:00

Update brew content merging functionality and add it to downloads/page source views

#1838
This commit is contained in:
Charlie Humphreys
2021-11-23 23:53:02 -06:00
parent f40b4b2f30
commit ef433bbbe2
5 changed files with 85 additions and 9727 deletions

View File

@@ -4,6 +4,7 @@ const router = require('express').Router();
const zlib = require('zlib');
const GoogleActions = require('./googleActions.js');
const Markdown = require('../shared/naturalcrit/markdown.js');
const brewUtils = require('./utils/brew');
// const getTopBrews = (cb) => {
// HomebrewModel.find().sort({ views: -1 }).limit(5).exec(function(err, brews) {
@@ -28,31 +29,6 @@ const excludePropsFromUpdate = (brew)=>{
return brew;
};
const mergeBrewText = (text, style, brew)=>{
if(typeof style !== 'undefined') {
text = `\`\`\`css\n` +
`${style}\n` +
`\`\`\`\n\n` +
`${text}`;
}
if(typeof brew !== 'undefined') {
const metadata = {
title : brew.title,
description : brew.description,
tags : brew.tags,
systems : brew.systems,
renderer : brew.renderer,
authors : brew.authors,
published : brew.published
};
text = `\`\`\`metadata\n` +
`${JSON.stringify(metadata)}\n` +
`\`\`\`\n\n` +
`${text}`;
}
return text;
};
const newBrew = (req, res)=>{
const brew = req.body;
@@ -61,7 +37,7 @@ const newBrew = (req, res)=>{
}
brew.authors = (req.account) ? [req.account.username] : [];
brew.text = mergeBrewText(brew.text, brew.style);
brew.text = brewUtils.mergeBrewText(brew, { style: true });
delete brew.editId;
delete brew.shareId;
@@ -90,7 +66,7 @@ const updateBrew = (req, res)=>{
.then((brew)=>{
const updateBrew = excludePropsFromUpdate(req.body);
brew = _.merge(brew, updateBrew);
brew.text = mergeBrewText(brew.text, brew.style);
brew.text = brewUtils.mergeBrewText(brew, { style: true });
// Compress brew text to binary before saving
brew.textBin = zlib.deflateRawSync(brew.text);
@@ -158,7 +134,7 @@ const newGoogleBrew = async (req, res, next)=>{
}
brew.authors = (req.account) ? [req.account.username] : [];
brew.text = mergeBrewText(brew.text, brew.style, brew);
brew.text = brewUtils.mergeBrewText(brew, { style: true, metadata: true });
delete brew.editId;
delete brew.shareId;
@@ -180,7 +156,7 @@ const updateGoogleBrew = async (req, res, next)=>{
try { oAuth2Client = GoogleActions.authCheck(req.account, res); } catch (err) { return res.status(err.status).send(err.message); }
const brew = excludePropsFromUpdate(req.body);
brew.text = mergeBrewText(brew.text, brew.style, brew);
brew.text = brewUtils.mergeBrewText(brew, { style: true, metadata: true });
try {
const updatedBrew = await GoogleActions.updateGoogleBrew(oAuth2Client, brew);