BCPackages-Interface/JS/mainstream(r1)-script.js
2024-07-20 23:01:58 +02:00

45 lines
1.8 KiB
JavaScript

function doCORSRequest(options, printResult) {
var x = new XMLHttpRequest();
var proxy_url = 'https://api.allorigins.win/get?url=';
var target_url = encodeURIComponent(options.url);
x.open(options.method, proxy_url + target_url);
x.onload = x.onerror = function() {
var response = JSON.parse(x.responseText);
printResult(
options.method + ' ' + options.url + '\n' +
x.status + ' ' + x.statusText + '\n\n' +
(response.contents || '')
);
};
x.send(options.data);
}
doCORSRequest({
method: "GET",
url: "https://packages.boostyconnect.com/oreonproject/oreon-lime/",
}, function printResult(res) {
console.log('Response:', res);
// https://packages.boostyconnect.com/Oreon-lime-(R1)/gnome-shell-oreon-theming-1-11.fc39.noarch.rpm
try {
const parser = new DOMParser();
const doc = parser.parseFromString(res, "text/html");
const links = doc.querySelectorAll("a");
links.forEach((link) => {
const forbidden_links = ["Name", "Last modified", "Size", "Description", "Parent Directory"];
if (!forbidden_links.includes(link.innerHTML.trim())) {
const link_e = document.createElement("a");
const new_href = link.href.replace("/Oreon-lime-(R1)/", "/oreonproject/oreon-lime/")
link_e.href = new_href;
link_e.innerHTML = link.innerHTML;
link_e.className = "package";
link_e.target = "_blank";
document.getElementById("packages").appendChild(link_e);
console.log('Original URL:', link.href);
console.log('Modified URL:', new_href);
}
});
} catch (e) {
console.error('Parsing error:', e);
}
});