Moving max and default values in constants.

This commit is contained in:
John Livingston 2024-09-11 10:11:18 +02:00
parent 5225257bb5
commit 6f479d26c5
No known key found for this signature in database
GPG Key ID: B17B5640CE66CDBC
5 changed files with 29 additions and 12 deletions

View File

@ -10,6 +10,7 @@ import type { DynamicFormHeader, DynamicFormSchema } from '../../../lib/elements
import { ptTr } from '../../../lib/directives/translation'
import { html, TemplateResult } from 'lit'
import { classMap } from 'lit/directives/class-map.js'
import { noDuplicateMaxDelay, forbidSpecialCharsMaxTolerance } from 'shared/lib/constants'
export function tplChannelConfiguration (el: ChannelConfigurationElement): TemplateResult {
const tableHeaderList: Record<string, DynamicFormHeader> = {
@ -381,7 +382,7 @@ export function tplChannelConfiguration (el: ChannelConfigurationElement): Templ
)
)}
min="0"
max="10"
max="${forbidSpecialCharsMaxTolerance}"
id="peertube-livechat-forbid-special-chars-tolerance"
aria-describedby="peertube-livechat-forbid-special-chars-tolerance-feedback"
@input=${(event: InputEvent) => {
@ -501,7 +502,7 @@ export function tplChannelConfiguration (el: ChannelConfigurationElement): Templ
)
)}
min="0"
max="10"
max="${noDuplicateMaxDelay.toString()}"
id="peertube-livechat-no-duplicate-delay"
aria-describedby="peertube-livechat-no-duplicate-delay-feedback"
@input=${(event: InputEvent) => {

View File

@ -11,7 +11,7 @@ import type {
import { ValidationError, ValidationErrorType } from '../../lib/models/validation'
import { getBaseRoute } from '../../../utils/uri'
import { maxEmojisPerChannel } from 'shared/lib/emojis'
import { channelTermsMaxLength } from 'shared/lib/constants'
import { channelTermsMaxLength, noDuplicateMaxDelay, forbidSpecialCharsMaxTolerance } from 'shared/lib/constants'
export class ChannelDetailsService {
public _registerClientOptions: RegisterClientOptions
@ -83,7 +83,7 @@ export class ChannelDetailsService {
propertiesError['bot.forbidSpecialChars.tolerance'].push(ValidationErrorType.WrongType)
} else if (
forbidSpecialCharsTolerance < 0 ||
forbidSpecialCharsTolerance > 10
forbidSpecialCharsTolerance > forbidSpecialCharsMaxTolerance
) {
propertiesError['bot.forbidSpecialChars.tolerance'].push(ValidationErrorType.NotInRange)
}
@ -98,7 +98,7 @@ export class ChannelDetailsService {
propertiesError['bot.noDuplicate.delay'].push(ValidationErrorType.WrongType)
} else if (
noDuplicateDelay < 0 ||
noDuplicateDelay > 24 * 3600
noDuplicateDelay > noDuplicateMaxDelay
) {
propertiesError['bot.noDuplicate.delay'].push(ValidationErrorType.NotInRange)
}

View File

@ -4,7 +4,13 @@
import type { RegisterServerOptions } from '@peertube/peertube-types'
import type { ChannelConfigurationOptions } from '../../../../shared/lib/types'
import { channelTermsMaxLength } from '../../../../shared/lib/constants'
import {
channelTermsMaxLength,
forbidSpecialCharsMaxTolerance,
forbidSpecialCharsDefaultTolerance,
noDuplicateDefaultDelay,
noDuplicateMaxDelay
} from '../../../../shared/lib/constants'
/**
* Sanitize data so that they can safely be used/stored for channel configuration configuration.
@ -53,7 +59,7 @@ async function sanitizeChannelConfigurationOptions (
botData.forbidSpecialChars ??= {
enabled: false,
reason: '',
tolerance: 0,
tolerance: forbidSpecialCharsDefaultTolerance,
applyToModerators: false
}
if (!_assertObjectType(botData.forbidSpecialChars)) {
@ -64,7 +70,7 @@ async function sanitizeChannelConfigurationOptions (
botData.noDuplicate ??= {
enabled: false,
reason: '',
delay: 60,
delay: noDuplicateDefaultDelay,
applyToModerators: false
}
if (!_assertObjectType(botData.noDuplicate)) {
@ -272,7 +278,7 @@ async function _readForbidSpecialChars (
const result: ChannelConfigurationOptions['bot']['forbidSpecialChars'] = {
enabled: _readBoolean(botData.forbidSpecialChars, 'enabled'),
reason: _readSimpleInput(botData.forbidSpecialChars, 'reason'),
tolerance: _readInteger(botData.forbidSpecialChars, 'tolerance', 0, 10),
tolerance: _readInteger(botData.forbidSpecialChars, 'tolerance', 0, forbidSpecialCharsMaxTolerance),
applyToModerators: _readBoolean(botData.forbidSpecialChars, 'applyToModerators')
}
return result
@ -287,7 +293,7 @@ async function _readNoDuplicate (
const result: ChannelConfigurationOptions['bot']['noDuplicate'] = {
enabled: _readBoolean(botData.noDuplicate, 'enabled'),
reason: _readSimpleInput(botData.noDuplicate, 'reason'),
delay: _readInteger(botData.noDuplicate, 'delay', 0, 24 * 3600),
delay: _readInteger(botData.noDuplicate, 'delay', 0, noDuplicateMaxDelay),
applyToModerators: _readBoolean(botData.noDuplicate, 'applyToModerators')
}
return result

View File

@ -7,6 +7,10 @@ import type { ChannelConfigurationOptions } from '../../../../shared/lib/types'
import type { ChannelCommonRoomConf } from '../../configuration/bot'
import { RoomChannel } from '../../room-channel'
import { sanitizeChannelConfigurationOptions } from '../../configuration/channel/sanitize'
import {
forbidSpecialCharsDefaultTolerance,
noDuplicateDefaultDelay
} from '../../../../shared/lib/constants'
import * as fs from 'fs'
import * as path from 'path'
@ -47,13 +51,13 @@ function getDefaultChannelConfigurationOptions (_options: RegisterServerOptions)
forbidSpecialChars: {
enabled: false,
reason: '',
tolerance: 0,
tolerance: forbidSpecialCharsDefaultTolerance,
applyToModerators: false
},
noDuplicate: {
enabled: false,
reason: '',
delay: 60,
delay: noDuplicateDefaultDelay,
applyToModerators: false
},
quotes: [],

View File

@ -3,3 +3,9 @@
// SPDX-License-Identifier: AGPL-3.0-only
export const channelTermsMaxLength = 400
export const forbidSpecialCharsDefaultTolerance = 0
export const forbidSpecialCharsMaxTolerance = 10
export const noDuplicateMaxDelay = 86400
export const noDuplicateDefaultDelay = 60