2
0
mirror of https://github.com/ctrlcvs/xiaoyao-cvs-plugin.git synced 2024-12-23 03:20:52 +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 使用gitee
@ -33,14 +33,14 @@ git clone https://github.com/Ctrlcvs/xiaoyao-cvs-plugin.git ./plugins/xiaoyao-cv
2. 发送 【#**图鉴】 进行触发,例如发送 #刻晴图鉴,即可返回对应的图片信息。 2. 发送 【#**图鉴】 进行触发,例如发送 #刻晴图鉴,即可返回对应的图片信息。
3. 发送 【#图鉴插件更新】获取最新代码 3. 发送 【#图鉴插件更新】获取最新代码
4. 别名文件在 /xiaoyao-cvs-plugin/resources/Atlas_alias 目录下面,当前只支持食物及原魔的别名 4. 别名文件在 /xiaoyao-cvs-plugin/resources/Atlas_alias 目录下面,当前只支持食物及原魔的别名
5. 树脂背景图文件在 /xiaoyao-cvs-plugin/resources/dailyNote/background_image 目录下
6. 发送 #图鉴帮助 获取帮助面板 6. 发送 #图鉴帮助 获取帮助面板
7. 发送 #图鉴设置 获取图鉴管理面板 7. 发送 #图鉴设置 获取图鉴管理面板
8. 发送 #图鉴版本 获取图鉴更新日志 8. 发送 #图鉴版本 获取图鉴更新日志
9. 其余具体功能通过 #图鉴帮助 #图鉴版本 查看 9. 其余具体功能通过 #图鉴帮助 #图鉴版本 查看
10. 发送 #崩坏3签到 可签到崩坏3游戏模块 具体支持【崩坏3、崩坏2、未定义事件】 10. 发送 #崩坏3签到 可签到崩坏3游戏模块 具体支持【崩坏3、原神、崩坏2、未定义事件】原神模块(当前)支持过验证码
11. 发送 #云原神签到 可签到云原神游戏 11. 发送 #云原神签到 可签到云原神游戏
12. 默认配置文件位于 ./plugins/xiaoyao-cvs-plugin/defSet/config/config.yaml 12. 默认配置文件位于 ./plugins/xiaoyao-cvs-plugin/defSet/config/config.yaml
13. 支持stoken绑定以及相关的操作。如【#更新抽卡记录】
## 其他 ## 其他
<!--- <!---
- 有什么问题、Bug或有其它建议欢迎提 [issue](https://github.com/Ctrlcvs/xiaoyao-cvs-plugin/issues) - 有什么问题、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 (暂时停止新加入) - Yunzai-Bot 官方QQ群213938015 (暂时停止新加入)
- 喵喵Miao-Plugin QQ群755269874 - 喵喵Miao-Plugin QQ群755269874 (暂时停止新加入)
- 图鉴xiaoyao-cvs-Plugin QQ群544570609 - 图鉴xiaoyao-cvs-Plugin QQ群544570609(暂时停止新加入)

View File

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

View File

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

View File

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

View File

@ -103,6 +103,23 @@ export async function getCookieMap(cookie) {
} }
return cookieMap || {}; 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 { export default {
sleepAsync, sleepAsync,
getServer, getServer,
@ -110,7 +127,7 @@ export default {
replyMake, replyMake,
randomString, randomString,
redisGet, redisGet,
redisSet, redisSet,recallMsg,
relpyPrivate, relpyPrivate,
getCookieMap getCookieMap
} }