From a9833f76622d2c2ddba3aed53d8ecdd6bfed3276 Mon Sep 17 00:00:00 2001 From: Thomas Lynch Date: Sun, 19 Sep 2021 11:58:50 +0000 Subject: [PATCH] Imgops and archive links close #369 --- configs/template.js.example | 2 ++ migrations/0.1.6.js | 12 ++++++++++++ models/forms/changeboardsettings.js | 6 +++++- models/forms/changeglobalsettings.js | 2 ++ views/mixins/boardnav.pug | 4 +++- views/mixins/post.pug | 3 +++ views/pages/globalmanagesettings.pug | 8 ++++++++ views/pages/managesettings.pug | 8 ++++++++ 8 files changed, 43 insertions(+), 2 deletions(-) diff --git a/configs/template.js.example b/configs/template.js.example index cf9e1976..b5164cff 100644 --- a/configs/template.js.example +++ b/configs/template.js.example @@ -379,6 +379,8 @@ module.exports = { userPostDelete: true, //allow users to delete their posts userPostSpoiler: true, //allow user to spoiler their post files userPostUnlink: true, //alow user to unlink files fomr their post + reverseImageSearchLink: false, //show imgops or similar + archiveLink: false, //show external archive link threadLimit: 200, replyLimit: 1000, bumpLimit: 500, diff --git a/migrations/0.1.6.js b/migrations/0.1.6.js index e7166bec..a2b2123e 100644 --- a/migrations/0.1.6.js +++ b/migrations/0.1.6.js @@ -5,8 +5,20 @@ module.exports = async(db, redis) => { await db.collection('globalsettings').updateOne({ _id: 'globalsettings' }, { '$set': { 'allowCustomOverboard': false, + 'boardDefaults.archiveLinks': false, + 'boardDefaults.reverseImageSearchLinks': false, }, }); console.log('Cleared globalsettings cache'); await redis.deletePattern('globalsettings'); + console.log('adding archive and imgops link options'); + await db.collection('boards').updateMany({}, { + '$set': { + 'settings.archiveLinks': false, + 'settings.reverseImageSearchLinks': false, + } + }); + console.log('Cleared boards cache'); + await redis.deletePattern('board:*'); + }; diff --git a/models/forms/changeboardsettings.js b/models/forms/changeboardsettings.js index b05c4241..0138524a 100644 --- a/models/forms/changeboardsettings.js +++ b/models/forms/changeboardsettings.js @@ -68,6 +68,8 @@ module.exports = async (req, res, next) => { 'theme': req.body.theme || oldSettings.theme, 'codeTheme': req.body.code_theme || oldSettings.codeTheme, 'sfw': booleanSetting(req.body.sfw), + 'archiveLinks': booleanSetting(req.body.archive_links), + 'reverseImageSearchLinks': booleanSetting(req.body.reverse_image_search_links), 'unlistedLocal': booleanSetting(req.body.unlisted_local), 'unlistedWebring': booleanSetting(req.body.unlisted_webring), 'early404': booleanSetting(req.body.early404), @@ -151,7 +153,9 @@ module.exports = async (req, res, next) => { rebuildCatalog = true; } - if (newSettings.replyLimit !== oldSettings.replyLimit) { + if (newSettings.replyLimit !== oldSettings.replyLimit + || newSettings.archiveLinks !== oldSettings.archiveLinks + || newSettings.reverseImageSearchLinks !== oldSettings.reverseImageSearchLinks) { rebuildBoard = true; rebuildThreads = true; } diff --git a/models/forms/changeglobalsettings.js b/models/forms/changeglobalsettings.js index 28c00b06..e787ddb3 100644 --- a/models/forms/changeglobalsettings.js +++ b/models/forms/changeglobalsettings.js @@ -231,6 +231,8 @@ module.exports = async (req, res, next) => { boardDefaults: { theme: trimSetting(req.body.board_defaults_theme, oldSettings.boardDefaults.theme), codeTheme: trimSetting(req.body.board_defaults_code_theme, oldSettings.boardDefaults.codeTheme), + reverseImageSearchLinks: booleanSetting(req.body.board_defaults_reverse_image_search_links, oldSettings.boardDefaults.reverseImageSearchLinks), + archiveLinks: booleanSetting(req.body.board_defaults_archive_links, oldSettings.boardDefaults.archiveLinks), sfw: booleanSetting(req.body.board_defaults_sfw, oldSettings.boardDefaults.sfw), lockMode: numberSetting(req.body.board_defaults_lock_mode, oldSettings.boardDefaults.lockMode), fileR9KMode: numberSetting(req.body.board_defaults_file_r9k_mode, oldSettings.boardDefaults.fileR9KMode), diff --git a/views/mixins/boardnav.pug b/views/mixins/boardnav.pug index 1ca7f7e1..8f80f8c0 100644 --- a/views/mixins/boardnav.pug +++ b/views/mixins/boardnav.pug @@ -8,4 +8,6 @@ mixin boardnav(selected, showIndex, upLevel) a(href=`${upLevel ? '../' : ''}banners.html` class=(selected === 'banners' ? 'bold' : '')) [Banners] | a(href=`${upLevel ? '../' : ''}logs.html` class=(selected === 'logs' ? 'bold' : '')) [Logs] - + if thread != null && board.settings != null && board.settings.archiveLinks === true + | + a(href=`https://archive.today/?run=1&url=${meta.url}/${thread.board}/thread/${thread.postId}.html` target='_blank') [Archive] diff --git a/views/mixins/post.pug b/views/mixins/post.pug index e13a16e5..bfc9e9e7 100644 --- a/views/mixins/post.pug +++ b/views/mixins/post.pug @@ -97,6 +97,9 @@ mixin post(post, truncate, manage=false, globalmanage=false, ban=false, overboar if file.durationString | , #{file.durationString} | ) + if (board && board.settings.reverseImageSearchLinks === true) || overboard || manage || globalmanage + | + span: a(href=`https://imgops.com/${meta.url}/file/${file.filename}` title='ImgOps' target='_blank') ImgOps - const type = file.mimetype.split('/')[0] .post-file-src(data-type=type data-attachment=(file.attachment ? "true" : "false")) a(target='_blank' href=`/file/${file.filename}`) diff --git a/views/pages/globalmanagesettings.pug b/views/pages/globalmanagesettings.pug index 1f248f6b..57587c41 100644 --- a/views/pages/globalmanagesettings.pug +++ b/views/pages/globalmanagesettings.pug @@ -775,5 +775,13 @@ block content .label Allow Other Files label.postform-style.ph-5 input(type='checkbox', name='board_defaults_allowed_file_types_other', value='true' checked=settings.boardDefaults.allowedFileTypes.other) + .row + .label Reverse Image Search Links + label.postform-style.ph-5 + input(type='checkbox', name='board_defaults_reverse_image_search_links', value='true' checked=settings.boardDefaults.reverseImageSearchLinks) + .row + .label External Archive Links + label.postform-style.ph-5 + input(type='checkbox', name='board_defaults_archive_links', value='true' checked=settings.boardDefaults.archiveLinks) input.row(type='submit', value='save settings') diff --git a/views/pages/managesettings.pug b/views/pages/managesettings.pug index 776212aa..246bc9d7 100644 --- a/views/pages/managesettings.pug +++ b/views/pages/managesettings.pug @@ -82,6 +82,14 @@ block content .label Custom Flags label.postform-style.ph-5 input(type='checkbox', name='custom_flags', value='true' checked=board.settings.customFlags) + .row + .label Reverse Image Search Links + label.postform-style.ph-5 + input(type='checkbox', name='reverse_image_search_links', value='true' checked=board.settings.reverseImageSearchLinks) + .row + .label External Archive Links + label.postform-style.ph-5 + input(type='checkbox', name='archive_links', value='true' checked=board.settings.archiveLinks) .row .label SFW label.postform-style.ph-5