diff --git a/helpers/checks/dnsbl.js b/helpers/checks/dnsbl.js index e088f17c..f1e33d07 100644 --- a/helpers/checks/dnsbl.js +++ b/helpers/checks/dnsbl.js @@ -17,7 +17,7 @@ module.exports = async (req, res, next) => { if (isBlacklisted === null) { //not cached const dnsblResp = await batch(ip, dnsbl.blacklists); isBlacklisted = dnsblResp.some(r => r.listed === true); - await cache.set(`blacklisted:${ip}`, isBlacklisted, dnsbl.cacheTime); + await cache.set(`blacklisted:${ip}`, isBlacklisted, dnsbl.cacheTime/1000); } if (isBlacklisted) { deleteTempFiles(req).catch(e => console.error); diff --git a/helpers/paramconverter.js b/helpers/paramconverter.js index b9f6f6f7..f03eed19 100644 --- a/helpers/paramconverter.js +++ b/helpers/paramconverter.js @@ -13,7 +13,7 @@ const { ObjectId } = require(__dirname+'/../db/db.js') 'captcha_options_num_distorts_min', 'captcha_options_num_distorts_max', 'captcha_options_distortion', 'flood_timers_same_content_same_ip', 'flood_timers_same_content_any_ip', 'flood_timers_any_content_same_ip', 'block_bypass_expire_after_uses', 'ip_hash_perm_level', 'delete_board_perm_level', 'rate_limit_cost_captcha', 'rate_limit_cost_board_settings', 'rate_limit_cost_edit_post', 'overboard_limit', 'overboard_catalog_limit', - 'lock_wait', 'prune_modlogs', 'thumb_size', 'video_thumb_percentage', 'quote_limit', 'preview_replies', 'sticky_preview_replies', + 'lock_wait', 'prune_modlogs', 'prune_ips', 'thumb_size', 'video_thumb_percentage', 'quote_limit', 'preview_replies', 'sticky_preview_replies', 'early_404_fraction', 'early_404_replies', 'max_recent_news', 'highlight_options_threshold', 'global_limits_thread_limit_min', 'global_limits_thread_limit_max', 'global_limits_reply_limit_min', 'global_limits_reply_limit_max', 'global_limits_bump_limit_min', 'global_limits_bump_limit_max', 'global_limits_post_files_max', 'global_limits_post_files_size_max', 'global_limits_banner_files_width', 'global_limits_banner_files_height', 'global_limits_banner_files_max', diff --git a/models/forms/changeglobalsettings.js b/models/forms/changeglobalsettings.js index 9485e25a..186157d5 100644 --- a/models/forms/changeglobalsettings.js +++ b/models/forms/changeglobalsettings.js @@ -73,42 +73,37 @@ module.exports = async (req, res, next) => { }, overboardLimit: numberSetting(req.body.overboard_limit, oldSettings.overboardLimit), overboardCatalogLimit: numberSetting(req.body.overboard_catalog_limit, oldSettings.overboardCatalogLimit), -/* cacheTemplates: booleanSetting(req.body.cache_templates, oldSettings.cacheTemplates), - debugLogs: booleanSetting(req.body.debug_logs, oldSettings.debugLogs), lockWait: numberSetting(req.body.lock_wait, oldSettings.lockWait), pruneModlogs: numberSetting(req.body.prune_modlogs, oldSettings.pruneModlogs), - pruneIps: booleanSetting(req.body.prune_ips, oldSettings.pruneIps), + pruneIps: numberSetting(req.body.prune_ips, oldSettings.pruneIps), enableWebring: booleanSetting(req.body.enable_webring, oldSettings.enableWebring), enableUserBoardCreation: booleanSetting(req.body.enable_user_board_creation, oldSettings.enableUserBoardCreation), enableUserAccountCreation: booleanSetting(req.body.enable_user_account_creation, oldSettings.enableUserAccountCreation), thumbExtension: trimSetting(req.body.thumb_extension, oldSettings.thumbExtension), - animatedGifThumbnails: booleanSetting(req.body.animated_gif_thumbnails, oldSettings.animatedGifThumbnails), - audioThumbnails: booleanSetting(req.body.audio_thumbnails, oldSettings.audioThumbnails), - ffmpegGifThumbnails: booleanSetting(req.body.ffmpeg_gif_thumbnails, oldSettings.ffmpegGifThumbnails), - thumbSize: numberSetting(req.body.thumb_size, oldSettings.thumbSize), - videoThumbPercentage: numberSetting(req.body.video_thumb_percentage, oldSettings.videoThumbPercentage), - otherMimeTypes: arraySetting(req.body.other_mime_types, oldSettings.otherMimeTypes), - checkRealMimeTypes: booleanSetting(req.body.check_real_mime_types, oldSettings.checkRealMimeTypes), - allowMimeNoMatch: booleanSetting(req.body.allow_mime_no_match, oldSettings.allowMimeNoMatch), - defaultBanDuration: numberSetting(req.body.default_ban_duration, oldSettings.defaultBanDuration), - quoteLimit: numberSetting(req.body.quote_limit, oldSettings.quoteLimit), - strictFiltering: booleanSetting(req.body.strict_filtering, oldSettings.strictFiltering), - previewReplies: numberSetting(req.body.preview_replies, oldSettings.previewReplies), - stickyPreviewReplies: numberSetting(req.body.sticky_preview_replies, oldSettings.stickyPreviewReplies), - early404Fraction: numberSetting(req.body.early_404_fraction, oldSettings.early404Fraction), - early404Replies: numberSetting(req.body.early_404_replies, oldSettings.early404Replies), - maxRecentNews: numberSetting(req.body.max_recent_news, oldSettings.maxRecentNews), - filterFileNames: booleanSetting(req.body.filter_file_names, oldSettings.filterFileNames), - spaceFileNameReplacement: trimSetting(req.body.space_file_name_replacement, oldSettings.spaceFileNameReplacement), highlightOptions: { languageSubset: arraySetting(req.body.highlight_options_language_subset, oldSettings.highlightOptions.languageSubset), threshold: numberSetting(req.body.highlight_options_threshold, oldSettings.highlightOptions.threshold), - }, themes: arraySetting(req.body.themes, oldSettings.themes), codeThemes: arraySetting(req.body.code_themes, oldSettings.codeThemes), globalLimits: { + ...oldSettings.globalLimits, + customCss: { + enabled: booleanSetting(req.body.global_limits_custom_css_enabled, oldSettings.globalLimits.customCss.enabled), + max: numberSetting(req.body.global_limits_custom_css_max, oldSettings.globalLimits.customCss.max), + strict: booleanSetting(req.body.global_limits_custom_css_strict, oldSettings.globalLimits.customCss.strict), + filters: arraySetting(req.body.global_limits_custom_css_filters, oldSettings.globalLimits.customCss.filters), + }, + }, + boardDefaults: { + ...oldSettings.boardDefaults, + theme: trimSetting(req.body.board_defaults_theme, oldSettings.boardDefaults.theme), + codeTheme: trimSetting(req.body.board_defaults_code_theme, oldSettings.boardDefaults.codeTheme), + } + +/* + globalLimits: { threadLimit: { min: numberSetting(req.body.global_limits_thread_limit_min, oldSettings.globalLimits.threadLimit.min), max: numberSetting(req.body.global_limits_thread_limit_max, oldSettings.globalLimits.threadLimit.max), @@ -156,17 +151,29 @@ module.exports = async (req, res, next) => { staff: numberSetting(req.body.global_limits_multi_input_posts_staff, oldSettings.globalLimits.multiInputs.posts.staff), }, }, - customCss: { - enabled: booleanSetting(req.body.global_limits_custom_css_enabled, oldSettings.globalLimits.customCss.enabled), - max: numberSetting(req.body.global_limits_custom_css_max, oldSettings.globalLimits.customCss.max), - strict: booleanSetting(req.body.global_limits_custom_css_strict, oldSettings.globalLimits.customCss.strict), - filters: arraySetting(req.body.global_limits_custom_css_filters, oldSettings.globalLimits.customCss.filters), - }, customPages: { max: numberSetting(req.body.global_limits_custom_pages_max, oldSettings.globalLimits.customPages.max), maxLength: numberSetting(req.body.global_limits_custom_pages_max_length, oldSettings.globalLimits.customPages.maxLength), } }, + animatedGifThumbnails: booleanSetting(req.body.animated_gif_thumbnails, oldSettings.animatedGifThumbnails), + audioThumbnails: booleanSetting(req.body.audio_thumbnails, oldSettings.audioThumbnails), + ffmpegGifThumbnails: booleanSetting(req.body.ffmpeg_gif_thumbnails, oldSettings.ffmpegGifThumbnails), + thumbSize: numberSetting(req.body.thumb_size, oldSettings.thumbSize), + videoThumbPercentage: numberSetting(req.body.video_thumb_percentage, oldSettings.videoThumbPercentage), + otherMimeTypes: arraySetting(req.body.other_mime_types, oldSettings.otherMimeTypes), + checkRealMimeTypes: booleanSetting(req.body.check_real_mime_types, oldSettings.checkRealMimeTypes), + allowMimeNoMatch: booleanSetting(req.body.allow_mime_no_match, oldSettings.allowMimeNoMatch), + defaultBanDuration: numberSetting(req.body.default_ban_duration, oldSettings.defaultBanDuration), + quoteLimit: numberSetting(req.body.quote_limit, oldSettings.quoteLimit), + strictFiltering: booleanSetting(req.body.strict_filtering, oldSettings.strictFiltering), + previewReplies: numberSetting(req.body.preview_replies, oldSettings.previewReplies), + stickyPreviewReplies: numberSetting(req.body.sticky_preview_replies, oldSettings.stickyPreviewReplies), + early404Fraction: numberSetting(req.body.early_404_fraction, oldSettings.early404Fraction), + early404Replies: numberSetting(req.body.early_404_replies, oldSettings.early404Replies), + maxRecentNews: numberSetting(req.body.max_recent_news, oldSettings.maxRecentNews), + filterFileNames: booleanSetting(req.body.filter_file_names, oldSettings.filterFileNames), + spaceFileNameReplacement: trimSetting(req.body.space_file_name_replacement, oldSettings.spaceFileNameReplacement), frontendScriptDefault: { embedsEnabled: booleanSetting(req.body.frontend_script_default_embeds_enabled, oldSettings.frontendScriptDefault.embedsEnabled), heightUnlimit: booleanSetting(req.body.frontend_script_default_height_unlimit, oldSettings.frontendScriptDefault.heightUnlimit), @@ -190,8 +197,6 @@ module.exports = async (req, res, next) => { showYous: booleanSetting(req.body.frontend_script_default_show_yous, oldSettings.frontendScriptDefault.showYous), }, boardDefaults: { - theme: trimSetting(req.body.board_defaults_theme, oldSettings.boardDefaults.theme), - codeTheme: trimSetting(req.body.board_defaults_code_theme, oldSettings.boardDefaults.codeTheme), 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/models/pages/globalmanage/settings.js b/models/pages/globalmanage/settings.js index 1325ff97..a7ebd922 100644 --- a/models/pages/globalmanage/settings.js +++ b/models/pages/globalmanage/settings.js @@ -1,25 +1,22 @@ 'use strict'; -const cache = require(__dirname+'/../../../redis.js'); +const cache = require(__dirname+'/../../../redis.js') + , { themes, codeThemes } = require(__dirname+'/../../../helpers/themes.js') + , { countryNamesMap, countryCodes } = require(__dirname+'/../../../helpers/countries.js'); module.exports = async (req, res, next) => { let settings = await cache.get('globalsettings'); - if (!settings) { - settings = { - captchaMode: 0, - filters: [], - filterMode: 0, - filterBanDuration: 0, - } - cache.setnx('globalsettings', settings); - } res .set('Cache-Control', 'private, max-age=5') .render('globalmanagesettings', { csrf: req.csrfToken(), settings, + countryNamesMap, + countryCodes, + themes, + codeThemes, }); } diff --git a/redis.js b/redis.js index 11025265..bb92fdc9 100644 --- a/redis.js +++ b/redis.js @@ -29,6 +29,7 @@ module.exports = { } }); subscriber.on("message", (channel, message) => { + secrets.debugLogs && console.log(`Subscriber message from channel ${channel}`); const data = JSON.parse(message); messageCallbacks[channel].forEach(cb => { cb(data);