You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.6 KiB
59 lines
1.6 KiB
/* eslint-disable prefer-destructuring */ |
|
const ADMIN_USERNAME = process.env.NEXT_PUBLIC_ADMIN_USERNAME; |
|
const ADMIN_STREAMKEY = process.env.NEXT_PUBLIC_ADMIN_STREAMKEY; |
|
const NEXT_PUBLIC_API_HOST = process.env.NEXT_PUBLIC_API_HOST; |
|
|
|
const API_LOCATION = `${NEXT_PUBLIC_API_HOST}api/admin/`; |
|
|
|
export const FETCH_INTERVAL = 15000; |
|
|
|
// Current inbound broadcaster info |
|
export const BROADCASTER = `${API_LOCATION}broadcaster`; |
|
|
|
// Disconnect inbound stream |
|
export const DISCONNECT = `${API_LOCATION}disconnect`; |
|
|
|
// Change the current streaming key in memory |
|
export const STREAMKEY_CHANGE = `${API_LOCATION}changekey`; |
|
|
|
// Current server config |
|
export const SERVER_CONFIG = `${API_LOCATION}serverconfig`; |
|
|
|
// Get viewer count over time |
|
export const VIEWERS_OVER_TIME = `${API_LOCATION}viewersOverTime`; |
|
|
|
// Get currently connected clients |
|
export const CONNECTED_CLIENTS = `${API_LOCATION}clients`; |
|
|
|
|
|
// Get hardware stats |
|
export const HARDWARE_STATS = `${API_LOCATION}hardwarestats`; |
|
|
|
|
|
|
|
// Current Stream status (no auth) |
|
// use `admin/broadcaster` instead |
|
// export const STREAM_STATUS = '/api/status'; |
|
|
|
export async function fetchData(url) { |
|
const encoded = btoa(`${ADMIN_USERNAME}:${ADMIN_STREAMKEY}`); |
|
|
|
try { |
|
const response = await fetch(url, { |
|
headers: { |
|
'Authorization': `Basic ${encoded}`, |
|
}, |
|
mode: 'cors', |
|
credentials: 'include', |
|
}); |
|
if (!response.ok) { |
|
const message = `An error has occured: ${response.status}`; |
|
throw new Error(message); |
|
} |
|
const json = await response.json(); |
|
return json; |
|
} catch (error) { |
|
console.log(error) |
|
} |
|
return {}; |
|
}
|
|
|