Merge branch 'main' of https://github.com/JohnXLivingston/peertube-plugin-livechat
This commit is contained in:
12
shared/lib/admin-firewall.ts
Normal file
12
shared/lib/admin-firewall.ts
Normal file
@ -0,0 +1,12 @@
|
||||
// SPDX-FileCopyrightText: 2024 John Livingston <https://www.john-livingston.fr/>
|
||||
//
|
||||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
// Note: API request body size is limited to 100Kb (expressjs body-parser defaut limit, and Peertube nginx config).
|
||||
// So we must be sure to never send more than 100Kb.
|
||||
// All files are sent in one JSON object.
|
||||
export const maxFirewallFileSize: number = 3 * 1024
|
||||
export const maxFirewallFiles = 20
|
||||
|
||||
export const maxFirewallNameLength = 20
|
||||
export const firewallNameRegexp = /^[a-zA-Z0-9_-]+$/
|
@ -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
|
||||
|
@ -13,7 +13,7 @@ interface ActorImage {
|
||||
updatedAt: Date | string
|
||||
}
|
||||
|
||||
type ConverseJSTheme = 'peertube' | 'default' | 'concord'
|
||||
type ConverseJSTheme = 'peertube' | 'default' | 'cyberpunk'
|
||||
|
||||
interface InitConverseJSParams {
|
||||
peertubeVideoOriginalUrl?: string
|
||||
@ -96,6 +96,8 @@ interface ChannelConfigurationOptions {
|
||||
forbiddenWords: ChannelForbiddenWords[]
|
||||
quotes: ChannelQuotes[]
|
||||
commands: ChannelCommands[]
|
||||
forbidSpecialChars: ChannelForbidSpecialChars
|
||||
noDuplicate: ChannelNoDuplicate
|
||||
// TODO: bannedJIDs: string[]
|
||||
}
|
||||
slowMode: {
|
||||
@ -109,6 +111,7 @@ interface ChannelConfigurationOptions {
|
||||
terms?: string // comes with Livechat 10.2.0
|
||||
moderation: { // comes with Livechat 10.3.0
|
||||
delay: number
|
||||
anonymize: boolean // comes with Livechat 11.0.0
|
||||
}
|
||||
}
|
||||
|
||||
@ -131,6 +134,20 @@ interface ChannelCommands {
|
||||
message: string
|
||||
}
|
||||
|
||||
interface ChannelForbidSpecialChars {
|
||||
enabled: boolean
|
||||
tolerance: number
|
||||
reason: string
|
||||
applyToModerators: boolean
|
||||
}
|
||||
|
||||
interface ChannelNoDuplicate {
|
||||
enabled: boolean
|
||||
reason: string
|
||||
delay: number
|
||||
applyToModerators: boolean
|
||||
}
|
||||
|
||||
interface ChannelConfiguration {
|
||||
channel: ChannelInfos
|
||||
configuration: ChannelConfigurationOptions
|
||||
@ -191,6 +208,17 @@ interface LivechatToken {
|
||||
date: number
|
||||
}
|
||||
|
||||
interface AdminFirewallConfigurationFile {
|
||||
name: string
|
||||
content: string
|
||||
enabled: boolean
|
||||
}
|
||||
|
||||
interface AdminFirewallConfiguration {
|
||||
enabled: boolean
|
||||
files: AdminFirewallConfigurationFile[]
|
||||
}
|
||||
|
||||
export type {
|
||||
ConverseJSTheme,
|
||||
InitConverseJSParams,
|
||||
@ -211,5 +239,7 @@ export type {
|
||||
ChannelEmojis,
|
||||
ChannelEmojisConfiguration,
|
||||
ProsodyAuthentInfos,
|
||||
LivechatToken
|
||||
LivechatToken,
|
||||
AdminFirewallConfiguration,
|
||||
AdminFirewallConfigurationFile
|
||||
}
|
||||
|
@ -44,7 +44,7 @@ function videoHasWebchat (settings: VideoHasWebchatSettings, video: SharedVideo)
|
||||
if (video.remote) return false
|
||||
}
|
||||
|
||||
if (settings['chat-per-live-video'] && video.isLive && video.pluginData && video.pluginData['livechat-active']) {
|
||||
if (settings['chat-per-live-video'] && video.isLive && video.pluginData?.['livechat-active']) {
|
||||
return true
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user