UNPKG

e621-sdk

Version:

从E621抓取帖子。支持搜索、引用、随机。

52 lines (51 loc) 2.18 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.formatArrayBuffer = exports.truncate = exports.query = exports.fromSearchTag = exports.toSearchTag = exports.useApi = exports.baseUrl = void 0; const chalk_template_1 = __importDefault(require("chalk-template")); const url_1 = require("url"); exports.baseUrl = "https://e621.net"; function useApi(url, client) { if (client.useImage) { if (url === "posts") { return new url_1.URL("/api/search", client.imageUrls[client.useImage]).toString(); } else if (url === "posts/random") { return new url_1.URL("/api/random", client.imageUrls[client.useImage]).toString(); } else { return new url_1.URL(`/api/${url.replaceAll("posts", "post")}`, client.imageUrls[client.useImage]).toString(); } } else return `${exports.baseUrl}/${url}.json`; } exports.useApi = useApi; function toSearchTag(...names) { return names .flatMap(name => typeof name === "string" ? [name] : Object.values(name).flat()) .map(name => encodeURIComponent(name.toLowerCase().replaceAll(" ", "_"))) .join("+"); } exports.toSearchTag = toSearchTag; function fromSearchTag(tag) { return (typeof tag === "string" ? tag : toSearchTag(tag)).split("+").map(name => decodeURIComponent(name).replaceAll("_", " ")); } exports.fromSearchTag = fromSearchTag; function query(data) { return `?${Object.keys(data).map(key => data[key] === undefined ? undefined : `${key}=${data[key]}`).filter(x => x !== undefined).join("&")}`; } exports.query = query; function truncate(str, maxLength) { if (str.length <= maxLength) { return str; } return str.slice(0, maxLength) + "..."; } exports.truncate = truncate; function formatArrayBuffer(ab, fn) { return (0, chalk_template_1.default) `[{bold ${fn}}] {cyan ${(ab.byteLength / 1024).toFixed(1)}kb}`; } exports.formatArrayBuffer = formatArrayBuffer;