umbot
Version:
Universal bot(vk, telegram, viber) or skills for Yandex.Alisa, Маруся and sber
186 lines (185 loc) • 5.66 kB
JavaScript
;
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);
});
});
}