import common from "../../../lib/common/common.js"; import fetch from "node-fetch"; import schedule from "node-schedule"; import { Group, segment } from "oicq"; // 指定定时发送的群号 const groupList = ["169721415"]; // 是否开启定时推送,默认为 true let isAutoPush = true; function autoTask(func, time) { if (isAutoPush) { schedule.scheduleJob(time, () => { for (let i = 0; i < groupList.length; i++) { let group = Bot.pickGroup(groupList[i]); func(group); common.sleep(1000); } }); } } // 定时任务合集 autoTask(pushDailyWorld, "0 30 8 * * ?"); autoTask(pushTouchFish, "0 31 8 * * ?"); export class daily extends plugin { constructor(e) { super({ name: "rconsole插件帮助", dsc: "rconsole插件帮助插件帮助", event: "message", priority: 500, rule: [ { reg: "^#每天60秒$", fnc: "dailyWorld", }, { reg: "^#摸鱼人日历$", fnc: "touchFish", }, { reg: "^#开关每日推送$", fnc: "shutdown", }, ], }); } async dailyWorld(e) { // 定时发送时间,采用 Cron 表达式,当前默认为每日 8:30 分推送 await pushDailyWorld(e); return true; } async touchFish(e) { await pushTouchFish(e); return true; } async shutdown(e) { isAutoPush = !isAutoPush; e.reply(`【当前推送状态】:${isAutoPush ? "开启" : "关闭"}`); } } /** * 推送每天60秒读懂世界 * @param e oicq传递的事件参数e */ async function pushDailyWorld(e) { // 每天60秒读懂世界接口地址 const url = await fetch("https://api.vvhan.com/api/60s?type=json").catch(err => logger.error(err) ); const imgUrl = await url.json(); const res = await imgUrl.imgUrl; // 判断接口是否请求成功 if (!res) { e.reply("[60秒读懂世界] 接口请求失败"); } // 回复消息 if (e instanceof Group) { e.sendMsg(segment.image(res)); } else { e.reply(segment.image(res)); } } async function pushTouchFish(e) { const url = await fetch("https://api.vvhan.com/api/moyu?type=json").catch(err => logger.error(err) ); const imgUrl = await url.json(); const res = await imgUrl.url; // 判断接口是否请求成功 if (!res) { e.reply("[摸鱼人日历] 接口请求失败"); } // 回复消息 if (e instanceof Group) { e.sendMsg(segment.image(res)); } else { e.reply(segment.image(res)); } }