You've already forked Tricky-Addon-Update-Target-List
mirror of
https://github.com/KOWX712/Tricky-Addon-Update-Target-List.git
synced 2025-09-06 06:37:09 +00:00
128 lines
4.4 KiB
JavaScript
128 lines
4.4 KiB
JavaScript
import { linkRedirect, basePath, showPrompt } from './main.js';
|
|
import { spawn } from './assets/kernelsu.js';
|
|
|
|
const aboutOverlay = document.getElementById('about-overlay');
|
|
const aboutContent = document.querySelector('.about-menu');
|
|
const closeAbout = document.getElementById('close-about');
|
|
|
|
let isDownloading = false;
|
|
|
|
// Function to show about overlay
|
|
document.getElementById("about").addEventListener("click", () => {
|
|
// Show about menu
|
|
setTimeout(() => {
|
|
document.body.classList.add("no-scroll");
|
|
aboutOverlay.style.display = 'flex';
|
|
setTimeout(() => {
|
|
aboutOverlay.style.opacity = '1';
|
|
aboutContent.classList.add('open');
|
|
}, 10);
|
|
}, 80);
|
|
});
|
|
|
|
const hideMenu = () => {
|
|
document.body.classList.remove("no-scroll");
|
|
aboutOverlay.style.opacity = '0';
|
|
aboutContent.classList.remove('open');
|
|
setTimeout(() => {
|
|
aboutOverlay.style.display = 'none';
|
|
}, 200);
|
|
};
|
|
|
|
closeAbout.addEventListener("click", hideMenu);
|
|
aboutOverlay.addEventListener('click', (event) => {
|
|
if (event.target === aboutOverlay) hideMenu();
|
|
});
|
|
|
|
// Event listener for link redirect
|
|
document.getElementById('telegram').addEventListener('click', () => {
|
|
linkRedirect('https://t.me/kowchannel');
|
|
});
|
|
document.getElementById('github').addEventListener('click', () => {
|
|
linkRedirect('https://github.com/KOWX712/Tricky-Addon-Update-Target-List');
|
|
});
|
|
|
|
// Update to latest canary verison
|
|
document.getElementById('canary').addEventListener('click', () => {
|
|
if (isDownloading) return;
|
|
isDownloading = true;
|
|
|
|
showPrompt("prompt_checking_update", true, 10000);
|
|
let htmlContent = '';
|
|
const link = "https://nightly.link/KOWX712/Tricky-Addon-Update-Target-List/workflows/build/main?preview"
|
|
const output = spawn('sh', [`${basePath}/common/get_extra.sh`, '--download', `${link}`],
|
|
{ env: { PATH: "$PATH:/data/adb/ap/bin:/data/adb/ksu/bin:/data/adb/magisk" } });
|
|
output.stdout.on('data', (data) => {
|
|
htmlContent += data;
|
|
});
|
|
output.on('exit', async (code) => {
|
|
if (code === 0) {
|
|
const parser = new DOMParser();
|
|
const doc = parser.parseFromString(htmlContent, "text/html");
|
|
const zipURL = doc.querySelector('a[href$=".zip"]')?.href;
|
|
|
|
if (zipURL) {
|
|
// Extract versionCode
|
|
const parts = zipURL.split("-");
|
|
const version = parts.length >= 2 ? parts[parts.length - 2] : null;
|
|
|
|
// Check local version
|
|
const output = spawn('sh', [`${basePath}/common/get_extra.sh`, '--check-update', `${version}`], { env: { CANARY: "true" } });
|
|
output.on('exit', (code) => {
|
|
if (code === 0) {
|
|
showPrompt("prompt_no_update");
|
|
isDownloading = false;
|
|
} else if (code === 1) {
|
|
downloadUpdate(zipURL);
|
|
}
|
|
});
|
|
} else {
|
|
console.error("No link found.");
|
|
}
|
|
} else {
|
|
console.error("Error fetching ZIP link");
|
|
isDownloading = false;
|
|
}
|
|
});
|
|
});
|
|
|
|
/**
|
|
* Funtion to download update
|
|
* @param {string} link - link of file to download
|
|
* @returns {void}
|
|
*/
|
|
function downloadUpdate(link) {
|
|
showPrompt("prompt_downloading", true, 20000);
|
|
const download = spawn('sh', [`${basePath}/common/get_extra.sh`, '--get-update', `${link}`],
|
|
{ env: { PATH: "$PATH:/data/adb/ap/bin:/data/adb/ksu/bin:/data/adb/magisk:/data/data/com.termux/files/usr/bin" } });
|
|
download.on('exit', (code) => {
|
|
if (code === 0) {
|
|
installUpdate();
|
|
} else {
|
|
showPrompt("prompt_download_fail", false);
|
|
isDownloading = false;
|
|
}
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Funtion to install update
|
|
* @returns {void}
|
|
*/
|
|
function installUpdate() {
|
|
showPrompt("prompt_installing");
|
|
const output = spawn('sh', [`${basePath}/common/get_extra.sh`, '--install-update'],
|
|
{ env: { PATH: "$PATH:/data/adb/ap/bin:/data/adb/ksu/bin:/data/adb/magisk" } });
|
|
output.stderr.on('data', (data) => {
|
|
console.error('Error during installation:', data);
|
|
});
|
|
output.on('exit', (code) => {
|
|
if (code === 0) {
|
|
showPrompt("prompt_installed");
|
|
} else {
|
|
showPrompt("prompt_install_fail", false);
|
|
}
|
|
isDownloading = false;
|
|
});
|
|
}
|