From fdb5effcfd505dd54897f08ddcb71ed605537db0 Mon Sep 17 00:00:00 2001 From: Ctrlcvs <1509167646@qq.com> Date: Sat, 19 Nov 2022 15:11:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81sk=E5=88=B7=E6=96=B0=E5=85=85?= =?UTF-8?q?=E5=80=BC=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/index.js | 4 +-- apps/user.js | 77 +++++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 74 insertions(+), 7 deletions(-) diff --git a/apps/index.js b/apps/index.js index d565325..9cbd18a 100644 --- a/apps/index.js +++ b/apps/index.js @@ -32,7 +32,7 @@ import { updCookie, userInfo, gclog, - mytoken, + mytoken,gcPaylog, bindStoken,bindLogin_ticket, cloudToken } from "./user.js" @@ -48,7 +48,7 @@ import { export { updateRes,updateTemp, - delSign, + delSign,gcPaylog, cloudSign, seach,bindLogin_ticket, bbsSign, diff --git a/apps/user.js b/apps/user.js index b88fa7f..fa901ad 100644 --- a/apps/user.js +++ b/apps/user.js @@ -27,6 +27,10 @@ export const rule = { reg: "^#*(更新|获取|导出)抽卡记录$", describe: "更新抽卡记录" }, + gcPaylog: { //避免指令冲突 + reg: "^#*(刷新|获取|导出)(充值|氪金)记录$", + describe: "刷新充值记录" + }, mytoken: { reg: "^#*我的(stoken|云ck)$", describe: "查询绑定数据" @@ -86,6 +90,63 @@ export async function userInfo(e, { return true; } let configData = gsCfg.getfileYaml(`${_path}/plugins/xiaoyao-cvs-plugin/config/`, "config"); +export async function gcPaylog(e){ + let user = new User(e); + await user.cookie(e) + let redis_Data = await redis.get(`xiaoyao:gcPaylog:${e.user_id}`); + if (redis_Data) { + let time = redis_Data * 1 - Math.floor(Date.now() / 1000); + e.reply(`请求过快,请${time}秒后重试...`); + return true; + } + let isGet= /导出|获取/.test(e.msg) + if (!e.isPrivate&&isGet) { + e.reply("请私聊发送") + return true; + } + let authkey =await getAuthKey(e,user) + if(!authkey){ + return true; + } + let url =`https://hk4e-api.mihoyo.com/ysulog/api/getCrystalLog?selfquery_type=3&lang=zh-cn&sign_type=2&auth_appid=csc&authkey_ver=1&authkey=${encodeURIComponent(authkey)}&game_biz=hk4e_cn&app_client=bbs&type=3&size=6®ion=${e.region}&end_id=` + e.msg = url + // e.reply(e.msg) + let sendMsg = []; + e.reply("充值记录获取中请稍等...") + e._reply = e.reply; + e.reply = (msg) => { + sendMsg.push(msg) + } + if(isGet){ + sendMsg=[...sendMsg,...[1,`uid:${e.uid}`,e.msg]] + }else { + let time = (configData.gclogEx || 5) * 60 + redis.set(`xiaoyao:gcPaylog:${e.user_id}`, Math.floor(Date.now() / 1000) + time, { //数据写入缓存避免重复请求 + EX: time + }); + if (isV3) { + let {payLog} = (await import(`file:///${_path}/plugins/genshin/apps/payLog.js`)) + let pl= (new payLog()) + e.isGroup=false; + pl.e=e + await pl.getAuthKey(e) + e._reply(sendMsg[1]); + return true; + // await (new payLog()).payLog(e) + } else { + e._reply(`V2暂不支持`); + return false + //V2暂不支持 + // let { + // bing + // } = (await import(`file:///${_path}/lib/app/gachaLog.js`)) + // e.isPrivate = true; + // await bing(e) + } + } + await utils.replyMake(e, sendMsg, 1) + return true; +} export async function gclog(e) { let user = new User(e); await user.cookie(e) @@ -100,13 +161,10 @@ export async function gclog(e) { e.reply("请私聊发送") return true; } - e.region = getServer(e.uid) - let authkeyrow = await user.getData("authKey"); - if (!authkeyrow?.data) { - e.reply("authkey获取失败:" + authkeyrow.message?.includes("登录失效")?"请重新绑定stoken":authkeyrow.message) + let authkey =await getAuthKey(e,user) + if(!authkey){ return true; } - let authkey = authkeyrow.data["authkey"] let url = `https://hk4e-api.mihoyo.com/event/gacha_info/api/getGachaLog?authkey_ver=1&sign_type=2&auth_appid=webview_gacha&init_type=301&gacha_id=fecafa7b6560db5f3182222395d88aaa6aaac1bc×tamp=${Math.floor(Date.now() / 1000)}&lang=zh-cn&device_type=mobile&plat_type=ios®ion=${e.region}&authkey=${encodeURIComponent(authkey)}&game_biz=hk4e_cn&gacha_type=301&page=1&size=5&end_id=0` e.msg = url // e.reply(e.msg) @@ -137,6 +195,15 @@ export async function gclog(e) { }); return true; } +async function getAuthKey(e,user){ + e.region = getServer(e.uid) + let authkeyrow = await user.getData("authKey"); + if (!authkeyrow?.data) { + e.reply("authkey获取失败:" +(authkeyrow.message.includes("登录失效")?"请重新绑定stoken":authkeyrow.message)) + return false; + } + return authkeyrow.data["authkey"]; +} export async function mytoken(e) { if (!e.isPrivate) { e.reply("请私聊发送")