koishi-plugin-schedule
Advanced tools
Comparing version 2.0.0-alpha.0 to 2.0.0-alpha.1
@@ -1,3 +0,4 @@ | ||
import { Context, CommandConfig, Meta } from 'koishi-core'; | ||
import { Context, Meta } from 'koishi-core'; | ||
import './database'; | ||
export * from './utils'; | ||
export interface Schedule { | ||
@@ -12,2 +13,2 @@ id: number; | ||
export declare const name = "schedule"; | ||
export declare function apply(ctx: Context, config?: CommandConfig): void; | ||
export declare function apply(ctx: Context): void; |
"use strict"; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
function __export(m) { | ||
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; | ||
} | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const koishi_core_1 = require("koishi-core"); | ||
const ms_1 = __importDefault(require("ms")); | ||
const utils_1 = require("./utils"); | ||
require("./database"); | ||
__export(require("./utils")); | ||
function inspectSchedule({ id, assignee, meta, interval, command, time }) { | ||
@@ -37,18 +38,15 @@ if (!koishi_core_1.appMap[assignee]) | ||
} | ||
const databases = new Set(); | ||
koishi_core_1.onStart(async () => { | ||
const { database } = koishi_core_1.appList[0]; | ||
const schedules = await database.getAllSchedules(); | ||
schedules.forEach(schedule => inspectSchedule(schedule)); | ||
}); | ||
exports.name = 'schedule'; | ||
function apply(ctx, config = {}) { | ||
function apply(ctx) { | ||
const { database } = ctx.app; | ||
ctx.app.receiver.on('connect', async () => { | ||
if (!database || databases.has(database) || !database.getAllSchedules) | ||
return; | ||
databases.add(database); | ||
const schedules = await database.getAllSchedules(); | ||
schedules.forEach(schedule => inspectSchedule(schedule)); | ||
}); | ||
ctx.command('schedule [time] -- <command>', '设置定时命令', { authority: 3, ...config }) | ||
.option('-i, --interval <interval>', '设置触发的间隔秒数', { default: 0, authority: 4 }) | ||
ctx.command('schedule [time] -- <command>', '设置定时命令', { authority: 3 }) | ||
.option('-i, --interval <interval>', '设置触发的间隔秒数', { authority: 4, isString: true }) | ||
.option('-l, --list', '查看已经设置的日程') | ||
.option('-d, --delete <id>', '删除已经设置的日程', { notUsage: true }) | ||
.action(async ({ meta, options, rest }, date) => { | ||
.option('-d, --delete <id>', '删除已经设置的日程') | ||
.action(async ({ meta, options, rest }, ...dateSegments) => { | ||
if (options.delete) { | ||
@@ -63,11 +61,21 @@ await database.removeSchedule(options.delete); | ||
return meta.$send(schedules.map(({ id, time, interval, command }) => { | ||
let output = `${id}. 起始时间:${new Date(time).toLocaleString()},`; | ||
let output = `${id}. 起始时间:${time.toLocaleString()},`; | ||
if (interval) | ||
output += `间隔时间:${ms_1.default(interval)},`; | ||
output += `间隔时间:${utils_1.formatTime(interval)},`; | ||
return output + `指令:${command}`; | ||
}).join('\n')); | ||
} | ||
if (/^\d{1,2}(:\d{1,2}){1,2}$/.exec(date)) { | ||
date = `${new Date().toLocaleDateString()} ${date}`; | ||
if (!rest) | ||
return meta.$send('请输入要执行的指令。'); | ||
let parsed; | ||
let date = dateSegments.join('-'); | ||
if (parsed = utils_1.parseTime(date)) { | ||
date = Date.now() + parsed; | ||
} | ||
else if (/^\d{1,2}(:\d{1,2}){1,2}$/.test(date)) { | ||
date = `${new Date().toLocaleDateString()}-${date}`; | ||
} | ||
else if (/^\d{1,2}-\d{1,2}-\d{1,2}(:\d{1,2}){1,2}$/.test(date)) { | ||
date = `${new Date().getFullYear()}-${date}`; | ||
} | ||
const time = date ? new Date(date) : new Date(); | ||
@@ -77,3 +85,7 @@ if (Number.isNaN(+time)) { | ||
} | ||
const schedule = await database.createSchedule(time, ctx.app.selfId, options.interval * 1000, rest, meta); | ||
const interval = utils_1.parseTime(options.interval); | ||
if (!interval && options.interval) { | ||
return meta.$send('请输入合法的时间间隔。'); | ||
} | ||
const schedule = await database.createSchedule(time, ctx.app.selfId, interval, rest, meta); | ||
await meta.$send(`日程已创建,编号为 ${schedule.id}。`); | ||
@@ -80,0 +92,0 @@ return inspectSchedule(schedule); |
{ | ||
"name": "koishi-plugin-schedule", | ||
"description": "Schedule plugin for Koishi", | ||
"version": "2.0.0-alpha.0", | ||
"version": "2.0.0-alpha.1", | ||
"main": "dist/index.js", | ||
"typings": "dist/index.d.ts", | ||
"files": [ | ||
"dist" | ||
], | ||
"author": "Shigma <1700011071@pku.edu.cn>", | ||
@@ -11,3 +14,4 @@ "license": "MIT", | ||
"build": "tsc -b", | ||
"lint": "eslint src --ext .ts" | ||
"lint": "eslint src --ext .ts", | ||
"prepack": "tsc -b" | ||
}, | ||
@@ -35,8 +39,8 @@ "repository": { | ||
"@types/ms": "^0.7.31", | ||
"koishi-database-level": "^1.1.5", | ||
"koishi-database-mysql": "^1.1.5", | ||
"koishi-test-utils": "^3.2.0" | ||
"koishi-database-level": "^2.0.0-alpha.0", | ||
"koishi-database-mysql": "^2.0.0-alpha.0", | ||
"koishi-test-utils": "^4.0.0-alpha.0" | ||
}, | ||
"dependencies": { | ||
"koishi-core": "^1.11.0", | ||
"koishi-core": "^2.0.0-alpha.0", | ||
"koishi-utils": "^1.0.4", | ||
@@ -43,0 +47,0 @@ "ms": "^2.1.2" |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
9778
8
216
1
+ Added@hapi/bourne@3.0.0(transitive)
+ Added@types/accepts@1.3.7(transitive)
+ Added@types/body-parser@1.19.5(transitive)
+ Added@types/connect@3.4.38(transitive)
+ Added@types/content-disposition@0.5.8(transitive)
+ Added@types/cookies@0.9.0(transitive)
+ Added@types/express@5.0.0(transitive)
+ Added@types/express-serve-static-core@5.0.6(transitive)
+ Added@types/http-assert@1.5.6(transitive)
+ Added@types/http-errors@2.0.4(transitive)
+ Added@types/keygrip@1.0.6(transitive)
+ Added@types/koa@2.15.0(transitive)
+ Added@types/koa-bodyparser@4.3.12(transitive)
+ Added@types/koa-compose@3.2.8(transitive)
+ Added@types/koa-router@7.4.8(transitive)
+ Added@types/mime@1.3.5(transitive)
+ Added@types/node@22.13.5(transitive)
+ Added@types/qs@6.9.18(transitive)
+ Added@types/range-parser@1.2.7(transitive)
+ Added@types/send@0.17.4(transitive)
+ Added@types/serve-static@1.15.7(transitive)
+ Addedaccepts@1.3.8(transitive)
+ Addedbytes@3.1.2(transitive)
+ Addedcache-content-type@1.0.1(transitive)
+ Addedcall-bind-apply-helpers@1.0.2(transitive)
+ Addedcall-bound@1.0.3(transitive)
+ Addedco@4.6.0(transitive)
+ Addedco-body@6.2.0(transitive)
+ Addedcontent-disposition@0.5.4(transitive)
+ Addedcontent-type@1.0.5(transitive)
+ Addedcookies@0.9.1(transitive)
+ Addedcopy-to@2.0.1(transitive)
+ Addeddeep-equal@1.0.1(transitive)
+ Addeddelegates@1.0.0(transitive)
+ Addeddepd@1.1.22.0.0(transitive)
+ Addeddestroy@1.2.0(transitive)
+ Addeddunder-proto@1.0.1(transitive)
+ Addedee-first@1.1.1(transitive)
+ Addedencodeurl@1.0.2(transitive)
+ Addedes-define-property@1.0.1(transitive)
+ Addedes-errors@1.3.0(transitive)
+ Addedes-object-atoms@1.1.1(transitive)
+ Addedescape-html@1.0.3(transitive)
+ Addedfastest-levenshtein@1.0.16(transitive)
+ Addedfresh@0.5.2(transitive)
+ Addedfunction-bind@1.1.2(transitive)
+ Addedget-intrinsic@1.3.0(transitive)
+ Addedget-proto@1.0.1(transitive)
+ Addedgopd@1.2.0(transitive)
+ Addedhas-flag@4.0.0(transitive)
+ Addedhas-symbols@1.1.0(transitive)
+ Addedhas-tostringtag@1.0.2(transitive)
+ Addedhasown@2.0.2(transitive)
+ Addedhttp-assert@1.5.0(transitive)
+ Addedhttp-errors@1.8.12.0.0(transitive)
+ Addediconv-lite@0.4.24(transitive)
+ Addedinflation@2.1.0(transitive)
+ Addedinherits@2.0.4(transitive)
+ Addedis-generator-function@1.1.0(transitive)
+ Addedis-regex@1.2.1(transitive)
+ Addedkeygrip@1.1.0(transitive)
+ Addedkoa@2.16.0(transitive)
+ Addedkoa-bodyparser@4.4.1(transitive)
+ Addedkoa-compose@4.2.0(transitive)
+ Addedkoa-convert@2.0.0(transitive)
+ Addedkoa-router@10.1.1(transitive)
+ Addedkoishi-core@2.5.2(transitive)
+ Addedkoishi-utils@3.2.6(transitive)
+ Addedlru-cache@6.0.0(transitive)
+ Addedmath-intrinsics@1.1.0(transitive)
+ Addedmedia-typer@0.3.0(transitive)
+ Addedmethods@1.1.2(transitive)
+ Addedmime-db@1.52.0(transitive)
+ Addedmime-types@2.1.35(transitive)
+ Addednegotiator@0.6.3(transitive)
+ Addedobject-inspect@1.13.4(transitive)
+ Addedon-finished@2.4.1(transitive)
+ Addedonly@0.0.2(transitive)
+ Addedparseurl@1.3.3(transitive)
+ Addedpath-to-regexp@6.3.0(transitive)
+ Addedqs@6.14.0(transitive)
+ Addedraw-body@2.5.2(transitive)
+ Addedsafe-buffer@5.2.1(transitive)
+ Addedsafe-regex-test@1.1.0(transitive)
+ Addedsafer-buffer@2.1.2(transitive)
+ Addedsetprototypeof@1.2.0(transitive)
+ Addedside-channel@1.1.0(transitive)
+ Addedside-channel-list@1.0.0(transitive)
+ Addedside-channel-map@1.0.1(transitive)
+ Addedside-channel-weakmap@1.0.2(transitive)
+ Addedstatuses@1.5.02.0.1(transitive)
+ Addedsupports-color@8.1.1(transitive)
+ Addedtoidentifier@1.0.1(transitive)
+ Addedtsscmp@1.0.6(transitive)
+ Addedtype-is@1.6.18(transitive)
+ Addedundici-types@6.20.0(transitive)
+ Addedunpipe@1.0.0(transitive)
+ Addedvary@1.1.2(transitive)
+ Addedyallist@4.0.0(transitive)
+ Addedylru@1.4.0(transitive)
- Removedaxios@0.19.2(transitive)
- Removedescape-string-regexp@3.0.0(transitive)
- Removedfollow-redirects@1.5.10(transitive)
- Removedkoishi-core@1.12.0(transitive)
- Removedleven@3.1.0(transitive)
- Removedws@7.5.10(transitive)
Updatedkoishi-core@^2.0.0-alpha.0