From 72d8fec373aa42ae50ff534411ed00fdf3428321 Mon Sep 17 00:00:00 2001 From: Silberengel Date: Sat, 16 May 2026 07:54:20 +0200 Subject: [PATCH] fix hivetalk links --- package.json | 2 +- src/constants.ts | 2 +- src/lib/hivetalk.ts | 26 ++++++++++++++------------ 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index a218cbb8..039db83e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "imwald", - "version": "23.10.1", + "version": "23.10.2", "description": "Imwald — a user-friendly Nostr client focused on relay feed browsing, publications, and relay discovery", "private": true, "type": "module", diff --git a/src/constants.ts b/src/constants.ts index e6571136..6c26ebc6 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -31,7 +31,7 @@ export const TRANSLATE_URL = /** HiveTalk (WebRTC video call) base URL; override with VITE_HIVETALK_BASE_URL for self-hosted instances. */ export const HIVETALK_BASE_URL = - (import.meta.env.VITE_HIVETALK_BASE_URL as string | undefined) ?? 'https://vanilla.hivetalk.org' + (import.meta.env.VITE_HIVETALK_BASE_URL as string | undefined) ?? 'https://honey.hivetalk.org' /** * Stable reference to this module's URL at load time. diff --git a/src/lib/hivetalk.ts b/src/lib/hivetalk.ts index c2312d3a..a8962673 100644 --- a/src/lib/hivetalk.ts +++ b/src/lib/hivetalk.ts @@ -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). */