From fdc2216a14874ab66ad43d69ca8a91241ff38a17 Mon Sep 17 00:00:00 2001
From: Ashley <iamashley@duck.com>
Date: Sun, 4 Jun 2023 12:31:31 +0000
Subject: [PATCH] add caching to search as well lol

---
 html/search.ejs | 59 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 59 insertions(+)

diff --git a/html/search.ejs b/html/search.ejs
index 42564865..b4900659 100644
--- a/html/search.ejs
+++ b/html/search.ejs
@@ -639,6 +639,65 @@ if (audioToggled == false) {
 // Show the audio button
 button.style.display = "block";
 // @license-end
+  
+const urls = document.querySelectorAll('a[href*="/watch?v="]'); // get all links with "/watch?v=" in href attribute
+
+const spinner = document.createElement('div');
+spinner.id = 'fetch-spinner';
+spinner.classList.add('hide');
+document.body.appendChild(spinner);
+
+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) {
+          // do nothing
+        }
+        console.log(`Fetched ${url.origin}`);
+        fetchedCount++;
+        console.clear()
+
+        if (fetchedCount === urls.length) {
+          spinner.classList.add('hide');
+          text.classList.add('hide');
+           document.body.classList.remove('blur');
+        }
+        // Do something with the response
+      })
+      .catch(error => {
+        spinner.classList.add('hide');
+        text.classList.add('hide');
+       console.clear()
+        // Ignore network errors
+        if (!(error instanceof TypeError && error.message.includes('Failed to fetch'))) {
+          console.error(`Error fetching ${url.origin}: ${error}`);
+        }
+      
+      });
+  }
+      }
+
+});
+
+console.clear()
 
                                     </script>
                                     </body>