Refactored FetchMedia()

This commit is contained in:
nutty
2026-07-01 03:36:27 +10:00
parent 75fee5ed01
commit 3fe4ee5051
+58 -39
View File
@@ -147,10 +147,7 @@ async function FetchMedia() {
const data = await response.json();
// Remove the SMTC Bridge popup if it's on screen
if (smtcBridgePopup) {
smtcBridgePopup.close();
smtcBridgePopup = null;
}
CloseSMTCBridgePopup();
// Check the SMTC Bridge version
CheckSMTCBridgeVersion(data.app_version);
@@ -162,6 +159,25 @@ async function FetchMedia() {
console.error("Failed to connect to Flask media server:", error);
// Show a popup to instruct the user to install SMTC Bridge
ShowWaitingForSMTCBridgePopup();
}
}
window.addEventListener('DOMContentLoaded', () => {
// Start polling every 1000 milliseconds
setInterval(FetchMedia, 1000);
// Run once immediately on script load
FetchMedia();
});
////////////
// POPUPS //
////////////
function ShowWaitingForSMTCBridgePopup() {
const newPopup = showPopup(
'/.common/resources/smtc-bridge-icon.png',
'Waiting for SMTC Bridge',
@@ -180,34 +196,9 @@ async function FetchMedia() {
smtcBridgePopup = newPopup;
}
}
}
window.addEventListener('DOMContentLoaded', () => {
// Start polling every 1000 milliseconds
setInterval(FetchMedia, 1000);
// Run once immediately on script load
FetchMedia();
});
//////////////////////
// HELPER FUNCTIONS //
//////////////////////
function CheckSMTCBridgeVersion(installedVersion) {
// Check that the server/client are on the same SMTC Bridge version
// const VersionStatus = VersionCheck(REQUIRED_VERSION, installedVersion);
const versionStatus = VersionCheck(REQUIRED_VERSION, installedVersion);
if (skipVersionCheck)
return;
switch (versionStatus)
{
case 'incompatible':
{
function ShowSMTCBridgeUpdateRequiredPopup(installedVersion) {
const newPopup = showPopup(
'/.common/resources/smtc-bridge-icon.png',
'Update Required',
@@ -227,10 +218,7 @@ function CheckSMTCBridgeVersion(installedVersion) {
}
}
skipVersionCheck = false;
break;
case 'soft-warning':
{
function ShowSMTCBridgeUpdateAvailablePopup(installedVersion) {
const newPopup = showPopup(
'/.common/resources/smtc-bridge-icon.png',
'Update Available',
@@ -250,19 +238,50 @@ function CheckSMTCBridgeVersion(installedVersion) {
}
setTimeout(() => {
CloseVersionCheckPopup();
}, 10000);
}
function CloseSMTCBridgePopup()
{
if (smtcBridgePopup) {
smtcBridgePopup.close();
smtcBridgePopup = null;
}
}
function CloseVersionCheckPopup()
{
if (versionCheckPopup) {
versionCheckPopup.close();
versionCheckPopup = null;
}
}, 10000);
}
//////////////////////
// HELPER FUNCTIONS //
//////////////////////
function CheckSMTCBridgeVersion(installedVersion) {
// Check that the server/client are on the same SMTC Bridge version
// const VersionStatus = VersionCheck(REQUIRED_VERSION, installedVersion);
const versionStatus = VersionCheck(REQUIRED_VERSION, installedVersion);
if (skipVersionCheck)
return;
switch (versionStatus)
{
case 'incompatible':
ShowSMTCBridgeUpdateRequiredPopup(installedVersion);
skipVersionCheck = false;
break;
case 'soft-warning':
ShowSMTCBridgeUpdateAvailablePopup(installedVersion);
skipVersionCheck = true;
break;
default:
if (versionCheckPopup) {
versionCheckPopup.close();
versionCheckPopup = null;
}
CloseVersionCheckPopup();
break;
}
}