implemented search on youtube

This commit is contained in:
Hazel Noack 2025-07-16 17:38:28 +02:00
parent 21719a6cf7
commit 13fae1c23f
2 changed files with 73 additions and 69 deletions

View File

@ -55,8 +55,8 @@ air dev
## TODO
- implement templating for every one of the frontend files
- implement functionality to clear and clean cache
- implement fetching in intervals
- host this website on a demo page
- implement ctl
- implement autocomplete with a nice go backend and fast communication. Since it all runs locally nobody should have privacy concerns NEEDS TO BE ABLE TO TOGGLED OFF FOR DEMO PAGE

View File

@ -4,45 +4,49 @@ const form = document.getElementById("search-form");
const input = document.getElementById("search-input");
// https://stackoverflow.com/a/3809435/16804841
const expression = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/gi;
const expression =
/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/gi;
const urlRegex = new RegExp(expression);
const searchEngines = {
"g": {
g: {
action: "https://www.google.com/search",
name: "q",
},
"d": {
d: {
action: "https://duckduckgo.com/",
name: "q",
},
"y": {
y: {
action: "https://www.youtube.com/results",
name: "search_query",
},
ya: {
action: "https://yandex.com/search/",
name: "text",
},
"lure": {
lure: {
action: "https://lure.sh/pkgs",
name: "q",
},
};
const translationPrefixes = [
"t",
"translation",
]
const translationPrefixes = ["t", "translation"];
function getDeepLUrl(s) {
const parts = s.split("-")
const parts = s.split("-");
if (parts.length != 3) {
return undefined
return undefined;
}
return `https://www.deepl.com/en/translator?/#${encodeURIComponent(parts[0].trim())}/${encodeURIComponent(parts[1].trim())}/${encodeURIComponent(parts[2].trim())}`;
return `https://www.deepl.com/en/translator?/#${encodeURIComponent(
parts[0].trim()
)}/${encodeURIComponent(parts[1].trim())}/${encodeURIComponent(
parts[2].trim()
)}`;
}
form.addEventListener("submit", event => {
form.addEventListener("submit", (event) => {
event.preventDefault();
s = input.value;
@ -50,7 +54,7 @@ form.addEventListener("submit", event => {
// check if url
if (s.match(urlRegex)) {
window.open(s, "_self");
return
return;
}
// deepl translations