Did some package updates, Svelte build changes (fewer warnings), work on IDAA and Jitsi service.

This commit is contained in:
Scott Idem
2025-12-12 14:57:10 -05:00
parent 1611ac0183
commit 2a5b46883f
7 changed files with 256 additions and 212 deletions

18
src/app.d.ts vendored
View File

@@ -2,8 +2,24 @@
// for information about these interfaces
// and what to do when importing types
declare namespace App {
// interface Locals {}
interface Locals {
userid: string;
}
// interface PageData {}
// interface Error {}
// interface Platform {}
}
declare global {
namespace App {
interface Platform {}
}
interface ImportMetaEnv {
VITE_NOVI_API_KEY: string;
VITE_NOVI_MOD_GROUP_GUID: string;
VITE_JITSI_TOKEN_ENDPOINT: string;
}
interface ImportMeta {
readonly env: ImportMetaEnv;
}
}

View File

@@ -473,6 +473,7 @@
class="input text-xl hover:text-3xl font-bold font-mono w-96"
hover:w-2/5
-->
<!-- svelte-ignore a11y_autofocus -->
<input
type="search"
placeholder="name, email"

View File

@@ -16,7 +16,7 @@
room_name: string,
user_id: string
) {
const token_endpoint = 'https://dev-api.oneskyit.com/api/jitsi_token';
const token_endpoint = import.meta.env.VITE_JITSI_TOKEN_ENDPOINT;
const payload = {
name: display_name,
@@ -63,7 +63,9 @@
}
onMount(async () => {
console.log('Jitsi: onMount - starting initialization...');
const url_params = data.params;
console.log('Jitsi: url_params:', url_params);
// --- Start with fallback data from URL ---
let user_id = url_params.uuid;
@@ -73,27 +75,31 @@
const room_name = url_params.room ?? 'Default-Room';
const domain = url_params.domain ?? 'jitsi.dgrzone.com';
console.log(`Jitsi: user_id: ${user_id}, display_name: ${display_name}, email: ${email}, room_name: ${room_name}, domain: ${domain}`);
if (!user_id) {
const container = document.getElementById(jitsi_container_id);
if (container) {
container.innerHTML =
'<h1>User ID (uuid) is missing. Cannot start meeting.</h1>';
}
console.error('Jitsi: User ID (uuid) is missing. Cannot start meeting.');
return;
}
// --- Fetch dynamic data from Novi API ---
const novi_api_key = 'CmNdWgdPmgluBWjiTd8xsUCk5mio8F1O9DYAh0pVDcg=';
const novi_api_key = import.meta.env.VITE_NOVI_API_KEY;
const novi_api_headers = new Headers();
novi_api_headers.append('Authorization', `Basic ${novi_api_key}`);
const requestOptions = {
method: 'GET',
headers: novi_api_headers
};
console.log('Jitsi: Attempting to fetch moderator list from Novi API...');
try {
// Fetch the list of moderators from the Novi group
const mod_group_guid = 'd76d2c00-962d-40f6-a2e8-ed9c85594d96';
const mod_group_guid = import.meta.env.VITE_NOVI_MOD_GROUP_GUID;
const mod_list_url = `https://www.idaa.org/api/groups/${mod_group_guid}/members?pageSize=200`;
console.log(`Fetching moderator list from Novi API: ${mod_list_url}`);
const mods_response = await fetch(mod_list_url, requestOptions);
@@ -137,21 +143,27 @@
console.warn('Could not fetch moderator list from Novi API.');
}
} catch (error) {
console.error('Error fetching data from Novi API:', error);
console.error('Jitsi: Error fetching data from Novi API:', error);
// Fallback to data from URL params is the default behavior
}
// --- Initialize Jitsi ---
let jwtToken = null;
console.log(`Jitsi: User is_moderator: ${is_moderator}`);
if (is_moderator) {
console.log('Jitsi: Attempting to get JWT token for moderator...');
jwtToken = await getJitsiJwt(display_name, email, is_moderator, room_name, user_id);
if (!jwtToken) {
const container = document.getElementById(jitsi_container_id);
if (container) {
container.innerHTML = '<h1>Authentication Failed. Please try again.</h1>';
}
console.error('Jitsi: Authentication failed. JWT token not received.');
return;
}
console.log('Jitsi: Successfully received JWT token.');
} else {
console.log('Jitsi: User is not a moderator, proceeding without JWT token.');
}
const disabled_sounds = [
@@ -162,6 +174,7 @@
url_params.raise_hand_sound === 'true' ? 'RAISE_HAND_SOUND' : null
].filter((sound) => sound);
console.log('Jitsi: Jitsi options being set up...');
const options = {
roomName: room_name,
width: '100%',
@@ -182,9 +195,12 @@
},
jwt: jwtToken
};
console.log('Jitsi: Jitsi options:', options);
console.log('Jitsi: Initializing JitsiMeetExternalAPI...');
// @ts-ignore
jitsi_api = new JitsiMeetExternalAPI(domain, options);
console.log('Jitsi: JitsiMeetExternalAPI initialized:', jitsi_api);
});
onDestroy(() => {