search

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

index.html (3588B)


      1 <!doctype html>
      2 <html lang="en">
      3 
      4 	<head>
      5 		<meta charset="UTF-8"/>
      6 		<link rel="preconnect" href="https://fonts.googleapis.com" crossorigin="anonymous"/>
      7 		<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/>
      8 		<link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap"/>
      9 		<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" media="print" onload="this.media='all'"/>
     10 		<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
     11 		<title>Surf</title>
     12 		<meta name="description" content="A better default search engine (with bangs!)"/>
     13 		<link rel="stylesheet" href="/index.css"/>
     14 		<link rel="icon" href="favicon.png">
     15 	</head>
     16 
     17 	<body style="background-color: transparent">
     18 		<div id="app">
     19 			<div style="display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100vh;">
     20 				<div class="content-container">
     21 					<h1>Surf</h1>
     22 					<p>
     23 						DuckDuckGo's bang redirects are too slow.
     24 						                    Add the following URL as a custom search engine to your browser.
     25 						                    Enables
     26 						<a href="https://duckduckgo.com/bang.html" target="_blank">some of DuckDuckGo's bangs.</a>
     27 					</p>
     28 					<div class="url-container">
     29 						<input type="text" class="url-input" value="https://surf.sily.dev?q=%s" readonly/>
     30 						<button class="copy-button">
     31 							<img src="/clipboard.svg" alt="Copy"/>
     32 						</button>
     33 					</div>
     34 				</div>
     35 				<footer class="footer">
     36 					<a href="https://sily.dev" target="_blank" title="Me">back</a>
     37     38 					<a href="https://github.com/t3dotgg/unduck" target="_blank" title="Original website">unduck</a>
     39     40 					<a href="" id="set-default" title="Set default bang">default</a>
     41 				</footer>
     42 			</div>
     43 		</div>
     44 		<script>
     45 			document.querySelector("#set-default").addEventListener("click", () => {
     46 				let newBang = prompt("Please input new default bang", LS_DEFAULT_BANG);
     47 				if (newBang == null || newBang == "") {
     48 					alert("No bang was set");
     49 					return;
     50 				}
     51 
     52 				const foundBang = bangs.find((b) => b.b === newBang);
     53 
     54 				if (foundBang == undefined) {
     55 					alert("Unknown bang");
     56 					return;
     57 				}
     58 
     59 				if (confirm(`Found bang for '${
     60 					foundBang.d
     61 				}'`)) {
     62 					localStorage.setItem("default-bang", newBang);
     63 					alert("Set new bang to " + newBang);
     64 				} else {
     65 					alert("Cancelled");
     66 					return;
     67 				}
     68 			});
     69 
     70 			function findBang(a) {
     71 				let d = "";
     72 				console.log("---------------------------------------------------");
     73 				console.log("Match:");
     74 				for (let i of bangs)
     75 					if (i.b == a) {
     76 						console.log(i);
     77 						d = i.d;
     78 						break;
     79 					}
     80 
     81 				console.log("Similar bangs:");
     82 				for (let i of bangs)
     83 					if (i.d == d) {
     84 						console.log(i);
     85 					}
     86 
     87 				console.log("---------------------------------------------------");
     88 			}
     89 
     90 			function filterBangsByCategory(category) {
     91 				let ret = [];
     92 				for (let i of bangs)
     93 					if (i.c == category)
     94 						ret.push({d: i.d, b: i.t, u: i.u});
     95 
     96 
     97 				console.log(ret);
     98 			}
     99 
    100 			{
    101     const copyButton = app.querySelector(".copy-button");
    102     const copyIcon = copyButton.querySelector("img");
    103     const urlInput = app.querySelector(".url-input");
    104 
    105     copyButton.addEventListener("click", async () => {
    106         await navigator.clipboard.writeText(urlInput.value);
    107         copyIcon.src = "/clipboard-check.svg";
    108 
    109         setTimeout(() => {
    110             copyIcon.src = "/clipboard.svg";
    111         }, 2000);
    112     });
    113 			}
    114 		</script>
    115 	</body>
    116 
    117 </html>