New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

koishi-plugin-common

Package Overview
Dependencies
Maintainers
1
Versions
141
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

koishi-plugin-common - npm Package Compare versions

Comparing version 3.0.0-beta.9 to 3.0.0-beta.10

13

dist/admin.js

@@ -17,5 +17,2 @@ "use strict";

exports.GroupAction = new Action();
function extractEnumKeys(data) {
return Object.values(data).filter(value => typeof value === 'string');
}
exports.UserAction.add('setAuth', async (session, user, value) => {

@@ -37,3 +34,3 @@ const authority = Number(value);

exports.UserAction.add('setFlag', async (session, user, ...flags) => {
const userFlags = extractEnumKeys(koishi_core_1.User.Flag);
const userFlags = koishi_utils_1.enumKeys(koishi_core_1.User.Flag);
if (!flags.length)

@@ -51,3 +48,3 @@ return `可用的标记有 ${userFlags.join(', ')}。`;

exports.UserAction.add('unsetFlag', async (session, user, ...flags) => {
const userFlags = extractEnumKeys(koishi_core_1.User.Flag);
const userFlags = koishi_utils_1.enumKeys(koishi_core_1.User.Flag);
if (!flags.length)

@@ -107,3 +104,3 @@ return `可用的标记有 ${userFlags.join(', ')}。`;

exports.GroupAction.add('setFlag', async (session, group, ...flags) => {
const groupFlags = extractEnumKeys(koishi_core_1.Group.Flag);
const groupFlags = koishi_utils_1.enumKeys(koishi_core_1.Group.Flag);
if (!flags.length)

@@ -121,3 +118,3 @@ return `可用的标记有 ${groupFlags.join(', ')}。`;

exports.GroupAction.add('unsetFlag', async (session, group, ...flags) => {
const groupFlags = extractEnumKeys(koishi_core_1.Group.Flag);
const groupFlags = koishi_utils_1.enumKeys(koishi_core_1.Group.Flag);
if (!flags.length)

@@ -150,3 +147,3 @@ return `可用的标记有 ${groupFlags.join(', ')}。`;

.action(async ({ session, options }, name, ...args) => {
const isGroup = 'g' in options || 'G' in options;
const isGroup = 'group' in options || 'thisGroup' in options;
if ('user' in options && isGroup)

@@ -153,0 +150,0 @@ return '不能同时目标为指定用户和群。';

@@ -22,3 +22,2 @@ "use strict";

const { blackList = [], respondents = [], throttle, welcome = defaultMessage } = options;
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
blackList.length && ctx.prependMiddleware((session, next) => {

@@ -31,3 +30,2 @@ for (const word of blackList) {

});
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
respondents.length && ctx.middleware((session, next) => {

@@ -34,0 +32,0 @@ const message = koishi_utils_1.simplify(session.message);

@@ -11,3 +11,2 @@ import { Context, Session } from 'koishi-core';

times: number;
assignee: number;
users: Record<number, number>;

@@ -18,6 +17,5 @@ }

onRepeat?: RepeatHandler;
onDuplicateRepeat?: RepeatHandler;
onInterruptRepeat?: RepeatHandler;
onInterrupt?: RepeatHandler;
}
export default function apply(ctx: Context, options?: RepeaterOptions): void;
export {};

@@ -6,3 +6,3 @@ "use strict";

const states = {};
function getState(groupId, assignee) {
function getState(groupId) {
return states[groupId] || (states[groupId] = {

@@ -12,8 +12,7 @@ message: '',

times: 0,
assignee,
users: {},
});
}
ctx.on('before-send', ({ groupId, message, selfId }) => {
const state = getState(groupId, selfId);
ctx.on('before-send', ({ groupId, message }) => {
const state = getState(groupId);
state.repeated = true;

@@ -29,8 +28,8 @@ if (state.message === message) {

});
ctx.prependMiddleware((session, next) => {
const { message, groupId, userId, selfId } = session;
ctx.middleware((session, next) => {
const { message, groupId, userId } = session;
// never respond to messages from self
if (ctx.app.bots[userId])
if (ctx.bots[userId])
return;
const state = getState(groupId, selfId);
const state = getState(groupId);
const check = (handle) => {

@@ -43,25 +42,18 @@ const text = handle === null || handle === void 0 ? void 0 : handle(state, message, userId);

};
// duplicate repeating & normal repeating
if (message === state.message) {
// avoid duplicate counting
if (state.assignee === selfId) {
state.times += 1;
state.users[userId] = (state.users[userId] || 0) + 1;
}
// duplicate repeating & normal repeating
return state.users[userId] > 1 && check(options.onDuplicateRepeat)
|| state.times > 1 && check(options.onRepeat)
|| next();
state.times += 1;
state.users[userId] = (state.users[userId] || 0) + 1;
return check(options.onRepeat) || next();
}
else {
// interrupt repeating
const result = check(options.onInterruptRepeat);
if (result)
return result;
// unrepeated message
state.message = message;
state.repeated = false;
state.times = 1;
state.users = { [userId]: 1 };
return next();
}
// interrupt repeating
const result = check(options.onInterrupt);
if (result)
return result;
// unrepeated message
state.message = message;
state.repeated = false;
state.times = 1;
state.users = { [userId]: 1 };
return next();
});

@@ -68,0 +60,0 @@ }

{
"name": "koishi-plugin-common",
"description": "Common plugins for Koishi",
"version": "3.0.0-beta.9",
"version": "3.0.0-beta.10",
"main": "dist/index.js",

@@ -34,9 +34,9 @@ "typings": "dist/index.d.ts",

"devDependencies": {
"koishi-test-utils": "^4.0.0-beta.5"
"koishi-test-utils": "^4.0.0-beta.6"
},
"dependencies": {
"axios": "^0.19.2",
"koishi-core": "^2.0.0-beta.12",
"koishi-core": "^2.0.0-beta.14",
"koishi-utils": "^3.0.1"
}
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc