Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion changelog.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
added create url button to request
added new project: base64
3 changes: 3 additions & 0 deletions src/routes/projects.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,9 @@ router.get("/:project", (req: Request, res: Response) => {
else if(project == "request"){
res.render("projects/request", { url: req.query.url ? req.query.url : "", method: req.query.method ? req.query.method : "GET" });
}
else if(project == "base64"){
res.render("projects/base64");
}
else {
res.render("404");
}
Expand Down
2 changes: 2 additions & 0 deletions views/projects.ejs
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@
<br>
<a href="/projects/request">Request</a>
<br>
<a href="/projects/base64">Base64</a>
<br>
<br>
<p>&copy; 2025 thenamelessdev. Licensed under the <a href="https://opensource.org/license/mit">MIT license.</a></p>
<p>By using the website you aggree to our <a href="/privacy">privacy policy</a></p>
Expand Down
62 changes: 62 additions & 0 deletions views/projects/base64.ejs
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Base64</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css"
crossorigin="anonymous">
</head>
<body class="text-center">
<h1>Base64</h1>
<p><b>Do stuff with Base64</b></p>
<a href="/projects"><button class="btn btn-secondary">Go back</button></a>
<hr>

<div class="d-flex justify-content-center mt-4">
<div class="form-floating w-50">
<textarea class="form-control" id="text"></textarea>
<label for="text">Text</label>
</div>
</div>
<hr>
<div class="d-inline-flex w-auto">
<select id="select" class="form-select">
<option value="decode">Decode</option>
<option value="encode" selected>Encode</option>
</select>
</div>
<hr>
<label for="out">Output:</label>
<div class="d-flex justify-content-center mt-4"><input type="text" id="out" disabled class="form-control w-auto"></div>
<br>
<button class="btn btn-primary" id="copy">Copy</button>

<script>
const text = document.getElementById("text");
const select = document.getElementById("select");
const output = document.getElementById("out");

function encode(text) {
return btoa(text);
}

function decode(text){
return atob(text);
}

setInterval(() => {
if(select.value == "decode"){
output.value = decode(text.value);
}
else{
output.value = encode(text.value)
}
}, 500);

document.getElementById("copy").addEventListener("click", () => {
navigator.clipboard.writeText(output.value);
});
</script>
</body>
</html>