From c7ea6a44427b40aabee9ec052dd835b88bf0508e Mon Sep 17 00:00:00 2001 From: Danny Spina <danny.spina@hotmail.it> Date: Sat, 24 Jun 2023 00:42:39 +0200 Subject: [PATCH] Add marker to links saved in cache --- dist/styles/serp.css | 0 index.ts | 16 +++++++++++++--- utils.ts | 21 +++++++++++++++++++++ 3 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 dist/styles/serp.css diff --git a/dist/styles/serp.css b/dist/styles/serp.css new file mode 100644 index 0000000..e69de29 diff --git a/index.ts b/index.ts index 9823112..f2a8206 100644 --- a/index.ts +++ b/index.ts @@ -12,6 +12,7 @@ import { minify } from "html-minifier"; import { blazeFunctionality, blazeUrl, + highlightBlazedLinks, injectBlazeToPageLinks, } from "./utils.js"; import etag from "etag"; @@ -86,9 +87,9 @@ app.get("/", async (req, res) => { const results = data.web.results.map( (result: any) => ` <article> - <a href="${blazeUrl}/blazed?url=${result.url}"> - <h2>${result.title}</h2> - </a> + <h2><a href="${blazeUrl}/blazed?url=${result.url}"> + ${result.title} + </a></h2> <span>${result.meta_url.hostname}</span> <p>${result.description}</p> </article> @@ -122,7 +123,12 @@ app.get("/", async (req, res) => { ${results.join("")} <script> ${blazeFunctionality} + ${highlightBlazedLinks} + blazeFunctionality('${blazeUrl}') + const links = document.querySelectorAll('a') + highlightBlazedLinks(links) + </script> </body> </html> @@ -261,6 +267,10 @@ app.get("/blazed", async (req, res) => { const url = "${blazeUrl}" const currentUrl = "${req.query.url}" injectBlazeToPageLinks(url, currentUrl) + + ${highlightBlazedLinks} + const links = document.querySelectorAll('a') + highlightBlazedLinks(links) </script> </body></html> `; diff --git a/utils.ts b/utils.ts index a7ea9e4..68a5006 100644 --- a/utils.ts +++ b/utils.ts @@ -31,3 +31,24 @@ export function blazeFunctionality(blazeUrl: string) { location.href = blazeUrl + "?q=" + encodeURIComponent(c!.value); }); } + +export function highlightBlazedLinks(links: HTMLLinkElement[]) { + links.forEach((link) => { + if ( + !link.href || + link.href === "http://localhost:8888/" || + link.href === "https://blaze.cyclic.app" + ) { + return; + } + + const url = new URL(link.href); + caches.open("blaze").then((cache) => { + cache.match(url.href).then((response) => { + if (response) { + link.innerHTML = `${link.textContent} ⚡`; + } + }); + }); + }); +}