diff options
Diffstat (limited to 'nginx/nginx.js')
-rw-r--r-- | nginx/nginx.js | 23 |
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, } |