e4683cf282
* rebuildData * handling video update (to check for channel changes)
42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
import type { RegisterServerOptions } from '@peertube/peertube-types'
|
|
import { getCurrentProsody } from './host'
|
|
import { getAPIKey } from '../../apikey'
|
|
const got = require('got')
|
|
|
|
interface ProsodyRoomDesc {
|
|
jid: string
|
|
localpart: string
|
|
name: string
|
|
lang: string
|
|
description: string
|
|
lasttimestamp?: number
|
|
}
|
|
|
|
async function listProsodyRooms (options: RegisterServerOptions): Promise<ProsodyRoomDesc[]> {
|
|
const logger = options.peertubeHelpers.logger
|
|
|
|
const currentProsody = getCurrentProsody()
|
|
if (!currentProsody) {
|
|
throw new Error('It seems that prosody is not binded... Cant list rooms.')
|
|
}
|
|
|
|
// Requesting on localhost, because currentProsody.host does not always resolves correctly (docker use case, ...)
|
|
const apiUrl = `http://localhost:${currentProsody.port}/peertubelivechat_list_rooms/list-rooms`
|
|
logger.debug('Calling list rooms API on url: ' + apiUrl)
|
|
const rooms = await got(apiUrl, {
|
|
method: 'GET',
|
|
headers: {
|
|
authorization: 'Bearer ' + await getAPIKey(options),
|
|
host: currentProsody.host
|
|
},
|
|
responseType: 'json',
|
|
resolveBodyOnly: true
|
|
})
|
|
|
|
return rooms
|
|
}
|
|
|
|
export {
|
|
listProsodyRooms
|
|
}
|