Using types declarations from the official @peertube/peertube-types package.

This commit is contained in:
John Livingston
2022-01-11 01:29:33 +01:00
parent c1fb7b69ed
commit 7db856ce0f
35 changed files with 3131 additions and 275 deletions

View File

@ -1,3 +1,4 @@
import type { RegisterServerOptions, MVideoThumbnail } from '@peertube/peertube-types'
async function initCustomFields (options: RegisterServerOptions): Promise<void> {
const registerHook = options.registerHook
const storageManager = options.storageManager
@ -17,11 +18,11 @@ async function initCustomFields (options: RegisterServerOptions): Promise<void>
const value = body.pluginData['livechat-active']
// NB: on Peertube 3.2.1, value is "true", "false", or "null", as strings.
if (value === true || value === 'true') {
logger.info(`Saving livechat-active=true for video ${video.id}`)
await storageManager.storeData(`livechat-active-${video.id}`, true)
logger.info(`Saving livechat-active=true for video ${video.id as string}`)
await storageManager.storeData(`livechat-active-${video.id as string}`, true)
} else if (value === false || value === 'false' || value === 'null') {
logger.info(`Saving livechat-active=false for video ${video.id}`)
await storageManager.storeData(`livechat-active-${video.id}`, false)
logger.info(`Saving livechat-active=false for video ${video.id as string}`)
await storageManager.storeData(`livechat-active-${video.id as string}`, false)
} else {
logger.error('Unknown value ' + JSON.stringify(value) + ' for livechat-active field.')
}
@ -38,7 +39,14 @@ async function initCustomFields (options: RegisterServerOptions): Promise<void>
})
}
async function fillVideoCustomFields (options: RegisterServerOptions, video: MVideoThumbnail): Promise<void> {
// FIXME: @peertube/peertube-types@4.0.0-beta.3 is pluginData missing?
interface MVideoThumbnailLiveChat extends MVideoThumbnail {
pluginData?: {
'livechat-active'?: boolean
}
}
async function fillVideoCustomFields (options: RegisterServerOptions, video: MVideoThumbnailLiveChat): Promise<void> {
if (!video) return video
if (!video.pluginData) video.pluginData = {}
if (!video.id) return
@ -46,8 +54,8 @@ async function fillVideoCustomFields (options: RegisterServerOptions, video: MVi
const logger = options.peertubeHelpers.logger
if (video.isLive) {
const result: any = await storageManager.getData(`livechat-active-${video.id}`)
logger.debug(`Video ${video.id} has livechat-active=` + JSON.stringify(result))
const result: any = await storageManager.getData(`livechat-active-${video.id as string}`)
logger.debug(`Video ${video.id as string} has livechat-active=` + JSON.stringify(result))
// NB: I got weird stuff here. Maybe Peertube 3.2.1 bug?
if (result === true || result === 'true') {
video.pluginData['livechat-active'] = true