diff --git a/controllers/pages.js b/controllers/pages.js index d8f8991f..1aae9824 100644 --- a/controllers/pages.js +++ b/controllers/pages.js @@ -38,8 +38,8 @@ router.get('/news.html', news); router.get('/boards.(html|json)', boardlist); //overboard -router.get('/overboard.html', overboard); //overboard -router.get('/catalog.html', overboardCatalog); //overboard catalog view +router.get('/overboard.(html|json)', overboard); //overboard +router.get('/catalog.(html|json)', overboardCatalog); //overboard catalog view //board pages router.get('/:board/:page(1[0-9]{1,}|[2-9][0-9]{0,}|index).(html|json)', Boards.exists, board); //index diff --git a/models/pages/overboard.js b/models/pages/overboard.js index a73bc454..91dce767 100644 --- a/models/pages/overboard.js +++ b/models/pages/overboard.js @@ -53,13 +53,20 @@ module.exports = async (req, res, next) => { res .set('Cache-Control', 'public, max-age=60') - .render('overboard', { - threads, - includeDefault, - addBoards, - removeBoards, - selectedBoards, - cacheQueryString, - }); + + if (req.path === '/overboard.html') { + res.json({ + threads, + }); + } else { + res.render('overboard', { + threads, + includeDefault, + addBoards, + removeBoards, + selectedBoards, + cacheQueryString, + }); + } } diff --git a/models/pages/overboardcatalog.js b/models/pages/overboardcatalog.js index 69290432..9e35a12f 100644 --- a/models/pages/overboardcatalog.js +++ b/models/pages/overboardcatalog.js @@ -6,7 +6,7 @@ const { Posts, Boards } = require(__dirname+'/../../db/') module.exports = async (req, res, next) => { - const { overboardCatalogLimit } = config.get; + const { overboardCatalogLimit, allowCustomOverboard } = config.get; let selectedBoards = []; const addList = (req.query.add ? (typeof req.query.add === 'string' ? req.query.add.split(',') : req.query.add) : []) @@ -50,13 +50,21 @@ module.exports = async (req, res, next) => { res .set('Cache-Control', 'public, max-age=60') - .render('overboardcatalog', { - threads, - includeDefault, - addBoards, - removeBoards, - selectedBoards, - cacheQueryString, - }); + + if (req.path === '/catalog.html') { + res.json({ + threads, + }); + } else { + res.render('overboardcatalog', { + threads, + includeDefault, + addBoards, + removeBoards, + selectedBoards, + cacheQueryString, + }); + } + }