UNPKG

umbot

Version:

Universal bot(vk, telegram, viber) or skills for Yandex.Alisa, Маруся and sber

186 lines (185 loc) 5.66 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.GET = void 0; exports.rand = rand; exports.similarText = similarText; exports.isFile = isFile; exports.getFileInfo = getFileInfo; exports.fread = fread; exports.fwrite = fwrite; exports.unlink = unlink; exports.isDir = isDir; exports.mkdir = mkdir; exports.httpBuildQuery = httpBuildQuery; exports.stdin = stdin; const fs = __importStar(require("fs")); const readline = __importStar(require("readline")); function rand(min, max) { return Math.floor(Math.random() * (max - min + 1) + min); } function similarText(first, second) { if (first === second || (first.length === 0 && second.length === 0)) { return 100; } if (first.length === 0 || second.length === 0) { return 0; } const lcsLength = (shorter, longer) => { const dp = new Int32Array(longer.length + 1); for (let i = 0; i < shorter.length; i++) { let prevDiag = 0; for (let j = 0; j < longer.length; j++) { const current = dp[j + 1]; dp[j + 1] = shorter[i] === longer[j] ? prevDiag + 1 : Math.max(dp[j + 1], dp[j]); prevDiag = current; } } return dp[longer.length]; }; const [a, b] = first.length <= second.length ? [first, second] : [second, first]; const totalLength = first.length + second.length; return (lcsLength(a, b) * 200) / totalLength; } function isFile(file) { const fileInfo = getFileInfo(file); return (fileInfo.success && fileInfo.data?.isFile()) || false; } function getFileInfo(fileName) { try { const stats = fs.lstatSync(fileName); return { success: true, data: stats }; } catch (error) { return { success: false, error: error instanceof Error ? error : new Error('Unknown error'), }; } } function fread(fileName) { try { const content = fs.readFileSync(fileName, 'utf-8'); return { success: true, data: content }; } catch (error) { return { success: false, error: error instanceof Error ? error : new Error('Failed to read file'), }; } } function fwrite(fileName, fileContent, mode = 'w') { try { if (mode === 'w') { fs.writeFileSync(fileName, fileContent); } else { fs.appendFileSync(fileName, fileContent); } return { success: true }; } catch (error) { return { success: false, error: error instanceof Error ? error : new Error('Failed to write file'), }; } } function unlink(fileName) { try { fs.unlinkSync(fileName); return { success: true }; } catch (error) { return { success: false, error: error instanceof Error ? error : new Error('Failed to delete file'), }; } } function isDir(path) { try { return fs.existsSync(path); } catch { return false; } } function mkdir(path, mask = '0774') { try { fs.mkdirSync(path, mask); return { success: true }; } catch (error) { return { success: false, error: error instanceof Error ? error : new Error('Failed to create directory'), }; } } function httpBuildQuery(formData, separator = '&') { return Object.entries(formData) .map(([key, value]) => { const encodedKey = encodeURI(key); const encodedValue = encodeURI(String(value)).replace(/%20/g, '+'); return `${encodedKey}=${encodedValue}`; }) .join(separator); } let GET = {}; exports.GET = GET; if (typeof window !== 'undefined') { exports.GET = GET = window.location.search .replace('?', '') .split('&') .reduce(function (p, e) { const a = e.split('='); p[decodeURIComponent(a[0])] = decodeURIComponent(a[1]); return p; }, {}); } function stdin() { const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); return new Promise((resolve) => { rl.once('line', (input) => { rl.close(); resolve(input); }); }); }