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 2023-01-14 10:21:32 +08:00
parent 3bdc02c662
commit 609d2ceb7e
5 changed files with 52 additions and 33 deletions

View File

@ -12,8 +12,8 @@ yunzai-bot扩展图鉴以及体力优化;
原神图鉴插件。
#### 软件架构
由逍遥自行制作的原神图鉴按业务分类整理。图片更新时替换对应路径的文件保持图片url不变
由逍遥自行制作的原神图鉴按业务分类整理。图片更新时替换对应路径的文件保持图片url不变~
其余功能支持stoken相关功能支持、云原神签到支持、扫码登录
#### 安装教程
使用gitee
@ -33,14 +33,14 @@ git clone https://github.com/Ctrlcvs/xiaoyao-cvs-plugin.git ./plugins/xiaoyao-cv
2. 发送 【#**图鉴】 进行触发,例如发送 #刻晴图鉴,即可返回对应的图片信息。
3. 发送 【#图鉴插件更新】获取最新代码
4. 别名文件在 /xiaoyao-cvs-plugin/resources/Atlas_alias 目录下面,当前只支持食物及原魔的别名
5. 树脂背景图文件在 /xiaoyao-cvs-plugin/resources/dailyNote/background_image 目录下
6. 发送 #图鉴帮助 获取帮助面板
7. 发送 #图鉴设置 获取图鉴管理面板
8. 发送 #图鉴版本 获取图鉴更新日志
9. 其余具体功能通过 #图鉴帮助 #图鉴版本 查看
10. 发送 #崩坏3签到 可签到崩坏3游戏模块 具体支持【崩坏3、崩坏2、未定义事件】
10. 发送 #崩坏3签到 可签到崩坏3游戏模块 具体支持【崩坏3、原神、崩坏2、未定义事件】原神模块(当前)支持过验证码
11. 发送 #云原神签到 可签到云原神游戏
12. 默认配置文件位于 ./plugins/xiaoyao-cvs-plugin/defSet/config/config.yaml
13. 支持stoken绑定以及相关的操作。如【#更新抽卡记录】
## 其他
<!---
- 有什么问题、Bug或有其它建议欢迎提 [issue](https://github.com/Ctrlcvs/xiaoyao-cvs-plugin/issues)
@ -50,5 +50,5 @@ git clone https://github.com/Ctrlcvs/xiaoyao-cvs-plugin.git ./plugins/xiaoyao-cv
- 图片素材来源于网络,仅供交流学习使用
- 严禁用于任何商业用途和非法行为
- Yunzai-Bot 官方QQ群213938015 (暂时停止新加入)
- 喵喵Miao-Plugin QQ群755269874
- 图鉴xiaoyao-cvs-Plugin QQ群544570609
- 喵喵Miao-Plugin QQ群755269874 (暂时停止新加入)
- 图鉴xiaoyao-cvs-Plugin QQ群544570609(暂时停止新加入)

View File

@ -45,13 +45,13 @@ import {
} from "./sign.js"
import {
rule as topupLoginRule,
qrCodeLogin,UserPassMsg,UserPassLogin,GetCode,showgoods,checkOrder
qrCodeLogin,UserPassMsg,UserPassLogin,payOrder
} from './mhyTopUpLogin.js'
export {
updateRes, updateTemp,
delSign, gcPaylog,
cloudSign,qrCodeLogin,
seach, bindLogin_ticket,GetCode,showgoods,checkOrder,
seach, bindLogin_ticket,payOrder,
bbsSign,UserPassMsg,UserPassLogin,
gclog,
mytoken, getBasicVoide,

View File

@ -4,6 +4,7 @@ import {
import mys from "../model/mhyTopUpLogin.js"
import Common from "../components/Common.js";
import { bindStoken } from './user.js'
import utils from '../model/mys/utils.js';
const _path = process.cwd();
export const rule = {
qrCodeLogin: {
@ -18,51 +19,53 @@ export const rule = {
reg: `^账号(.*)密码(.*)$`,
describe: "账号密码登录"
},
GetCode: {
payOrder: {
/** 命令正则匹配 */
reg: '^#?原神(微信)?充值(微信)?(.*)$',
/** 执行方法 */
describe: '原神充值(离线)'
}, showgoods: {
}, payOrder: {
reg: "^#?商品列表",
describe: '原神充值商品列表'
},checkOrder:{
},payOrder:{
reg:'^#?订单查询',
describe:'充值订单查询'
}
}
export async function checkOrder(e) {
let Mys = new mys(e)
return await Mys.checkOrder()
}
export async function GetCode(e) {
let Mys = new mys(e)
return await Mys.GetCode()
}
export async function showgoods(e) {
export async function payOrder(e){
console.log(e)
let Mys = new mys(e)
if(/商品列表/.test(e.msg)){
return await Mys.showgoods()
}else if (/订单查询/.test(e.msg)) {
return await Mys.checkOrder()
}else if(e.msg.includes('充值')){
return await Mys.GetCode()
}
return false;
}
export async function qrCodeLogin(e, { render }) {
let Mys = new mys(e)
let res = await Mys.qrCodeLogin()
if (!res?.data) return false;
await Common.render(`qrCode/index`, {
let r= await Common.render(`qrCode/index`, {
url: res.data.url
}, {
e,
render,
scale: 1.2
scale: 1.2,retMsgId: true
})
utils.recallMsg(e,r,60) //默认60有需要请自行修改
res = await Mys.GetQrCode(res.data.ticket)
if (!res) return true;
await bindSkCK(res)
await bindSkCK(e,res)
return true;
}
export async function UserPassMsg(e) {
let Mys = new mys(e)
await Mys.UserPassMsg()
@ -81,18 +84,17 @@ export async function UserPassLogin(e) {
}
export async function bindSkCK(e, res) {
e.msg = res.stoken, e.raw_message = res.stoken
e.msg = res?.stoken, e.raw_message = res?.stoken
e.isPrivate = true
await bindStoken(e)
e.ck = res.cookie, e.msg = res.cookie, e.raw_message = res.cookie;
e.ck = res?.cookie, e.msg = res.cookie, e.raw_message = res.cookie;
if (isV3) {
let userck = (await import(`file:///${_path}/plugins/genshin/model/user.js`)).default
e.isPrivate = true
await (new userck(e)).bing()
} else {
let {
bingCookie
} = (await import(`file:///${_path}/lib/app/dailyNote.js`))
e.isPrivate = true;
await bingCookie(e)
}
}

View File

@ -11,8 +11,8 @@ export default class mysTopLogin {
this.e = e;
this.init();
//消息提示以及风险警告
this.sendMsgUser = `免责声明:您将通过扫码完成获取米游社sk以及ck。\n本Bot以及运营者将不会保存您的登录状态。\n我方仅提供米游社查询及相关游戏内容服务,若您的账号封禁、被盗等处罚与我方无关。\n害怕风险请勿扫码~`
this.sendMsgUserPassLogin = `免责声明:您将通过密码完成获取米游社sk以及ck。\n本Bot以及运营者将不会保存您的账号和密码。\n我方仅提供米游社查询及相关游戏内容服务,若您的账号封禁、被盗等处罚与我方无关。\n害怕风险请勿发送账号密码~`
this.sendMsgUser = `免责声明:您将通过扫码完成获取米游社sk以及ck。\n本Bot将不会保存您的登录状态。\n我方仅提供米游社查询及相关游戏内容服务,若您的账号封禁、被盗等处罚与我方无关。\n害怕风险请勿扫码~`
this.sendMsgUserPassLogin = `免责声明:您将通过密码完成获取米游社sk以及ck。\n本Bot将不会保存您的账号和密码。\n我方仅提供米游社查询及相关游戏内容服务,若您的账号封禁、被盗等处罚与我方无关。\n害怕风险请勿发送账号密码~`
}
async init() {
this.user = new User(this.e)

View File

@ -103,6 +103,23 @@ export async function getCookieMap(cookie) {
}
return cookieMap || {};
}
/**
*
* @param {e} e
* @param {撤回的消息id} r
* @param {多久撤回()} times
*/
export function recallMsg(e,r,times){
setTimeout(()=>{
if(e.group){
e.group.recallMsg(r.message_id)
}else{
e.member.recallMsg(r.message_id)
}
},1000 * times)
}
export default {
sleepAsync,
getServer,
@ -110,7 +127,7 @@ export default {
replyMake,
randomString,
redisGet,
redisSet,
redisSet,recallMsg,
relpyPrivate,
getCookieMap
}