From afcedd44615d20423d58f4d9c9d8cfa3838a54d4 Mon Sep 17 00:00:00 2001 From: kaotisk Date: Fri, 29 Nov 2024 16:23:39 +0200 Subject: Major refactoring --- src/js/arching-kaos-fetch.js | 52 ++++++++++++++++++++++++++++---------------- 1 file changed, 33 insertions(+), 19 deletions(-) (limited to 'src/js/arching-kaos-fetch.js') diff --git a/src/js/arching-kaos-fetch.js b/src/js/arching-kaos-fetch.js index 523baff..15394b2 100644 --- a/src/js/arching-kaos-fetch.js +++ b/src/js/arching-kaos-fetch.js @@ -5,7 +5,10 @@ * @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL v3.0 * */ -function archingKaosFetchJSON( url, callback, params ){ +import { archingKaosLog } from "./arching-kaos-log.js"; +import { httpProgressPlaceholder, progressPlaceholder } from "./app.js"; + +export function archingKaosFetchJSON( url, callback, params ){ const request = new XMLHttpRequest(); request.addEventListener("load", ()=>{ var json = JSON.parse(request.response); @@ -16,38 +19,49 @@ function archingKaosFetchJSON( url, callback, params ){ } }); request.addEventListener("error", ()=>{ - console.log("An error occured."); + // console.log("An error occured."); }); request.addEventListener("progress", (event)=>{ - if (event.lengthComputable && progressPlaceholder){ - httpProgressPlaceholder.value = (event.loaded / event.total) * 100; + if (event.lengthComputable && progressPlaceholder()){ + httpProgressPlaceholder().value = (event.loaded / event.total) * 100; } else { - httpProgressPlaceholder.value = 0; - console.log("Supposingly zeroed progressPlaceholder"); + httpProgressPlaceholder().value = 0; + // console.log("Supposingly zeroed progressPlaceholder"); } }); request.addEventListener("abort", ()=>{ - console.log("Request aborted."); + // console.log("Request aborted."); }); request.open("GET", url); request.send(); } -async function archingKaosFetchText( url, callback ){ - return fetch(url, { - method:'GET', - headers:{ - Accept: 'application/json' +export async function archingKaosFetchText( url, callback, params ){ + const request = new XMLHttpRequest(); + request.addEventListener("load", ()=>{ + var text = request.response; + if(request.status !== 404){ + callback(text, params); + } else { + archingKaosLog(`ERROR ${request.status} while loading ${url}`); } - }).then(response=>{ - if(response.ok){ - response.text().then(text=>{ - return callback(text); - }) + }); + request.addEventListener("error", ()=>{ + // console.log("An error occured."); + }); + request.addEventListener("progress", (event)=>{ + if (event.lengthComputable && progressPlaceholder()){ + httpProgressPlaceholder().value = (event.loaded / event.total) * 100; } else { - console.log(e); + httpProgressPlaceholder.value = 0; + // console.log("Supposingly zeroed progressPlaceholder"); } - }) + }); + request.addEventListener("abort", ()=>{ + // console.log("Request aborted."); + }); + request.open("GET", url); + request.send(); } // @license-end -- cgit v1.2.3