🗝
summary refs log tree commit diff
path: root/nginx/nginx.js
diff options
context:
space:
mode:
Diffstat (limited to 'nginx/nginx.js')
-rw-r--r--nginx/nginx.js23
1 files changed, 23 insertions, 0 deletions
diff --git a/nginx/nginx.js b/nginx/nginx.js
index 03b2dae..4557167 100644
--- a/nginx/nginx.js
+++ b/nginx/nginx.js
@@ -44,6 +44,29 @@ async function validate(request) {
     return request.return(200);
 }
 
+const cat_sounds = ["meow", "mrow", "mew", "nya", "purr", "miau"];
+/** @param {NginxHTTPRequest} request */
+async function cat(request) {
+    let buffer = "";
+    buffer += "\x1b]0;meow\x07"; // set title
+    buffer += "\x1b[s"; // save cursor position
+    let verbosity = 50;
+    if (request.uri.length > 1) {
+        const supplied = parseInt(request.uri.slice(1));
+        if (supplied !== NaN) verbosity = supplied;
+        if (supplied > 1000) verbosity = 1000;
+    }
+    for (let i = 0; i < verbosity; i++) {
+        const sound = cat_sounds[Math.floor(Math.random() * cat_sounds.length)];
+        const col = Math.floor(Math.random() * (120 - sound.length + 2)) + 1;
+        const row = Math.floor(Math.random() * 40) + 1;
+        buffer += `\x1b[${row};${col}H ${sound} `; // write sound at position
+    }
+    buffer += '\x1b[u' // restore cursor position
+    request.return(200, buffer);
+}
+
 export default {
     validate,
+    cat,
 }