@q78kg/koishi-plugin-text-censor 1.0.12 → 1.0.13
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/index.js +2 -0
- package/package.json +4 -19
- package/lib/index.cjs +0 -2
- package/lib/index.d.ts +0 -7
- package/lib/index.mjs +0 -2
package/lib/index.js
ADDED
@@ -0,0 +1,2 @@
|
|
1
|
+
var C=Object.create;var d=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var W=Object.getOwnPropertyNames;var D=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty;var j=(t,e)=>{for(var r in e)d(t,r,{get:e[r],enumerable:!0})},g=(t,e,r,p)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of W(e))!P.call(t,a)&&a!==r&&d(t,a,{get:()=>e[a],enumerable:!(p=v(e,a))||p.enumerable});return t};var y=(t,e,r)=>(r=t!=null?C(D(t)):{},g(e||!t||!t.__esModule?d(r,"default",{value:t,enumerable:!0}):r,t)),k=t=>g(d({},"__esModule",{value:!0}),t);var M={};j(M,{Config:()=>T,apply:()=>I,name:()=>F});module.exports=k(M);var o=require("koishi"),s=require("node:fs"),u=require("node:path"),h=y(require("mint-filter")),b=y(require("@koishijs/censor")),F="text-censor",T=o.Schema.intersect([o.Schema.object({textDatabase:o.Schema.array(o.Schema.tuple([o.Schema.string().default("data/text-censor/censor.txt")])).description("\u654F\u611F\u8BCD\u5E93\u7684\u6587\u4EF6\u8DEF\u5F84\u3002").default([["data/text-censor/censor.txt"]])}),o.Schema.object({removeWords:o.Schema.boolean().description("\u662F\u5426\u76F4\u63A5\u5220\u9664\u654F\u611F\u8BCD\u3002").default(!1),caseStrategy:o.Schema.union(["none","lower","capital"]).description("\u654F\u611F\u8BCD\u5904\u7406\u65F6\u7684\u5927\u5C0F\u5199\u7B56\u7565\u3002").default("none")})]);function I(t,e){let r=[];for(let[x]of e.textDatabase){let i=(0,u.resolve)(t.baseDir,x);if(!(0,s.existsSync)(i)){t.logger.warn(`dictionary file not found: ${i}, creating a new one.`);let n=(0,u.dirname)(i);(0,s.existsSync)(n)||(0,s.mkdirSync)(n,{recursive:!0}),(0,s.writeFileSync)(i,"")}let l=(0,s.readFileSync)(i,"utf8").split(`
|
2
|
+
`).map(n=>n.trim()).filter(n=>n&&!n.startsWith("//")&&!n.startsWith("#"));r=r.concat(l)}if(r.length===0){t.logger.warn("no sensitive words found");return}let p={transform:e.caseStrategy},a=new h.default(r,p);t.plugin(b.default),t.get("censor").intercept({async text(x){let i=x.content,c=await a.filter(i);if(typeof c.text!="string")return[];if(e.removeWords){let l=i,n=0;for(let f=0;f<c.text.length;f++)if(c.text[f]==="*"){let m=0;for(;f+m<c.text.length&&c.text[f+m]==="*";)m++;let w=l.slice(0,n),S=l.slice(n+m);l=w+S,f+=m-1}else n++;return[l.trim()]}else return[c.text]}})}0&&(module.exports={Config,apply,name});
|
package/package.json
CHANGED
@@ -1,25 +1,14 @@
|
|
1
1
|
{
|
2
2
|
"name": "@q78kg/koishi-plugin-text-censor",
|
3
3
|
"description": "A text censor provider for Koishi",
|
4
|
-
"version": "1.0.
|
5
|
-
"main": "lib/index.
|
6
|
-
"module": "lib/index.mjs",
|
7
|
-
"types": "lib/index.d.ts",
|
8
|
-
"type": "module",
|
9
|
-
"exports": {
|
10
|
-
".": {
|
11
|
-
"types": "./lib/index.d.ts",
|
12
|
-
"require": "./lib/index.cjs",
|
13
|
-
"import": "./lib/index.mjs"
|
14
|
-
},
|
15
|
-
"./package.json": "./package.json"
|
16
|
-
},
|
4
|
+
"version": "1.0.13",
|
5
|
+
"main": "lib/index.js",
|
17
6
|
"files": [
|
18
7
|
"lib"
|
19
8
|
],
|
20
9
|
"license": "MIT",
|
21
10
|
"scripts": {
|
22
|
-
"build": "node esbuild.config.mjs
|
11
|
+
"build": "node esbuild.config.mjs",
|
23
12
|
"lint": "eslint src",
|
24
13
|
"lint-fix": "eslint src --fix"
|
25
14
|
},
|
@@ -55,7 +44,6 @@
|
|
55
44
|
"koishi": "^4.17.9"
|
56
45
|
},
|
57
46
|
"devDependencies": {
|
58
|
-
"@rollup/plugin-multi-entry": "^6.0.1",
|
59
47
|
"@types/node": "^20.11.30",
|
60
48
|
"esbuild": "^0.18.20",
|
61
49
|
"esbuild-register": "^3.5.0",
|
@@ -68,14 +56,11 @@
|
|
68
56
|
"eslint-plugin-promise": "^7.1.0",
|
69
57
|
"koishi": "^4.17.9",
|
70
58
|
"prettier": "^3.3.3",
|
71
|
-
"rollup": "^4.28.1",
|
72
|
-
"rollup-plugin-delete": "^2.1.0",
|
73
|
-
"rollup-plugin-dts": "^6.1.1",
|
74
59
|
"typescript": "^5.5.3",
|
75
60
|
"yml-register": "^1.2.5"
|
76
61
|
},
|
77
62
|
"dependencies": {
|
78
63
|
"@koishijs/censor": "^1.0.1",
|
79
|
-
"
|
64
|
+
"mint-filter": "^3.0.1"
|
80
65
|
}
|
81
66
|
}
|
package/lib/index.cjs
DELETED
@@ -1,2 +0,0 @@
|
|
1
|
-
var x=Object.create;var l=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var S=Object.getPrototypeOf,v=Object.prototype.hasOwnProperty;var w=(t,e)=>{for(var r in e)l(t,r,{get:e[r],enumerable:!0})},p=(t,e,r,c)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of b(e))!v.call(t,s)&&s!==r&&l(t,s,{get:()=>e[s],enumerable:!(c=y(e,s))||c.enumerable});return t};var h=(t,e,r)=>(r=t!=null?x(S(t)):{},p(e||!t||!t.__esModule?l(r,"default",{value:t,enumerable:!0}):r,t)),C=t=>p(l({},"__esModule",{value:!0}),t);var D={};w(D,{default:()=>W});module.exports=C(D);var n=require("koishi"),o=require("node:fs"),f=require("node:path"),d=require("@q78kg/mint-filter"),u=h(require("@koishijs/censor"),1),W={name:"text-censor",Config:n.Schema.intersect([n.Schema.object({textDatabase:n.Schema.array(n.Schema.tuple([n.Schema.string().default("data/text-censor/censor.txt")])).description("\u654F\u611F\u8BCD\u5E93\u7684\u6587\u4EF6\u8DEF\u5F84\u3002").default([["data/text-censor/censor.txt"]])}),n.Schema.object({removeWords:n.Schema.boolean().description("\u662F\u5426\u76F4\u63A5\u5220\u9664\u654F\u611F\u8BCD\u3002").default(!1),caseStrategy:n.Schema.union(["none","lower","capital"]).description("\u654F\u611F\u8BCD\u5904\u7406\u65F6\u7684\u5927\u5C0F\u5199\u7B56\u7565\u3002").default("none")})]),apply(t,e){let r=[];for(let[m]of e.textDatabase){let a=(0,f.resolve)(t.baseDir,m);if(!(0,o.existsSync)(a)){t.logger.warn(`dictionary file not found: ${a}, creating a new one.`);let i=(0,f.dirname)(a);(0,o.existsSync)(i)||(0,o.mkdirSync)(i,{recursive:!0}),(0,o.writeFileSync)(a,"")}let g=(0,o.readFileSync)(a,"utf8").split(`
|
2
|
-
`).map(i=>i.trim()).filter(i=>i&&!i.startsWith("//")&&!i.startsWith("#"));r=r.concat(g)}if(r.length===0){t.logger.warn("no sensitive words found");return}let c={transform:e.caseStrategy,remove:e.removeWords},s=new d.Mint(r,c);t.plugin(u.default),t.get("censor").intercept({async text(m){return[s.filter(m.content).text]}})}};
|
package/lib/index.d.ts
DELETED
package/lib/index.mjs
DELETED
@@ -1,2 +0,0 @@
|
|
1
|
-
import{Schema as e}from"koishi";import{existsSync as a,mkdirSync as m,readFileSync as p,writeFileSync as d}from"node:fs";import{dirname as u,resolve as g}from"node:path";import{Mint as x}from"@q78kg/mint-filter";import y from"@koishijs/censor";var M={name:"text-censor",Config:e.intersect([e.object({textDatabase:e.array(e.tuple([e.string().default("data/text-censor/censor.txt")])).description("\u654F\u611F\u8BCD\u5E93\u7684\u6587\u4EF6\u8DEF\u5F84\u3002").default([["data/text-censor/censor.txt"]])}),e.object({removeWords:e.boolean().description("\u662F\u5426\u76F4\u63A5\u5220\u9664\u654F\u611F\u8BCD\u3002").default(!1),caseStrategy:e.union(["none","lower","capital"]).description("\u654F\u611F\u8BCD\u5904\u7406\u65F6\u7684\u5927\u5C0F\u5199\u7B56\u7565\u3002").default("none")})]),apply(n,i){let o=[];for(let[s]of i.textDatabase){let r=g(n.baseDir,s);if(!a(r)){n.logger.warn(`dictionary file not found: ${r}, creating a new one.`);let t=u(r);a(t)||m(t,{recursive:!0}),d(r,"")}let f=p(r,"utf8").split(`
|
2
|
-
`).map(t=>t.trim()).filter(t=>t&&!t.startsWith("//")&&!t.startsWith("#"));o=o.concat(f)}if(o.length===0){n.logger.warn("no sensitive words found");return}let c={transform:i.caseStrategy,remove:i.removeWords},l=new x(o,c);n.plugin(y),n.get("censor").intercept({async text(s){return[l.filter(s.content).text]}})}};export{M as default};
|