2
0
mirror of https://github.com/ctrlcvs/xiaoyao-cvs-plugin.git synced 2024-12-22 19:10:53 +08:00

新增七圣召唤动态指令 例:#七圣刻晴动态

This commit is contained in:
Ctrlcvs 2022-12-17 18:29:18 +08:00
parent 16d9f7d19c
commit b998e12a68
2 changed files with 83 additions and 31 deletions

View File

@ -1,7 +1,7 @@
import lodash from "lodash";
import schedule from "node-schedule";
import {
AtlasAlias
AtlasAlias,getBasicVoide
} from "./xiaoyao_image.js";
import {
versionInfo,
@ -20,7 +20,7 @@ import {
import {
rule as adminRule,
updateRes,
sysCfg,updateTemp,
sysCfg, updateTemp,
updateMiaoPlugin
} from "./admin.js";
import {
@ -29,8 +29,8 @@ import {
updCookie,
userInfo,
gclog,
mytoken,gcPaylog,
bindStoken,bindLogin_ticket,
mytoken, gcPaylog,
bindStoken, bindLogin_ticket,
cloudToken
} from "./user.js"
import {
@ -44,13 +44,13 @@ import {
} from "./sign.js"
export {
updateRes,updateTemp,
delSign,gcPaylog,
updateRes, updateTemp,
delSign, gcPaylog,
cloudSign,
seach,bindLogin_ticket,
seach, bindLogin_ticket,
bbsSign,
gclog,
mytoken,
mytoken, getBasicVoide,
bindStoken,
updateMiaoPlugin,
userInfo,
@ -106,6 +106,10 @@ let rule = {
reg: "#poke#",
describe: "体力",
},
getBasicVoide: {
reg: '#?(动态)',
describe: "动态",
},
...userRule,
...signRule,
...adminRule
@ -121,22 +125,22 @@ task();
async function task() {
if (typeof test != "undefined") return;
let set = gsCfg.getfileYaml(`${_path}/plugins/xiaoyao-cvs-plugin/config/`, "config")
schedule.scheduleJob(set.mysBbsTime, function() {
schedule.scheduleJob(set.mysBbsTime, function () {
if (set.ismysSign) {
signTask('bbs')
}
});
schedule.scheduleJob(set.allSignTime, function() {
schedule.scheduleJob(set.allSignTime, function () {
if (set.isSign) {
signTask('mys')
}
});
schedule.scheduleJob(set.cloudSignTime, function() {
schedule.scheduleJob(set.cloudSignTime, function () {
if (set.isCloudSign) {
signTask('cloud')
}
});
schedule.scheduleJob(set.noteTask, function() {
schedule.scheduleJob(set.noteTask, function () {
if (set.isNoteTask) {
DailyNoteTask()
}

View File

@ -34,9 +34,49 @@ export async function AtlasAlias(e) {
return send_Msg(e, "all", "");
}
/** 获取角色卡片的原图 */
export async function getBasicVoide(e) {
if (!e.hasReply && !e.source) {
return true
}
// 引用的消息不是自己的消息
if (e.source.user_id !== e.self_id) {
return true
}
// 引用的消息不是纯图片
if (!/^\[图片]$/.test(e.source.message)) {
return true
}
// 获取原消息
let source
if (e.isGroup) {
source = (await e.group.getChatHistory(e.source.seq, 1)).pop()
} else {
source = (await e.friend.getChatHistory(e.source.time, 1)).pop()
}
if (source) {
let imgPath = await redis.get(`xiaoyao:basic:${source.message_id}`)
console.log(imgPath)
if (imgPath) {
e.reply([segment.video(`file:///${imgPath}`)])
return true
}
if (source.time) {
let time = new Date()
// 对at错图像的增加嘲讽...
if (time / 1000 - source.time < 3600) {
e.reply([segment.image(process.cwd() + '/plugins/miao-plugin/resources/common/face/what.jpg')])
return true
}
}
}
e.reply('消息太过久远了,俺也忘了动态是啥了,下次早点来吧~')
return true
}
export async function roleInfo(e) {
let msg = e.msg.replace(/#||信息|图鉴|命座|天赋|原牌|七圣/g, "");
let Botcfg,id,type='juese_tujian';
let msg = e.msg.replace(/#||信息|图鉴|命座|天赋|原牌|七圣|动态/g, "");
let Botcfg, id, type = 'juese_tujian';
if (isV3) {
Botcfg = (await import(`file://${_path}/plugins/genshin/model/gsCfg.js`)).default;
id = Botcfg.roleNameToID(msg)
@ -54,27 +94,27 @@ export async function roleInfo(e) {
} else {
name = Botcfg.roleIdToName(id, true);
}
if(/原牌|七圣/.test(e.msg)) {
if(!name){
let list = gsCfg.getfileYaml(`${_path}/plugins/xiaoyao-cvs-plugin/resources/Atlas_alias/`,'yuanmo_tujian')
name= info_img(e,list,msg)
if (/原牌|七圣/.test(e.msg)) {
if (!name) {
let list = gsCfg.getfileYaml(`${_path}/plugins/xiaoyao-cvs-plugin/resources/Atlas_alias/`, 'yuanmo_tujian')
name = info_img(e, list, msg)
}
type=`basicInfo_tujian/role/${name}`
type = `basicInfo_tujian/role/${name}`
}
if (!name) return false;
send_Msg(e, type, name)
return true;
}
const filePath = async function(e) {
const filePath = async function (e) {
let data = list;
data.push("juese_tujian")
for (let [index, val] of data.entries()) {
let msg=e.msg;
if(index!=data.length-1){
msg=e.msg.replace(new RegExp(reglist[index], "g"), "");
}else {
msg=e.msg.replace(/#||信息|图鉴|命座|天赋/g, "");
let msg = e.msg;
if (index != data.length - 1) {
msg = e.msg.replace(new RegExp(reglist[index], "g"), "");
} else {
msg = e.msg.replace(/#||信息|图鉴|命座|天赋/g, "");
}
let path = `${pathPlus}${val}/${msg}.png`
if (fs.existsSync(path)) {
@ -84,12 +124,12 @@ const filePath = async function(e) {
}
}
const send_Msg = function(e, type, name) {
const send_Msg = async function (e, type, name) {
let path;
if (type == "all") {
for (let [index, val] of list.entries()) {
name = e.msg.replace(new RegExp(reglist[index], "g"), "");
if(val.includes('juese_tujian')) continue;
if (val.includes('juese_tujian')) continue;
let new_name = info_img(e, gsCfg.getfileYaml(`${_path}/plugins/xiaoyao-cvs-plugin/resources/Atlas_alias/`,
val), name)
if (new_name) {
@ -103,17 +143,25 @@ const send_Msg = function(e, type, name) {
if (!fs.existsSync(path)) {
return false;
}
e.reply(segment.image(`file:///${path}`));
let msg = segment.image(`file:///${path}`)
try {
if (/动态/.test(e.msg)) msg = segment.video(`file:///${path.replace(/\.png|\.jpg/, '.mp4')}`)
} catch (error) {
Bot.logger.error(`发送七圣动态数据失败:` + error)
// error
}
let { message_id } = await e.reply(msg);
await redis.set(`xiaoyao:basic:${message_id}`, path.replace(/\.png|\.jpg/, '.mp4'), 10800); //三小时
return true;
}
export async function Atlas_list(e) {
let list = gsCfg.getfileYaml(`${_path}/plugins/xiaoyao-cvs-plugin/resources/Atlas_alias/`,'Atlas_list')
let list = gsCfg.getfileYaml(`${_path}/plugins/xiaoyao-cvs-plugin/resources/Atlas_alias/`, 'Atlas_list')
let name = e.msg.replace(/#|井/g, "")
for (let i in list) {
let title = i.split("|");
for (let j = 0; j < title.length; j++) {
if (title[j] == name) {
await utils.replyMake(e, [`当前选择【${name}`,"请选择:\n" + list[i].join("\n")], 0)
await utils.replyMake(e, [`当前选择【${name}`, "请选择:\n" + list[i].join("\n")], 0)
return true;
}
}
@ -121,7 +169,7 @@ export async function Atlas_list(e) {
return false;
}
const info_img = function(e, list, name) {
const info_img = function (e, list, name) {
for (let i in list) {
for (let val of list[i]) {
if (val == name || i == name) {