import { utils } from "@/env"; import { NetDiskGlobalData } from "@/main/data/NetDiskGlobalData"; import { NetDisk } from "@/main/NetDisk"; import { NetDiskPops } from "@/main/pops/NetDiskPops"; import { NetDiskRuleUtils } from "@/main/rule/NetDiskRuleUtils"; import { NetDiskWorker } from "@/main/worker/NetDiskWorker"; import Qmsg from "qmsg"; import { NetDiskView } from "../NetDiskView"; import indexCSS from "./index.css?raw"; export const NetDiskMatchPasteText = { show() { let popsConfirm = NetDiskPops.confirm( { title: { text: "主动识别文本", position: "center", }, content: { text: /*html*/ ``, html: true, }, btn: { ok: { text: "识别", callback() { let inputText = popsConfirm.$pops?.querySelector(".netdisk-match-paste-text")?.value || ""; if (utils.isNotNull(inputText)) { // 删除掉中文 inputText = NetDiskRuleUtils.replaceChinese(inputText); NetDiskWorker.postMessage({ characterMapping: [], textList: [inputText], matchTextRange: NetDiskGlobalData.match.pageMatchRange.value, // 剪贴板匹配的话直接使用全部规则来进行匹配 matchedRuleOption: NetDisk.$rule.ruleOption, // 强制启用 matchedRulesEnable: true, startTime: Date.now(), from: "PasteText", }); } }, }, }, class: "whitesevPopNetDiskMatchPasteText", style: indexCSS, }, NetDiskView.$config.viewSizeConfig.matchPasteTextView ); popsConfirm.$pops.querySelector("textarea")!.focus(); }, /** * Worker匹配完毕后执行的回调函数 * @param data */ workerMatchEndCallBack(data: NetDiskWorkerCallBackOptions) { if (data.data.length) { Qmsg.success(`成功匹配${data.data.length}个,用时${Date.now() - data.startTime}ms`); } else { Qmsg.error("未识别到链接"); } }, };