Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env node
- const process = require('process');
- const decode = (str) => {
- return new TextDecoder().decode(
- new Uint8Array(
- str
- .replace(/ПУК/g, "0")
- .replace(/СРЕНЬК/g, "1")
- .replace(/-/g, "")
- .match(/.{1,8}/g)
- .map((c) => parseInt(c, 2))
- )
- );
- };
- const encode = (str) => {
- return new TextEncoder()
- .encode(str)
- .reduce((s, b) => s + b.toString(2).padStart(8, "0"), "")
- .replace(/0/g, "ПУК-")
- .replace(/1/g, "СРЕНЬК-")
- .slice(0, -1);
- };
- const action = process.argv[2];
- const str = process.argv[3] || "";
- switch (action) {
- case "-d":
- case "--decode":
- console.log(decode(str));
- break;
- case "-e":
- case "--encode":
- console.log(encode(str));
- break;
- default:
- console.log("\033[1m\033[31m[ПУК-СРЕНЬК]\033[0m 2ch Edition\033[0m\n\n\033[1mОПИСАНИЕ\033[0m\n\tСредство для бинарного кодирования/декодирования текста весьма\n\tсвоеобразным образом.\n\n\033[1mКАК ИСПОЛЬЗОВАТЬ\033[0m\n\tpuk.js [\033[4mОПЦИЯ\033[0m] [\033[4mСТРОКА\033[0m]\n\n\033[1mОПЦИИ\033[0m\n\t\033[1m-d, --decode\033[0m\n\t\tрасшифровать строку\n\n\t\033[1m-e, --encode\033[0m\n\t\tзашифровать строку\n\n\033[1mПРИМЕРЫ ИСПОЛЬЗОВАНИЯ\033[0m\n\tpuk.js -d \"ПУК-ПУК-СРЕНЬК-СРЕНЬК-ПУК-ПУК-СРЕНЬК-ПУК\"\n\tpuk.js --decode \"ПУК-ПУК-СРЕНЬК-СРЕНЬК-ПУК-ПУК-СРЕНЬК-ПУК\"\n\n\tpuk.js -e \"2ch - тут все мои друзья\"\n\tpuk.js --encode \"2ch - тут все мои друзья\"");
- }
Advertisement
Add Comment
Please, Sign In to add comment