Add marker to links saved in cache

This commit is contained in:
Danny Spina 2023-06-24 00:42:39 +02:00
parent 5e65c17c4b
commit c7ea6a4442
3 changed files with 34 additions and 3 deletions

0
dist/styles/serp.css vendored Normal file
View File

View File

@ -12,6 +12,7 @@ import { minify } from "html-minifier";
import { import {
blazeFunctionality, blazeFunctionality,
blazeUrl, blazeUrl,
highlightBlazedLinks,
injectBlazeToPageLinks, injectBlazeToPageLinks,
} from "./utils.js"; } from "./utils.js";
import etag from "etag"; import etag from "etag";
@ -86,9 +87,9 @@ app.get("/", async (req, res) => {
const results = data.web.results.map( const results = data.web.results.map(
(result: any) => ` (result: any) => `
<article> <article>
<a href="${blazeUrl}/blazed?url=${result.url}"> <h2><a href="${blazeUrl}/blazed?url=${result.url}">
<h2>${result.title}</h2> ${result.title}
</a> </a></h2>
<span>${result.meta_url.hostname}</span> <span>${result.meta_url.hostname}</span>
<p>${result.description}</p> <p>${result.description}</p>
</article> </article>
@ -122,7 +123,12 @@ app.get("/", async (req, res) => {
${results.join("")} ${results.join("")}
<script> <script>
${blazeFunctionality} ${blazeFunctionality}
${highlightBlazedLinks}
blazeFunctionality('${blazeUrl}') blazeFunctionality('${blazeUrl}')
const links = document.querySelectorAll('a')
highlightBlazedLinks(links)
</script> </script>
</body> </body>
</html> </html>
@ -261,6 +267,10 @@ app.get("/blazed", async (req, res) => {
const url = "${blazeUrl}" const url = "${blazeUrl}"
const currentUrl = "${req.query.url}" const currentUrl = "${req.query.url}"
injectBlazeToPageLinks(url, currentUrl) injectBlazeToPageLinks(url, currentUrl)
${highlightBlazedLinks}
const links = document.querySelectorAll('a')
highlightBlazedLinks(links)
</script> </script>
</body></html> </body></html>
`; `;

View File

@ -31,3 +31,24 @@ export function blazeFunctionality(blazeUrl: string) {
location.href = blazeUrl + "?q=" + encodeURIComponent(c!.value); 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}`;
}
});
});
});
}