android has dynamic downloads

This commit is contained in:
2026-09-08 18:12:25 -07:00
parent 0490ecb9c8
commit 806b32e30e
4 changed files with 359 additions and 136 deletions

View File

@@ -333,7 +333,7 @@
<path
d="M17.6 9.2l1.5-2.6c.1-.2.1-.4-.1-.5-.2-.1-.4-.1-.5.1L17 8.8c-.9-.4-1.9-.6-3-.6s-2.1.2-3 .6L9.5 6.2c-.1-.2-.3-.2-.5-.1-.2.1-.2.3-.1.5l1.5 2.6C8.1 10.2 6.4 12.1 6 14.5h12c-.4-2.4-2.1-4.3-4.4-5.3zM9.5 13.2c-.4 0-.7-.3-.7-.7s.3-.7.7-.7.7.3.7.7-.3.7-.7.7zm5 0c-.4 0-.7-.3-.7-.7s.3-.7.7-.7.7.3.7.7-.3.7-.7.7zM6 15h12v3.5c0 .8-.7 1.5-1.5 1.5h-9c-.8 0-1.5-.7-1.5-1.5V15zm2 5v2c0 .6-.4 1-1 1s-1-.4-1-1v-2h2zm10 0v2c0 .6-.4 1-1 1s-1-.4-1-1v-2h2z" />
</svg>
<span>Android v1.0.2</span>
<span>Android v0.0.0</span>
</a>
<a href="#" class="download-option" id="hero-mac-download">
<svg class="mac-icon" width="16" height="16" viewBox="0 0 24 24" fill="currentColor"
@@ -358,13 +358,21 @@
const macDownload = document.getElementById(macId);
if (!expandable || !downloadBtn || !downloadOptions || !windowsDownload || !goDownload || !macDownload) return;
try {
const response = await fetch("https://gitlab.com/api/v4/projects/vyla-entertainment%2Fhome/releases/permalink/latest");
if (!response.ok) throw new Error("Failed to fetch latest release");
const release = await response.json();
const version = release.tag_name;
const [homeResponse, goResponse] = await Promise.all([
fetch("https://gitlab.com/api/v4/projects/vyla-entertainment%2Fhome/releases/permalink/latest"),
fetch("https://gitlab.com/api/v4/projects/vyla-entertainment%2Fgo/releases/permalink/latest")
]);
if (!homeResponse.ok) throw new Error("Failed to fetch latest home release");
if (!goResponse.ok) throw new Error("Failed to fetch latest go release");
const homeRelease = await homeResponse.json();
const goRelease = await goResponse.json();
const version = homeRelease.tag_name;
const goVersion = goRelease.tag_name;
const fileVersion = version.replace(/^v/, "");
const windowsAsset = release.assets?.links?.find(link => link.name?.toLowerCase().endsWith(".exe"));
const macAsset = release.assets?.links?.find(link => link.name?.toLowerCase().endsWith(".dmg"));
const goFileVersion = goVersion.replace(/^v/, "");
const windowsAsset = homeRelease.assets?.links?.find(link => link.name?.toLowerCase().endsWith(".exe"));
const macAsset = homeRelease.assets?.links?.find(link => link.name?.toLowerCase().endsWith(".dmg"));
const goAsset = goRelease.assets?.links?.find(link => link.name?.toLowerCase().endsWith(".apk"));
const btnText = downloadBtn.querySelector(".download-btn-text");
if (btnText) {
btnText.textContent = `Download ${version}`;
@@ -375,8 +383,12 @@
windowsDownload.href = `https://gitlab.com/api/v4/projects/vyla-entertainment%2Fhome/packages/generic/vyla-home/${version}/Vyla-Home_${fileVersion}_x64-setup.exe`;
}
windowsDownload.querySelector("span").textContent = `Windows ${version}`;
goDownload.href = "https://gitlab.com/api/v4/projects/vyla-entertainment%2Fgo/packages/generic/vyla-go/v1.0.2/vyla-go-v1.0.2-1788911736508.apk";
goDownload.querySelector("span").textContent = "Android v1.0.2";
if (goAsset?.url) {
goDownload.href = goAsset.url;
} else {
goDownload.href = `https://gitlab.com/api/v4/projects/vyla-entertainment%2Fgo/packages/generic/vyla-go/${goVersion}/vyla-go-${goFileVersion}.apk`;
}
goDownload.querySelector("span").textContent = `Android ${goVersion}`;
if (macAsset?.url) {
macDownload.href = macAsset.url;
} else {
@@ -396,8 +408,7 @@
btnText.textContent = "Download Latest Release";
}
windowsDownload.querySelector("span").textContent = "Windows (Latest)";
goDownload.href = "https://gitlab.com/api/v4/projects/vyla-entertainment%2Fgo/packages/generic/vyla-go/v1.0.2/vyla-go-v1.0.2-1788911736508.apk";
goDownload.querySelector("span").textContent = "Android v1.0.2";
goDownload.querySelector("span").textContent = "Android (Latest)";
macDownload.querySelector("span").textContent = "Mac (Latest)";
}
}
@@ -621,7 +632,7 @@
<path
d="M17.6 9.2l1.5-2.6c.1-.2.1-.4-.1-.5-.2-.1-.4-.1-.5.1L17 8.8c-.9-.4-1.9-.6-3-.6s-2.1.2-3 .6L9.5 6.2c-.1-.2-.3-.2-.5-.1-.2.1-.2.3-.1.5l1.5 2.6C8.1 10.2 6.4 12.1 6 14.5h12c-.4-2.4-2.1-4.3-4.4-5.3zM9.5 13.2c-.4 0-.7-.3-.7-.7s.3-.7.7-.7.7.3.7.7-.3.7-.7.7zm5 0c-.4 0-.7-.3-.7-.7s.3-.7.7-.7.7.3.7.7-.3.7-.7.7zM6 15h12v3.5c0 .8-.7 1.5-1.5 1.5h-9c-.8 0-1.5-.7-1.5-1.5V15zm2 5v2c0 .6-.4 1-1 1s-1-.4-1-1v-2h2zm10 0v2c0 .6-.4 1-1 1s-1-.4-1-1v-2h2z" />
</svg>
<span>Android v1.0.2</span>
<span>Android v0.0.0</span>
</a>
</div>
</div>
@@ -637,13 +648,21 @@
const macDownload = document.getElementById(macId);
if (!expandable || !downloadBtn || !downloadOptions || !windowsDownload || !goDownload || !macDownload) return;
try {
const response = await fetch("https://gitlab.com/api/v4/projects/vyla-entertainment%2Fhome/releases/permalink/latest");
if (!response.ok) throw new Error("Failed to fetch latest release");
const release = await response.json();
const version = release.tag_name;
const [homeResponse, goResponse] = await Promise.all([
fetch("https://gitlab.com/api/v4/projects/vyla-entertainment%2Fhome/releases/permalink/latest"),
fetch("https://gitlab.com/api/v4/projects/vyla-entertainment%2Fgo/releases/permalink/latest")
]);
if (!homeResponse.ok) throw new Error("Failed to fetch latest home release");
if (!goResponse.ok) throw new Error("Failed to fetch latest go release");
const homeRelease = await homeResponse.json();
const goRelease = await goResponse.json();
const version = homeRelease.tag_name;
const goVersion = goRelease.tag_name;
const fileVersion = version.replace(/^v/, "");
const windowsAsset = release.assets?.links?.find(link => link.name?.toLowerCase().endsWith(".exe"));
const macAsset = release.assets?.links?.find(link => link.name?.toLowerCase().endsWith(".dmg"));
const goFileVersion = goVersion.replace(/^v/, "");
const windowsAsset = homeRelease.assets?.links?.find(link => link.name?.toLowerCase().endsWith(".exe"));
const macAsset = homeRelease.assets?.links?.find(link => link.name?.toLowerCase().endsWith(".dmg"));
const goAsset = goRelease.assets?.links?.find(link => link.name?.toLowerCase().endsWith(".apk"));
const btnText = downloadBtn.querySelector(".download-btn-text");
if (btnText) {
btnText.textContent = `Download ${version}`;
@@ -654,8 +673,12 @@
windowsDownload.href = `https://gitlab.com/api/v4/projects/vyla-entertainment%2Fhome/packages/generic/vyla-home/${version}/Vyla-Home_${fileVersion}_x64-setup.exe`;
}
windowsDownload.querySelector("span").textContent = `Windows ${version}`;
goDownload.href = "https://gitlab.com/api/v4/projects/vyla-entertainment%2Fgo/packages/generic/vyla-go/v1.0.2/vyla-go-v1.0.2-1788911736508.apk";
goDownload.querySelector("span").textContent = "Android v1.0.2";
if (goAsset?.url) {
goDownload.href = goAsset.url;
} else {
goDownload.href = `https://gitlab.com/api/v4/projects/vyla-entertainment%2Fgo/packages/generic/vyla-go/${goVersion}/vyla-go-${goFileVersion}.apk`;
}
goDownload.querySelector("span").textContent = `Android ${goVersion}`;
if (macAsset?.url) {
macDownload.href = macAsset.url;
} else {
@@ -675,8 +698,7 @@
btnText.textContent = "Download Latest Release";
}
windowsDownload.querySelector("span").textContent = "Windows (Latest)";
goDownload.href = "https://gitlab.com/api/v4/projects/vyla-entertainment%2Fgo/packages/generic/vyla-go/v1.0.2/vyla-go-v1.0.2-1788911736508.apk";
goDownload.querySelector("span").textContent = "Android v1.0.2";
goDownload.querySelector("span").textContent = "Android (Latest)";
macDownload.querySelector("span").textContent = "Mac (Latest)";
}
}