diff --git a/html/poketube.ejs b/html/poketube.ejs
index 927e2c04..7bf17ed5 100644
--- a/html/poketube.ejs
+++ b/html/poketube.ejs
@@ -1512,47 +1512,62 @@ links.forEach(link => {
}
});
});
-
const urls = document.querySelectorAll('a[href*="/watch?v="]'); // get all links with "/watch?v=" in href attribute
-const fetchCount = urls.length;
-let fetchedCount = 0;
+const spinner = document.createElement('div');
+spinner.id = 'fetch-spinner';
+spinner.classList.add('hide');
+document.body.appendChild(spinner);
-const fetchCountElement = document.getElementById('fetch-count');
-fetchCountElement.textContent = ``;
+const text = document.createElement('div');
+text.id = 'fetch-text';
+ text.classList.add('hide');
+document.body.appendChild(text);
+ document.body.classList.add('blur');
+
+let fetchedCount = 0;
urls.forEach(link => {
const url = new URL(link.href);
if (url.host !== 'www.youtube.com' && url.host !== 'youtube.com') {
+ if (url.host !== "redirect.poketube.fun") {
+
console.log(`Fetching ${url.origin}`);
+ spinner.classList.remove('hide');
+ text.classList.remove('hide');
+
fetch(url.href)
.then(response => {
if (response.status === 500) {
- throw new Error('Server Error');
+ // do nothing
}
console.log(`Fetched ${url.origin}`);
- // Only increment fetchedCount if the response is not a 500 error
- if (response.ok) {
- fetchedCount++;
+ fetchedCount++;
+
+ if (fetchedCount === urls.length) {
+ spinner.classList.add('hide');
+ text.classList.add('hide');
+ document.body.classList.remove('blur');
}
- fetchCountElement.textContent = ``;
- // Check if all URLs have been fetched and hide the element if they have
- if (fetchedCount === fetchCount) {
- fetchCountElement.style.display = 'none';
- }
- console.clear();
- })
+ // Do something with the response
+ })
.catch(error => {
+ spinner.classList.add('hide');
+ text.classList.add('hide');
+
// Ignore network errors
if (!(error instanceof TypeError && error.message.includes('Failed to fetch'))) {
- console.clear();
+ console.error(`Error fetching ${url.origin}: ${error}`);
}
});
}
+ }
+
});
+console.clear()
const videoElement = document.getElementById("video");