@minato-bot/plugin-wxjsxy 2.4.0 → 2.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,9 +1,10 @@
1
1
  import { n as encryptedString, r as setMaxDigits, t as RSAKeyPair } from "./lib-DMqn3JNQ.mjs";
2
2
  import * as _$_atri_bot_lib_request0 from "@atri-bot/lib-request";
3
3
  import * as _$_atri_bot_core0 from "@atri-bot/core";
4
- import { ATRI, Argv, Bot, Plugin } from "@atri-bot/core";
4
+ import { ATRI, Bot, Plugin } from "@atri-bot/core";
5
5
  import * as _$node_napcat_ts0 from "node-napcat-ts";
6
6
  import { TextSegment } from "node-napcat-ts";
7
+ import * as _$yargs from "yargs";
7
8
 
8
9
  //#region src/api.d.ts
9
10
  declare const casReq: _$_atri_bot_lib_request0.KyInstance;
@@ -169,22 +170,22 @@ interface WxjsxyPluginConfig {
169
170
  }>;
170
171
  }
171
172
  declare const plugin: Plugin<WxjsxyPluginConfig>;
172
- declare const addAccountCommand: _$_atri_bot_core0.ATRICommand<"message", Argv<{
173
+ declare const addAccountCommand: _$_atri_bot_core0.ATRICommand<"message", _$yargs.Argv<{
173
174
  username: string | undefined;
174
175
  } & {
175
176
  password: string | undefined;
176
177
  }>, WxjsxyPluginConfig>;
177
178
  declare const deleteAccountCommand: _$_atri_bot_core0.ATRICommand<"message", any, WxjsxyPluginConfig>;
178
- declare const startProcessCommand: _$_atri_bot_core0.ATRICommand<"message", Argv<{
179
+ declare const startProcessCommand: _$_atri_bot_core0.ATRICommand<"message", _$yargs.Argv<{
179
180
  offset: number | undefined;
180
181
  }>, WxjsxyPluginConfig>;
181
182
  declare function getProcessList(req: LoginToCasReq, data: getDyProcessReq): Promise<_$node_napcat_ts0.TextSegment[]>;
182
- declare const getProcessListCommand: _$_atri_bot_core0.ATRICommand<"message", Argv<{
183
+ declare const getProcessListCommand: _$_atri_bot_core0.ATRICommand<"message", _$yargs.Argv<{
183
184
  page: number;
184
185
  } & {
185
186
  size: number;
186
187
  }>, WxjsxyPluginConfig>;
187
- declare const cronStartProcessCommand: _$_atri_bot_core0.ATRICommand<"message", Argv<{
188
+ declare const cronStartProcessCommand: _$_atri_bot_core0.ATRICommand<"message", _$yargs.Argv<{
188
189
  cron: string | undefined;
189
190
  } & {
190
191
  offset: number | undefined;
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import{n as e,r as t,t as n}from"./lib-DMqn3JNQ.mjs";import r from"node:crypto";import{useRequest as i}from"@atri-bot/lib-request";import{Plugin as a}from"@atri-bot/core";import{addCronJob as o,getCronJob as s,getCronJobs as c,removeCronJob as l}from"@atri-bot/lib-cron";import{Structs as u}from"node-napcat-ts";import d from"dayjs";t(131);const f=new n(`010001`,``,`00b5eeb166e069920e80bebd1fea4829d3d1f3216f2aabe79b6c47a3c18dcee5fd22c2e7ac519cab59198ece036dcf289ea8201e2a0b9ded307f8fb704136eaeb670286f5ad44e691005ba9ea5af04ada5367cd724b5a26fdb5120cc95b6431604bd219c6b7d83a6f8f24b43918ea988a76f93c333aa5a20991493d4eb1117e7b1`),p=i({throwHttpErrors:!1,headers:{"User-Agent":`Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36`,Accept:`application/json, text/plain, */*`,"Content-Type":`application/x-www-form-urlencoded`,"sec-ch-ua-platform":`"Windows"`}}),m=i({headers:{"User-Agent":`Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36`,Accept:`application/json, text/plain, */*`,"sec-ch-ua-platform":`"Windows"`,mode:`wxa`,"Content-Type":`application/json`}});async function h(t){let{username:n,password:r}=t;return await p.post(`https://cas.wxjsxy.com.cn/lyuapServer/v1/tickets`,{body:new URLSearchParams({username:n,password:e(f,r),service:`https://portal.wxjsxy.com.cn/`,loginType:``,id:``,code:``,otpcode:``})}).json()}async function g(e){let t=await p.post(`https://cas.wxjsxy.com.cn/lyuapServer/v1/tickets/${e}`,{body:new URLSearchParams({service:`https://dy.wxjsxy.com.cn/prdapi/wxjsxyapp/cas/index`,loginToken:`loginToken`})}).text();return[t.startsWith(`ST-`),t]}async function _(e){let t=(await p.get(`https://dy.wxjsxy.com.cn/prdapi/wxjsxyapp/cas/index?ticket=${e}`,{redirect:`manual`})).headers.getSetCookie();return t.length===0?null:t.map(e=>`${e.split(`;`)[0]};`).join(``)}async function v(e){return await m.get(`https://dy.wxjsxy.com.cn/prdapi/wxjsxyapp/cas/indexData`,{headers:{cookie:e}}).json()}async function y(e,t){let n={...t,processDefinitionKey:`studentApply`},i=r.createHash(`md5`).update(`myappsecret${JSON.stringify(n)}myappsecret`).digest(`hex`);return await m.post(`https://dy.wxjsxy.com.cn/prdapi/activiti/processInstance/startProcess?user_info_query_json=${encodeURIComponent(JSON.stringify(n))}&sign=${i}`,{json:n,headers:{token:e,sign:i,timestamp:Date.now().toString()}}).json()}async function b(e,t={pageNo:1,pageSize:1}){let n=r.createHash(`md5`).update(`myappsecret${JSON.stringify(t)}myappsecret`).digest(`hex`);return await m.post(`https://dy.wxjsxy.com.cn/prdapi/activiti/task/myapply?user_info_query_json=${encodeURIComponent(JSON.stringify(t))}&sign=${n}`,{json:t,headers:{token:e,sign:n,timestamp:Date.now().toString()}}).json()}async function x(e,t){let n={instanceId:t},i=r.createHash(`md5`).update(`myappsecret${JSON.stringify(n)}myappsecret`).digest(`hex`);return await m.post(`https://dy.wxjsxy.com.cn/prdapi/activiti/task/done/info/byInstanceId?user_info_query_json=${encodeURIComponent(JSON.stringify(n))}&sign=${i}`,{json:n,headers:{token:e,sign:i,timestamp:Date.now().toString()}}).json()}var S=`@minato-bot/plugin-wxjsxy`;function C(e,t){return e.accounts[t]?[!0,null]:[!1,[u.text(`请先添加账号,使用命令:wxjsxy添加账号`)]]}async function w(e){let t=await h(e);if(!(`ticket`in t))return[u.text(`请假失败, 登陆账号失败: ${JSON.stringify(t)}`)];let[n,r]=await g(t.tgt);if(!n)return[u.text(`请假失败, 获取CasToken失败: ${r}`)];let i=await _(r);if(!i)return[u.text(`请假失败, 获取DyCookie失败`)];let a=await v(i);return a.token?a.token:[u.text(`请假失败, 获取DyToken失败: ${JSON.stringify(a)}`)]}async function T(e,t){let n=await w(e);if(Array.isArray(n))return n;let r=await y(n,{beginTime:d().add(t,`day`).hour(6).minute(30).format(`YYYY-MM-DD HH:mm`),endTime:d().add(t,`day`).hour(20).minute(50).format(`YYYY-MM-DD HH:mm`),leaveSchool:`是`,backDormitory:`是`,askedType:`事假`,reason:`集训`});return r.code===200?[u.text(`请假成功, 返回信息: \n ${JSON.stringify(r)}`)]:[u.text(`请假失败, 提交请假申请失败: ${JSON.stringify(r)}`)]}async function E(e,t,n,r){D();for(let[i,a]of Object.entries(e.crons))s(`wxjsxy_cron_${i}`)&&l(`wxjsxy_cron_${i}`),o({name:`wxjsxy_cron_${i}`,cronTime:a.cron,onTick:async()=>{let[o,s]=C(e,i.toString());o||(r.WARN(`用户 ${i} 的账号信息有误,无法执行定时请假任务,已自动删除定时任务`),delete e.crons[i],await n());let c=await T(e.accounts[i],a.offset);await t.sendMsg({message_type:`private`,user_id:Number.parseFloat(i)},c)}})}function D(){for(let[e,t]of Object.entries(c()))e.startsWith(`wxjsxy_cron_`)&&l(e)}const O=new a(S).setDefaultConfig([{key:`accounts`,val:{},comment:`账号信息,key为用户idvalue为账号信息`},{key:`crons`,val:{},comment:`定时任务信息,key为用户idvalue为定时任务信息`}]).onInstall(async({config:e,bot:t,saveConfig:n,logger:r})=>{await E(e,t,n,r)}).onUninstall(()=>{D()}),k=O.command(`wxjsxy添加账号`).commander(e=>e().option(`username`,{alias:`u`,type:`string`,description:`账号`}).option(`password`,{alias:`p`,type:`string`,description:`密码`})).callback(async({context:e,options:t,config:n,bot:r,saveConfig:i})=>{if(C(n,e.user_id.toString())[0]){await r.sendMsg(e,[u.text(`账号已存在,无需重复添加`)]);return}let{username:a,password:o}=t;if(!a){await r.sendMsg(e,[u.text(`请输入账号(学号):`)]);let t=await r.useMessage(e);if(!t)return;a=t.raw_message.trim()}if(!o){await r.sendMsg(e,[u.text(`请输入密码(Wxjsxy@身份证后六位):`)]);let t=await r.useMessage(e);if(!t)return;o=t.raw_message.trim()}let s=await h({username:a,password:o});`ticket`in s||await r.sendMsg(e,[u.text(`登录失败,请检查账号密码是否正确: \n ${JSON.stringify(s)}`)]),await r.sendMsg(e,[u.text(`登录成功, 返回信息: \n ${JSON.stringify(s)}`)]),n.accounts[e.user_id.toString()]={username:a,password:o},await i()}),A=O.command(`wxjsxy删除账号`).callback(async({context:e,config:t,bot:n,saveConfig:r})=>{let[i,a]=C(t,e.user_id.toString());if(!i){await n.sendMsg(e,a);return}delete t.accounts[e.user_id.toString()],delete t.crons[e.user_id.toString()],l(`wxjsxy_cron_${e.user_id}`),await r(),await n.sendMsg(e,[u.text(`账号删除成功`)])}),j=O.command(`wxjsxy请假`).commander(e=>e().option(`offset`,{alias:`o`,type:`number`,description:`请假日期相对于今天的偏移,默认为0即请假当天`})).callback(async({context:e,options:t,config:n,bot:r})=>{let[i,a]=C(n,e.user_id.toString());if(!i){await r.sendMsg(e,a);return}let{offset:o}=t;if(!o){await r.sendMsg(e,[u.text(`请输入请假日期相对于今天的偏移,默认为0即请假当天:`)]);let t=await r.useMessage(e);if(!t)return;if(o=Number.parseInt(t.raw_message.trim()),Number.isNaN(o)){await r.sendMsg(e,[u.text(`偏移必须是一个数字`)]);return}}let s=await T(n.accounts[e.user_id.toString()],o);await r.sendMsg(e,s)});async function M(e,t){let n=await w(e);if(Array.isArray(n))return n;let r=await b(n,t);if(r.code!==200)return[u.text(`获取请假情况失败, 错误信息: ${JSON.stringify(r)}`)];let i=await Promise.all(r.rows.map(e=>x(n,e.instanceId)));return i.some(e=>e.code!==200)?[u.text(`获取请假详情失败, 错误信息: ${JSON.stringify(i)}`)]:[u.text(`请假情况:
1
+ import{n as e,r as t,t as n}from"./lib-DMqn3JNQ.mjs";import r from"node:crypto";import{useRequest as i}from"@atri-bot/lib-request";import{Plugin as a}from"@atri-bot/core";import{addCronJob as o,getCronJob as s,getCronJobs as c,removeCronJob as l}from"@atri-bot/lib-cron";import{Structs as u}from"node-napcat-ts";import d from"dayjs";t(131);const f=new n(`010001`,``,`00b5eeb166e069920e80bebd1fea4829d3d1f3216f2aabe79b6c47a3c18dcee5fd22c2e7ac519cab59198ece036dcf289ea8201e2a0b9ded307f8fb704136eaeb670286f5ad44e691005ba9ea5af04ada5367cd724b5a26fdb5120cc95b6431604bd219c6b7d83a6f8f24b43918ea988a76f93c333aa5a20991493d4eb1117e7b1`),p=`https://1252343003-i6vavhfm71.ap-guangzhou.tencentscf.com`,m=`https://1252343003-lhlsf5iypl.ap-guangzhou.tencentscf.com`,h=i({throwHttpErrors:!1,headers:{"User-Agent":`Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36`,Accept:`application/json, text/plain, */*`,"Content-Type":`application/x-www-form-urlencoded`,"sec-ch-ua-platform":`"Windows"`}}),g=i({headers:{"User-Agent":`Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36`,Accept:`application/json, text/plain, */*`,"sec-ch-ua-platform":`"Windows"`,mode:`wxa`,"Content-Type":`application/json`}});async function _(t){let{username:n,password:r}=t;return await h.post(`https://${p}/lyuapServer/v1/tickets`,{body:new URLSearchParams({username:n,password:e(f,r),service:`https://portal.wxjsxy.com.cn/`,loginType:``,id:``,code:``,otpcode:``})}).json()}async function v(e){let t=await h.post(`https://${p}/lyuapServer/v1/tickets/${e}`,{body:new URLSearchParams({service:`https://${m}/prdapi/wxjsxyapp/cas/index`,loginToken:`loginToken`})}).text();return[t.startsWith(`ST-`),t]}async function y(e){let t=(await h.get(`https://${m}/prdapi/wxjsxyapp/cas/index?ticket=${e}`,{redirect:`manual`})).headers.getSetCookie();return t.length===0?null:t.map(e=>`${e.split(`;`)[0]};`).join(``)}async function b(e){return await g.get(`https://${m}/prdapi/wxjsxyapp/cas/indexData`,{headers:{cookie:e}}).json()}async function x(e,t){let n={...t,processDefinitionKey:`studentApply`},i=r.createHash(`md5`).update(`myappsecret${JSON.stringify(n)}myappsecret`).digest(`hex`);return await g.post(`https://${m}/prdapi/activiti/processInstance/startProcess?user_info_query_json=${encodeURIComponent(JSON.stringify(n))}&sign=${i}`,{json:n,headers:{token:e,sign:i,timestamp:Date.now().toString()}}).json()}async function S(e,t={pageNo:1,pageSize:1}){let n=r.createHash(`md5`).update(`myappsecret${JSON.stringify(t)}myappsecret`).digest(`hex`);return await g.post(`https://${m}/prdapi/activiti/task/myapply?user_info_query_json=${encodeURIComponent(JSON.stringify(t))}&sign=${n}`,{json:t,headers:{token:e,sign:n,timestamp:Date.now().toString()}}).json()}async function C(e,t){let n={instanceId:t},i=r.createHash(`md5`).update(`myappsecret${JSON.stringify(n)}myappsecret`).digest(`hex`);return await g.post(`https://${m}/prdapi/activiti/task/done/info/byInstanceId?user_info_query_json=${encodeURIComponent(JSON.stringify(n))}&sign=${i}`,{json:n,headers:{token:e,sign:i,timestamp:Date.now().toString()}}).json()}var w=`@minato-bot/plugin-wxjsxy`;function T(e,t){return e.accounts[t]?[!0,null]:[!1,[u.text(`请先添加账号,使用命令:wxjsxy添加账号`)]]}async function E(e){let t=await _(e);if(!(`ticket`in t))return[u.text(`请假失败, 登陆账号失败: ${JSON.stringify(t)}`)];let[n,r]=await v(t.tgt);if(!n)return[u.text(`请假失败, 获取CasToken失败: ${r}`)];let i=await y(r);if(!i)return[u.text(`请假失败, 获取DyCookie失败`)];let a=await b(i);return a.token?a.token:[u.text(`请假失败, 获取DyToken失败: ${JSON.stringify(a)}`)]}async function D(e,t){let n=await E(e);if(Array.isArray(n))return n;let r=await x(n,{beginTime:d().add(t,`day`).hour(6).minute(30).format(`YYYY-MM-DD HH:mm`),endTime:d().add(t,`day`).hour(20).minute(50).format(`YYYY-MM-DD HH:mm`),leaveSchool:`是`,backDormitory:`是`,askedType:`事假`,reason:`集训`});return r.code===200?[u.text(`请假成功, 返回信息: \n ${JSON.stringify(r)}`)]:[u.text(`请假失败, 提交请假申请失败: ${JSON.stringify(r)}`)]}async function O(e,t,n,r){k();for(let[i,a]of Object.entries(e.crons))s(`wxjsxy_cron_${i}`)&&l(`wxjsxy_cron_${i}`),o({name:`wxjsxy_cron_${i}`,cronTime:a.cron,onTick:async()=>{let[o,s]=T(e,i.toString());if(!o){r.WARN(`用户 ${i} 的账号信息有误,无法执行定时请假任务,已自动删除定时任务`),delete e.crons[i],await n();return}let c=await D(e.accounts[i],a.offset);await t.sendMsg({message_type:`private`,user_id:Number.parseFloat(i)},c)}})}function k(){for(let[e,t]of Object.entries(c()))e.startsWith(`wxjsxy_cron_`)&&l(e)}const A=new a(w).setDefaultConfig([{key:`accounts`,val:{},comment:`账号信息, key为用户id, value为账号信息`},{key:`crons`,val:{},comment:`定时任务信息, key为用户id, value为定时任务信息`}]).onInstall(async({config:e,bot:t,saveConfig:n,logger:r})=>{await O(e,t,n,r)}).onUninstall(()=>{k()}),j=A.command(`wxjsxy添加账号`).commander(e=>e().option(`username`,{alias:`u`,type:`string`,description:`账号`}).option(`password`,{alias:`p`,type:`string`,description:`密码`})).callback(async({context:e,options:t,config:n,bot:r,saveConfig:i})=>{if(T(n,e.user_id.toString())[0]){await r.sendMsg(e,[u.text(`账号已存在, 无需重复添加`)]);return}let{username:a,password:o}=t;if(!a){await r.sendMsg(e,[u.text(`请输入账号(学号):`)]);let t=await r.useMessage(e);if(!t)return;a=t.raw_message.trim()}if(!o){await r.sendMsg(e,[u.text(`请输入密码(Wxjsxy@身份证后六位):`)]);let t=await r.useMessage(e);if(!t)return;o=t.raw_message.trim()}let s=await _({username:a,password:o});if(!(`ticket`in s)){await r.sendMsg(e,[u.text(`登录失败, 请检查账号密码是否正确: \n ${JSON.stringify(s)}`)]);return}await r.sendMsg(e,[u.text(`登录成功, 返回信息: \n ${JSON.stringify(s)}`)]),n.accounts[e.user_id.toString()]={username:a,password:o},await i()}),M=A.command(`wxjsxy删除账号`).callback(async({context:e,config:t,bot:n,saveConfig:r})=>{let[i,a]=T(t,e.user_id.toString());if(!i){await n.sendMsg(e,a);return}delete t.accounts[e.user_id.toString()],delete t.crons[e.user_id.toString()],l(`wxjsxy_cron_${e.user_id}`),await r(),await n.sendMsg(e,[u.text(`账号删除成功`)])}),N=A.command(`wxjsxy请假`).commander(e=>e().option(`offset`,{alias:`o`,type:`number`,description:`请假日期相对于今天的偏移, 0表示当天`})).callback(async({context:e,options:t,config:n,bot:r})=>{let[i,a]=T(n,e.user_id.toString());if(!i){await r.sendMsg(e,a);return}let{offset:o}=t;if(o===void 0){await r.sendMsg(e,[u.text(`请输入请假日期相对于今天的偏移, 0表示当天:`)]);let t=await r.useMessage(e);if(!t)return;if(o=Number.parseInt(t.raw_message.trim()),Number.isNaN(o)){await r.sendMsg(e,[u.text(`偏移必须是一个数字`)]);return}}let s=await D(n.accounts[e.user_id.toString()],o);await r.sendMsg(e,s)});async function P(e,t){let n=await E(e);if(Array.isArray(n))return n;let r=await S(n,t);if(r.code!==200)return[u.text(`获取请假情况失败, 错误信息: ${JSON.stringify(r)}`)];let i=await Promise.all(r.rows.map(e=>C(n,e.instanceId)));return i.some(e=>e.code!==200)?[u.text(`获取请假详情失败, 错误信息: ${JSON.stringify(i)}`)]:[u.text(`请假情况:
2
2
  `),u.text(r.rows.map((e,t)=>{let n=[`- 申请时间: ${e.processStartTime}`,` 审核状态: ${e.approvaState}`],r=i[t];return r.code===200?(n.push(` 申请时间: ${r.rows.hisTasks[1].processStartTime}`,...r.rows.hisTasks[1].formSchema.formProperties.map(e=>` ${e.name}: ${e.value}`)),n.join(`
3
3
  `)):(n.push(` 获取详情失败: ${JSON.stringify(r)}`),n.join(`
4
- `))}).join(``))]}const N=O.command(`wxjsxy请假情况`).commander(e=>e().option(`page`,{alias:`p`,type:`number`,description:`页码`,default:1}).option(`size`,{alias:`s`,type:`number`,description:`每页数量`,default:1})).callback(async({context:e,options:t,config:n,bot:r})=>{let[i,a]=C(n,e.user_id.toString());if(!i){await r.sendMsg(e,a);return}let o=await M(n.accounts[e.user_id.toString()],{pageNo:t.page,pageSize:t.size});await r.sendMsg(e,o)}),P=O.command(`wxjsxy定时请假`).commander(e=>e().option(`cron`,{alias:`c`,type:`string`,description:`cron表达式`}).option(`offset`,{alias:`o`,type:`number`,description:`请假日期相对于今天的偏移,默认为0即请假当天`})).callback(async({context:e,options:t,config:n,bot:r,saveConfig:i,logger:a})=>{let[o,s]=C(n,e.user_id.toString());if(!o){await r.sendMsg(e,s);return}if(n.crons[e.user_id.toString()]){await r.sendMsg(e,[u.text(`已存在定时请假任务`)]);return}let{cron:c,offset:l}=t;if(!c){await r.sendMsg(e,[u.text(`请输入cron表达式:`),u.text(`cron表达式格式必须为6段,示例: 0 30 6 * * * 表示每天6点30分`)]);let t=await r.useMessage(e);if(!t)return;if(c=t.raw_message.trim(),c.split(` `).length!==6){await r.sendMsg(e,[u.text(`cron表达式格式错误,请提供6段表达式.`)]);return}}if(!l){await r.sendMsg(e,[u.text(`请输入请假日期相对于今天的偏移,默认为0即请假当天:`)]);let t=await r.useMessage(e);if(!t)return;if(l=Number.parseInt(t.raw_message.trim()),Number.isNaN(l)){await r.sendMsg(e,[u.text(`偏移必须是一个数字`)]);return}}if(!await r.isFriend({user_id:e.user_id})){await r.sendMsg(e,[u.text(`请先添加好友,才能设置定时请假哦`)]);return}n.crons[e.user_id.toString()]={cron:c,offset:l},await i(),await E(n,r,i,a),await r.sendMsg(e,[u.text(`定时请假设置成功`)])}),F=O.command(`wxjsxy取消定时请假`).callback(async({context:e,config:t,bot:n,saveConfig:r,logger:i})=>{let[a,o]=C(t,e.user_id.toString());if(!a){await n.sendMsg(e,o);return}if(!t.crons[e.user_id.toString()]){await n.sendMsg(e,[u.text(`没有定时请假任务可供取消`)]);return}delete t.crons[e.user_id.toString()],await r(),await E(t,n,r,i),await n.sendMsg(e,[u.text(`定时请假取消成功`)])});export{n as RSAKeyPair,k as addAccountCommand,p as casReq,C as checkHaveAccount,P as cronStartProcessCommand,F as cronStopProcessCommand,A as deleteAccountCommand,m as dyReq,e as encryptedString,g as getCasLoginToken,_ as getDyCookie,x as getDyProcessDetail,b as getDyProcessList,v as getDyToken,w as getDyTokenByCas,M as getProcessList,N as getProcessListCommand,h as loginToCas,O as plugin,y as setDyProcess,t as setMaxDigits,T as startProcess,j as startProcessCommand,D as stopAllCrons,E as syncCrons};
4
+ `))}).join(``))]}const F=A.command(`wxjsxy请假情况`).commander(e=>e().option(`page`,{alias:`p`,type:`number`,description:`页码`,default:1}).option(`size`,{alias:`s`,type:`number`,description:`每页数量`,default:1})).callback(async({context:e,options:t,config:n,bot:r})=>{let[i,a]=T(n,e.user_id.toString());if(!i){await r.sendMsg(e,a);return}let o=await P(n.accounts[e.user_id.toString()],{pageNo:t.page,pageSize:t.size});await r.sendMsg(e,o)}),I=A.command(`wxjsxy定时请假`).commander(e=>e().option(`cron`,{alias:`c`,type:`string`,description:`cron表达式`}).option(`offset`,{alias:`o`,type:`number`,description:`请假日期相对于今天的偏移, 0表示当天`})).callback(async({context:e,options:t,config:n,bot:r,saveConfig:i,logger:a})=>{let[o,s]=T(n,e.user_id.toString());if(!o){await r.sendMsg(e,s);return}if(n.crons[e.user_id.toString()]){await r.sendMsg(e,[u.text(`已存在定时请假任务`)]);return}let{cron:c,offset:l}=t;if(!c){await r.sendMsg(e,[u.text(`请输入cron表达式:`),u.text(`cron表达式格式必须为6段, 示例: 0 30 6 * * * 表示每天6点30分`)]);let t=await r.useMessage(e);if(!t)return;c=t.raw_message.trim()}if(c.split(` `).length!==6){await r.sendMsg(e,[u.text(`cron表达式格式错误, 请提供6段表达式.`)]);return}if(l===void 0){await r.sendMsg(e,[u.text(`请输入请假日期相对于今天的偏移, 0表示当天:`)]);let t=await r.useMessage(e);if(!t)return;if(l=Number.parseInt(t.raw_message.trim()),Number.isNaN(l)){await r.sendMsg(e,[u.text(`偏移必须是一个数字`)]);return}}if(!await r.isFriend({user_id:e.user_id})){await r.sendMsg(e,[u.text(`请先添加好友, 才能设置定时请假哦`)]);return}n.crons[e.user_id.toString()]={cron:c,offset:l},await i(),await O(n,r,i,a),await r.sendMsg(e,[u.text(`定时请假设置成功`)])}),L=A.command(`wxjsxy取消定时请假`).callback(async({context:e,config:t,bot:n,saveConfig:r,logger:i})=>{let[a,o]=T(t,e.user_id.toString());if(!a){await n.sendMsg(e,o);return}if(!t.crons[e.user_id.toString()]){await n.sendMsg(e,[u.text(`没有定时请假任务可供取消`)]);return}delete t.crons[e.user_id.toString()],await r(),await O(t,n,r,i),await n.sendMsg(e,[u.text(`定时请假取消成功`)])});export{n as RSAKeyPair,j as addAccountCommand,h as casReq,T as checkHaveAccount,I as cronStartProcessCommand,L as cronStopProcessCommand,M as deleteAccountCommand,g as dyReq,e as encryptedString,v as getCasLoginToken,y as getDyCookie,C as getDyProcessDetail,S as getDyProcessList,b as getDyToken,E as getDyTokenByCas,P as getProcessList,F as getProcessListCommand,_ as loginToCas,A as plugin,x as setDyProcess,t as setMaxDigits,D as startProcess,N as startProcessCommand,k as stopAllCrons,O as syncCrons};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@minato-bot/plugin-wxjsxy",
3
3
  "type": "module",
4
- "version": "2.4.0",
4
+ "version": "2.4.2",
5
5
  "description": "wxjsxy for atri framework",
6
6
  "author": "huan_kong",
7
7
  "license": "MIT",
@@ -16,7 +16,7 @@
16
16
  "typecheck": "tsc --noEmit -p tsconfig.json --composite false"
17
17
  },
18
18
  "dependencies": {
19
- "@atri-bot/core": "^2.4.8",
19
+ "@atri-bot/core": "^2.4.9",
20
20
  "@atri-bot/lib-cron": "^2.3.0",
21
21
  "@atri-bot/lib-request": "^2.3.1",
22
22
  "dayjs": "^1.11.20",