|
|
|
|
@ -13,20 +13,22 @@ export interface HiveTalkJoinParams {
@@ -13,20 +13,22 @@ export interface HiveTalkJoinParams {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Build a HiveTalk direct-join URL. See https://github.com/HiveTalk/hivetalksfu#direct-join
|
|
|
|
|
* Build a HiveTalk Honey direct-join URL (`/meet/{room}&name=…&…`). |
|
|
|
|
* Legacy vanilla used `/join?room=…` — see https://honey.hivetalk.org
|
|
|
|
|
*/ |
|
|
|
|
export function buildHiveTalkJoinUrl(params: HiveTalkJoinParams): string { |
|
|
|
|
const url = new URL('/join', HIVETALK_BASE_URL) |
|
|
|
|
url.searchParams.set('room', params.room) |
|
|
|
|
url.searchParams.set('name', params.name) |
|
|
|
|
url.searchParams.set('roomPassword', params.roomPassword ?? '0') |
|
|
|
|
url.searchParams.set('audio', params.audio !== false ? '1' : '0') |
|
|
|
|
url.searchParams.set('video', params.video !== false ? '1' : '0') |
|
|
|
|
url.searchParams.set('screen', params.screen ? '1' : '0') |
|
|
|
|
url.searchParams.set('notify', params.notify !== false ? '1' : '0') |
|
|
|
|
if (params.hide !== undefined) url.searchParams.set('hide', params.hide ? '1' : '0') |
|
|
|
|
if (params.token) url.searchParams.set('token', params.token) |
|
|
|
|
return url.toString() |
|
|
|
|
const base = HIVETALK_BASE_URL.replace(/\/$/, '') |
|
|
|
|
const query = [ |
|
|
|
|
`name=${encodeURIComponent(params.name)}`, |
|
|
|
|
`roomPassword=${encodeURIComponent(params.roomPassword ?? '0')}`, |
|
|
|
|
`audio=${params.audio !== false ? '1' : '0'}`, |
|
|
|
|
`video=${params.video !== false ? '1' : '0'}`, |
|
|
|
|
`screen=${params.screen ? '1' : '0'}`, |
|
|
|
|
`notify=${params.notify !== false ? '1' : '0'}` |
|
|
|
|
] |
|
|
|
|
if (params.hide !== undefined) query.push(`hide=${params.hide ? '1' : '0'}`) |
|
|
|
|
if (params.token) query.push(`token=${encodeURIComponent(params.token)}`) |
|
|
|
|
return `${base}/meet/${encodeURIComponent(params.room)}&${query.join('&')}` |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** Deterministic room id for a 1:1 call between two pubkeys (same room from either side). */ |
|
|
|
|
|