UNPKG

koishi-plugin-kbot

Version:
53 lines (52 loc) 1.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.uidExtract = exports.isNumberOrNumberString = void 0; const b23Extract_1 = require("./b23Extract"); const biliRequest_1 = require("./biliRequest"); function isNumberOrNumberString(text) { return text !== '' && +text * 0 === 0; } exports.isNumberOrNumberString = isNumberOrNumberString; async function uidExtract(text, { session }, logger, ctx) { if (typeof text !== 'string') return ''; if (session.channel.bilibili.dynamic.length !== 0) { session.channel.bilibili.dynamic.forEach((item) => { if (isNumberOrNumberString(text)) { if (item.bilibiliId === text) return item.bilibiliId; } else { if (item.bilibiliName === text.replace(/^['"“”‘’]+|['"“”‘’]+$/g, '')) return item.bilibiliId; } }); } let b23URL = ''; if (text.includes('b23.tv') || text.includes('b23.wtf')) b23URL = await (0, b23Extract_1.b23Extract)(text, ctx.http); const message = b23URL || text; const bilibiliURLRegex = /^[0-9]*$|bilibili.com\/([0-9]*)/; let uid = ''; const uidMatch = bilibiliURLRegex.exec(message); if (uidMatch) { uid = uidMatch[1] || uidMatch[0]; return uid; } else if (message.toLocaleUpperCase().startsWith('UID:')) { const uidMatch = /^\d+/.exec(message.slice(4).trim()); return uidMatch ? uidMatch[0] : ''; } else { const keyword = message.replace(/^['"“”‘’]+|['"“”‘’]+$/g, ''); const resp = await (0, biliRequest_1.searchUser)(ctx, keyword, logger); if (resp?.numResults) { resp.result.forEach((item) => { if (item.uname === keyword) uid = item.mid; }); } } return uid; } exports.uidExtract = uidExtract;