fix: 完成ts化

This commit is contained in:
ningmengchongshui 2024-06-09 21:21:20 +08:00
parent a79e7c16bc
commit 52d8992562
19 changed files with 286 additions and 216 deletions

View File

@ -11,7 +11,7 @@ import cfg from './config/config.js'
/** /**
* *
*/ */
import ListenerLoader from './lib/listener/loader.js' import ListenerLoader from './core/loader.js'
/** /**
* *
*/ */
@ -64,6 +64,6 @@ export class Yunzai extends Client {
/** 全局变量 bot */ /** 全局变量 bot */
global.Bot = bot global.Bot = bot
/** 加载插件 */ /** 加载插件 */
return await (await import('./lib/plugins/loader.js')).default.load() return await (await import('./core/plugins/loader.js')).default.load()
} }
} }

View File

@ -99,11 +99,11 @@ class Cfg {
* qq * qq
*/ */
get masterQQ() { get masterQQ() {
const masterQQ = this.getConfig('other')?.masterQQ || [] const qqs = this.getConfig('other')?.masterQQ || []
if (Array.isArray(masterQQ)) { if (Array.isArray(qqs)) {
return masterQQ.forEach(qq => { qq = String(qq) }) return qqs.map(qq => String(qq))
} else { } else {
return [String(masterQQ)] return [String(qqs)]
} }
} }

View File

@ -99,7 +99,7 @@ export async function makeForwardMsg(
/** /**
* *
*/ */
if (dec) { if (dec && !Array.isArray(forwardMsg)) {
/** /**
* *
*/ */

View File

@ -1,7 +1,7 @@
import PluginsLoader from '../plugins/loader.js' import PluginsLoader from './plugins/loader.js'
/** /**
* *
*/ */
export default class EventListener { export default class EventListener {
prefix = '' prefix = ''

View File

@ -5,14 +5,18 @@ import lodash from 'lodash'
* *
*/ */
class ListenerLoader { class ListenerLoader {
client = null
/** /**
* *
* @param client Bot示例 * @param client Bot示例
*/ */
async load (client) { async load(client) {
this.client = client this.client = client
const files = fs.readdirSync('./lib/events').filter(file => file.endsWith('.js')) const files = fs
.readdirSync('./lib/events')
.filter(file => file.endsWith('.js'))
for (let File of files) { for (let File of files) {
try { try {
@ -25,13 +29,15 @@ class ListenerLoader {
const on = listener.once ? 'once' : 'on' const on = listener.once ? 'once' : 'on'
if (lodash.isArray(listener.event)) { if (lodash.isArray(listener.event)) {
listener.event.forEach((type) => { listener.event.forEach(type => {
const e = listener[type] ? type : 'execute' const e = listener[type] ? type : 'execute'
this.client[on](listener.prefix + type, event => listener[e](event)) this.client[on](listener.prefix + type, event => listener[e](event))
}) })
} else { } else {
const e = listener[listener.event] ? listener.event : 'execute' const e = listener[listener.event] ? listener.event : 'execute'
this.client[on](listener.prefix + listener.event, event => listener[e](event)) this.client[on](listener.prefix + listener.event, event =>
listener[e](event)
)
} }
} catch (e) { } catch (e) {
logger.mark(`监听事件错误:${File}`) logger.mark(`监听事件错误:${File}`)
@ -42,6 +48,6 @@ class ListenerLoader {
} }
/** /**
* *
*/ */
export default new ListenerLoader() export default new ListenerLoader()

View File

@ -1,5 +1,5 @@
import EventListener from '../listener/listener.js' import EventListener from './listener.js'
import { sleep } from '../../utils/common.js' import { sleep } from '../utils/common.js'
import inquirer from 'inquirer' import inquirer from 'inquirer'
import lodash from 'lodash' import lodash from 'lodash'
import fetch from 'node-fetch' import fetch from 'node-fetch'
@ -10,20 +10,17 @@ import fetch from 'node-fetch'
let inSlider = false let inSlider = false
/** /**
* *
*/ */
export default class loginEvent extends EventListener { export default class loginEvent extends EventListener {
client = null client = null
/** /**
* *
*/ */
constructor() { constructor() {
/** /**
* *
*/ */
super({ super({
prefix: 'system.login.', prefix: 'system.login.',
@ -33,17 +30,19 @@ export default class loginEvent extends EventListener {
} }
/** /**
* *
* @param event * @param event
*/ */
async execute(event) { } async execute(event) {}
/** /**
* ip下进行 * ip下进行
* @param event * @param event
*/ */
async qrcode(event) { async qrcode(event) {
logger.mark(`请使用登录当前QQ的手机${logger.green('扫码')}完成登录,如果显示二维码过期,可以按${logger.green('回车键Enter')}刷新,重新输入密码请执行命令:${logger.green('node app login')}`) logger.mark(
`请使用登录当前QQ的手机${logger.green('扫码')}完成登录,如果显示二维码过期,可以按${logger.green('回车键Enter')}刷新,重新输入密码请执行命令:${logger.green('node app login')}`
)
// logger.info('等待扫码中...') // logger.info('等待扫码中...')
/** 获取扫码结果 */ /** 获取扫码结果 */
@ -70,36 +69,53 @@ export default class loginEvent extends EventListener {
/** /**
* *
*/ */
inquirer.prompt({ type: 'input', message: '回车刷新二维码,等待扫码中...\n', name: 'enter' }).then(async () => { inquirer
if (!inSlider) { .prompt({
clearInterval(interval) type: 'input',
console.log(' 重新刷新二维码...\n\n') message: '回车刷新二维码,等待扫码中...\n',
await sleep(1000) name: 'enter'
this.client.fetchQrcode() })
} .then(async () => {
}) if (!inSlider) {
clearInterval(interval)
console.log(' 重新刷新二维码...\n\n')
await sleep(1000)
this.client.fetchQrcode()
}
})
} }
/** /**
* 使PC浏览器已经无效 * 使PC浏览器已经无效
* @param event * @param event
*/ */
async slider(event) { async slider(event) {
inSlider = true inSlider = true
console.log(`\n\n------------------${logger.green('↓↓滑动验证链接↓↓')}----------------------\n`) console.log(
`\n\n------------------${logger.green('↓↓滑动验证链接↓↓')}----------------------\n`
)
console.log(logger.green(event.url)) console.log(logger.green(event.url))
console.log('\n--------------------------------------------------------') console.log('\n--------------------------------------------------------')
console.log(`提示打开上面链接获取ticket可使用${logger.green('【滑动验证app】')}获取`) console.log(
console.log(`链接存在${logger.green('有效期')},请尽快操作,多次操作失败可能会被冻结`) `提示打开上面链接获取ticket可使用${logger.green('【滑动验证app】')}获取`
console.log('滑动验证app下载地址https://wwp.lanzouy.com/i6w3J08um92h 密码:3kuu\n') )
console.log(
`链接存在${logger.green('有效期')},请尽快操作,多次操作失败可能会被冻结`
)
console.log(
'滑动验证app下载地址https://wwp.lanzouy.com/i6w3J08um92h 密码:3kuu\n'
)
const ret = await inquirer.prompt([ const ret = await inquirer.prompt([
{ {
type: 'list', type: 'list',
name: 'type', name: 'type',
message: '触发滑动验证需要获取ticket通过验证请选择获取方式:', message: '触发滑动验证需要获取ticket通过验证请选择获取方式:',
choices: ['0.自动获取ticket', '1.手动获取ticket', '2.滑动验证app请求码获取'] choices: [
'0.自动获取ticket',
'1.手动获取ticket',
'2.滑动验证app请求码获取'
]
} }
]) ])
@ -135,9 +151,9 @@ export default class loginEvent extends EventListener {
} }
/** /**
* *
* @param url * @param url
* @returns * @returns
*/ */
async getTicket(url) { async getTicket(url) {
let req = `https://hlhs-nb.cn/captcha/slider?key=${Bot.uin}` let req = `https://hlhs-nb.cn/captcha/slider?key=${Bot.uin}`
@ -150,7 +166,11 @@ export default class loginEvent extends EventListener {
console.log(`${logger.green(req)}\n----完成后将自动进行登录----`) console.log(`${logger.green(req)}\n----完成后将自动进行登录----`)
for (let i = 0; i < 40; i++) { for (let i = 0; i < 40; i++) {
const res = await fetch(req, { const res: {
data?: {
ticket: null
}
} = await fetch(req, {
method: 'POST', method: 'POST',
body: JSON.stringify({ submit: Bot.uin }) body: JSON.stringify({ submit: Bot.uin })
}).then(res => res.json()) }).then(res => res.json())
@ -160,9 +180,9 @@ export default class loginEvent extends EventListener {
} }
/** /**
* *
* @param url * @param url
* @returns * @returns
*/ */
async requestCode(url) { async requestCode(url) {
let txhelper = { let txhelper = {
@ -171,7 +191,9 @@ export default class loginEvent extends EventListener {
code: null, code: null,
url: url.replace('ssl.captcha.qq.com', 'txhelper.glitch.me') url: url.replace('ssl.captcha.qq.com', 'txhelper.glitch.me')
} }
txhelper.req = await fetch(txhelper.url).catch((err) => console.log(err.toString())) txhelper.req = await fetch(txhelper.url).catch(err =>
console.log(err.toString())
)
if (!txhelper.req?.ok) return false if (!txhelper.req?.ok) return false
@ -181,7 +203,9 @@ export default class loginEvent extends EventListener {
txhelper.code = /\d+/g.exec(txhelper.req) txhelper.code = /\d+/g.exec(txhelper.req)
if (!txhelper.code) return false if (!txhelper.code) return false
console.log(`\n请打开滑动验证app输入请求码${logger.green('【' + txhelper.code + '】')},然后完成滑动验证\n`) console.log(
`\n请打开滑动验证app输入请求码${logger.green('【' + txhelper.code + '】')},然后完成滑动验证\n`
)
await sleep(200) await sleep(200)
@ -193,7 +217,9 @@ export default class loginEvent extends EventListener {
}) })
// //
txhelper.res = await fetch(txhelper.url).catch((err) => console.log(err.toString())) txhelper.res = await fetch(txhelper.url).catch(err =>
console.log(err.toString())
)
// //
if (!txhelper.res) return false if (!txhelper.res) return false
@ -211,14 +237,15 @@ export default class loginEvent extends EventListener {
return lodash.trim(txhelper.res) return lodash.trim(txhelper.res)
} }
/** /**
* *
* @param event * @param event
*/ */
async device(event) { async device(event) {
global.inputTicket = false global.inputTicket = false
console.log(`\n\n------------------${logger.green('↓↓设备锁验证↓↓')}----------------------\n`) console.log(
`\n\n------------------${logger.green('↓↓设备锁验证↓↓')}----------------------\n`
)
const ret = await inquirer.prompt([ const ret = await inquirer.prompt([
{ {
type: 'list', type: 'list',
@ -233,26 +260,37 @@ export default class loginEvent extends EventListener {
if (ret.type == '1.网页扫码验证') { if (ret.type == '1.网页扫码验证') {
console.log('\n' + logger.green(event.url) + '\n') console.log('\n' + logger.green(event.url) + '\n')
console.log('请打开上面链接,完成验证后按回车') console.log('请打开上面链接,完成验证后按回车')
await inquirer.prompt({ type: 'input', message: '等待操作中...', name: 'enter' }) await inquirer.prompt({
type: 'input',
message: '等待操作中...',
name: 'enter'
})
await this.client.login() await this.client.login()
} else { } else {
console.log('\n') console.log('\n')
this.client.sendSmsCode() this.client.sendSmsCode()
await sleep(200) await sleep(200)
logger.info(`验证码已发送:${event.phone}\n`) logger.info(`验证码已发送:${event.phone}\n`)
let res = await inquirer.prompt({ type: 'input', message: '请输入短信验证码:', name: 'sms' }) let res = await inquirer.prompt({
type: 'input',
message: '请输入短信验证码:',
name: 'sms'
})
await this.client.submitSmsCode(res.sms) await this.client.submitSmsCode(res.sms)
} }
} }
/** /**
* *
* @param event * @param event
*/ */
error(event) { error(event) {
if (Number(event.code) === 1) logger.error('QQ密码错误运行命令重新登录node app login') if (Number(event.code) === 1)
logger.error('QQ密码错误运行命令重新登录node app login')
if (global.inputTicket && event.code == 237) { if (global.inputTicket && event.code == 237) {
logger.error(`${logger.red('ticket')}输入错误或者已失效,已停止运行,请重新登录验证`) logger.error(
`${logger.red('ticket')}输入错误或者已失效,已停止运行,请重新登录验证`
)
} else if (event?.message.includes('冻结')) { } else if (event?.message.includes('冻结')) {
logger.error('账号已被冻结,已停止运行') logger.error('账号已被冻结,已停止运行')
} else { } else {

24
src/core/message.ts Normal file
View File

@ -0,0 +1,24 @@
import EventListener from './listener.js'
/**
*
*/
export default class messageEvent extends EventListener {
/**
*
*/
constructor() {
/**
*
*/
super({ event: 'message', prefix: undefined, once: undefined })
}
/**
*
* @param e
*/
async execute(e) {
this.plugins.deal(e)
}
}

View File

@ -1,26 +1,24 @@
import EventListener from '../listener/listener.js' import EventListener from './listener.js'
/** /**
* *
*/ */
export default class noticeEvent extends EventListener { export default class noticeEvent extends EventListener {
/** /**
* *
*/ */
constructor () { constructor() {
/** /**
* *
*/ */
super({ event: 'notice', prefix: undefined, once: undefined }) super({ event: 'notice', prefix: undefined, once: undefined })
} }
/** /**
* *
* @param e * @param e
*/ */
async execute (e) { async execute(e) {
this.plugins.deal(e) this.plugins.deal(e)
} }
} }

View File

@ -1,37 +1,39 @@
import EventListener from '../listener/listener.js' import EventListener from './listener.js'
import fetch from 'node-fetch' import fetch from 'node-fetch'
import cfg from '../../config/config.js' import cfg from '../config/config.js'
import { BOT_NAME } from '../../config/system.js' import { BOT_NAME } from '../config/system.js'
/** /**
* 线 * 线
*/ */
export default class offlineEvent extends EventListener { export default class offlineEvent extends EventListener {
/** /**
* *
*/ */
constructor() { constructor() {
/** /**
* *
*/ */
super({ event: 'system.offline', prefix: undefined, once: undefined }) super({ event: 'system.offline', prefix: undefined, once: undefined })
} }
/** /**
* *
* @param e * @param e
*/ */
async execute(e) { async execute(e) {
logger.mark('掉线了') logger.mark('掉线了')
let config = cfg.getConfig('notice') let config = cfg.getConfig('notice')
let title = `${BOT_NAME}(${Bot.nickname})已离线,请关注` let title = `${BOT_NAME}(${Bot.nickname})已离线,请关注`
if (config.iyuu) { if (config.iyuu) {
await fetch(`https://iyuu.cn/${config.iyuu}.send?text=${title}&desp=${e.message}`) await fetch(
`https://iyuu.cn/${config.iyuu}.send?text=${title}&desp=${e.message}`
)
} }
if (config.sct) { if (config.sct) {
await fetch(`https://sctapi.ftqq.com/${config.sct}.send?title=${title}&content=${e.message}`) await fetch(
`https://sctapi.ftqq.com/${config.sct}.send?title=${title}&content=${e.message}`
)
} }
if (config.feishu_webhook) { if (config.feishu_webhook) {
let offline_content = { let offline_content = {
@ -41,15 +43,17 @@ export default class offlineEvent extends EventListener {
'zh-cn': { 'zh-cn': {
title: title, title: title,
content: [ content: [
[{ [
tag: "text", {
text: e.message tag: 'text',
}] text: e.message
}
]
] ]
} }
} }
} }
}; }
await fetch(config.feishu_webhook, { await fetch(config.feishu_webhook, {
method: 'POST', method: 'POST',
headers: { headers: {

View File

@ -1,35 +1,35 @@
import EventListener from '../listener/listener.js' import EventListener from './listener.js'
import cfg from '../../config/config.js' import cfg from '../config/config.js'
import { relpyPrivate } from '../../core/common.js' import { relpyPrivate } from '../core/common.js'
import { BOT_NAME } from '../../config/system.js' import { BOT_NAME } from '../config/system.js'
/** /**
* 线 * 线
*/ */
export default class onlineEvent extends EventListener { export default class onlineEvent extends EventListener {
/** /**
* *
*/ */
constructor() { constructor() {
/** /**
* *
*/ */
super({ super({
event: 'system.online', event: 'system.online',
once: true, once: true,
prefix: undefined, prefix: undefined
}) })
} }
/** /**
* *
* @param e * @param e
*/ */
async execute(e) { async execute(e) {
logger.mark('----^_^----') logger.mark('----^_^----')
logger.mark(logger.green(`${BOT_NAME} 上线成功 版本v${cfg.package.version}`)) logger.mark(
logger.green(`${BOT_NAME} 上线成功 版本v${cfg.package.version}`)
)
logger.mark(logger.green('https://github.com/yoimiya-kokomi/Miao-Yunzai')) logger.mark(logger.green('https://github.com/yoimiya-kokomi/Miao-Yunzai'))
// logger.mark('-----------') // logger.mark('-----------')
/** 加载插件 */ /** 加载插件 */
@ -40,8 +40,8 @@ export default class onlineEvent extends EventListener {
} }
/** /**
* *
* @returns * @returns
*/ */
async loginMsg() { async loginMsg() {
if (!cfg.bot.online_msg) return if (!cfg.bot.online_msg) return
@ -56,4 +56,4 @@ export default class onlineEvent extends EventListener {
setTimeout(() => relpyPrivate(cfg.masterQQ[0], msg), 1000) setTimeout(() => relpyPrivate(cfg.masterQQ[0], msg), 1000)
} }
} }

View File

@ -110,5 +110,4 @@ const Handler = {
/** /**
* *
*/ */
export default Handler export default Handler

View File

@ -6,7 +6,7 @@ import { segment } from 'icqq'
import chokidar from 'chokidar' import chokidar from 'chokidar'
import moment from 'moment' import moment from 'moment'
import path from 'node:path' import path from 'node:path'
import Runtime from '../../core/runtime.js' import Runtime from './runtime.js'
import Handler from './handler.js' import Handler from './handler.js'
@ -462,7 +462,7 @@ class PluginsLoader {
e.isGuild = true e.isGuild = true
} }
if (e.user_id && cfg.masterQQ.includes(Number(e.user_id) || String(e.user_id))) { if (e.user_id && cfg.masterQQ.includes(String(e.user_id) || String(e.user_id))) {
e.isMaster = true e.isMaster = true
} }
@ -497,7 +497,7 @@ class PluginsLoader {
* @param data.recallMsg 0-1200 * @param data.recallMsg 0-1200
* @param data.at at用户 * @param data.at at用户
*/ */
e.reply = async (msg = '', quote = false, data:any = {}) => { e.reply = async (msg:any = '', quote = false, data:any = {}) => {
if (!msg) return false if (!msg) return false
/** 禁言中 */ /** 禁言中 */

View File

@ -1,6 +1,6 @@
import * as common from '../utils/common.js' import * as common from '../../utils/common.js'
import cfg from '../config/config.js' import cfg from '../../config/config.js'
import Handler from '../lib/plugins/handler.js' import Handler from './handler.js'
import { import {
gsCfg, gsCfg,
@ -8,7 +8,7 @@ import {
mysInfo as MysInfo, mysInfo as MysInfo,
NoteUser, NoteUser,
MysUser MysUser
} from '../mys/index.js' } from '../../mys/index.js'
/** /**
* ******************** * ********************

24
src/core/request.ts Normal file
View File

@ -0,0 +1,24 @@
import EventListener from './listener.js'
/**
*
*/
export default class requestEvent extends EventListener {
/**
*
*/
constructor() {
/**
*
*/
super({ event: 'request', prefix: undefined, once: undefined })
}
/**
*
* @param e
*/
async execute(e) {
this.plugins.deal(e)
}
}

View File

@ -1,28 +0,0 @@
import EventListener from '../listener/listener.js'
/**
*
*/
export default class messageEvent extends EventListener {
/**
*
*/
constructor () {
/**
*
*/
super({ event: 'message' , prefix: undefined, once: undefined})
}
/**
*
* @param e
*/
async execute (e) {
this.plugins.deal(e)
}
}

View File

@ -1,26 +0,0 @@
import EventListener from '../listener/listener.js'
/**
*
*/
export default class requestEvent extends EventListener {
/**
*
*/
constructor () {
/**
*
*/
super({ event: 'request' , prefix: undefined, once: undefined})
}
/**
*
* @param e
*/
async execute (e) {
this.plugins.deal(e)
}
}

View File

@ -257,8 +257,24 @@ export default class MysUser extends BaseModel {
* @returns {Promise<boolean|{msg: string, uids: *[], status: number}>} * @returns {Promise<boolean|{msg: string, uids: *[], status: number}>}
*/ */
static async checkCkStatus(ck) { static async checkCkStatus(ck) {
/**
*
*/
if (!ck) {
return false
}
/**
*
*/
let uids = [] let uids = []
let err = (msg, status = 2) => {
/**
*
* @param msg
* @param status
* @returns
*/
const err = (msg, status = 2) => {
msg = msg + '\n请退出米游社并重新登录后再次获取CK' msg = msg + '\n请退出米游社并重新登录后再次获取CK'
return { return {
status, status,
@ -266,18 +282,23 @@ export default class MysUser extends BaseModel {
uids uids
} }
} }
if (!ck) {
return false /**
} * *********
* tudo
* **********
*/
// 检查绑定UID // 检查绑定UID
uids = await MysUser.getCkUid(ck, true, true) // uids = await MysUser.getCkUid(ck, true, true)
if (!uids.uids || uids.uids.length === 0) { // if (!uids.uids || uids.uids.length === 0) {
return err(uids.msg || 'CK失效') // return err(uids.msg || 'CK失效')
} // }
uids = uids.uids // uids = uids.uids
let uid = uids[0]
let mys = new MysApi(uid + '', ck, { log: false }) let uid = uids[0] ?? '0'
let mys = new MysApi(String(uid), ck, { log: false })
// 体力查询 // 体力查询
let noteRet = await mys.getData('dailyNote') let noteRet = await mys.getData('dailyNote')
if (noteRet.retcode !== 0 || lodash.isEmpty(noteRet.data)) { if (noteRet.retcode !== 0 || lodash.isEmpty(noteRet.data)) {
@ -504,14 +525,21 @@ export default class MysUser extends BaseModel {
} }
// 初始化数据 // 初始化数据
async initDB(db = false) { async initDB(db) {
// 检查当前实例是否已有数据库连接
if (this.db && !db) { if (this.db && !db) {
return return
} }
// tudo
// ??? // 如果传入了 db 参数且 db 参数不为 true则使用传入的 db否则调用 MysUserDB.find 获取 db
db = db && db !== true ? db : await MysUserDB.find(this.ltuid, true) if (!db || db === true) {
db = await MysUserDB.find(this.ltuid, true)
}
// 设置实例的 db 属性
this.db = db this.db = db
// 调用 setCkData 方法,并传入 db
this.setCkData(db) this.setCkData(db)
} }
@ -584,9 +612,7 @@ export default class MysUser extends BaseModel {
* @returns * @returns
*/ */
async initCache() { async initCache() {
if (!this.ltuid || !this.ck) { if (!this.ltuid || !this.ck) return
return
}
let self = this let self = this
await MysUtil.eachGame(async game => { await MysUtil.eachGame(async game => {
let uids = self.uids[game] let uids = self.uids[game]

View File

@ -121,7 +121,11 @@ export default class MysApi {
} }
if (type === 'getFp' && !data?.Getfp) return this._device_fp if (type === 'getFp' && !data?.Getfp) return this._device_fp
let { url, headers, body } = this.getUrl(type, data) const UrlData = this.getUrl(type, data)
if (!UrlData) return false
let { url, headers, body } = UrlData
if (!url) return false if (!url) return false
@ -156,40 +160,37 @@ export default class MysApi {
} else { } else {
param.method = 'get' param.method = 'get'
} }
let response = {
ok: null,
status: null,
statusText: null
}
let start = Date.now() let start = Date.now()
try { try {
response = await fetch(url, param) const response = await fetch(url, param)
if (!response.ok) {
logger.error(
`[米游社接口][${type}][${this.uid}] ${response.status} ${response.statusText}`
)
return false
}
if (this.option.log) {
logger.mark(
`[米游社接口][${type}][${this.uid}] ${Date.now() - start}ms`
)
}
//
const data: {
api?: any
} = await response.json()
if (!data) {
logger.mark('mys接口没有返回')
return false
}
data.api = type
if (cached) this.cache(data, cacheKey)
return data
} catch (error) { } catch (error) {
logger.error(error.toString()) logger.error(error.toString())
return false return false
} }
if (!response.ok) {
logger.error(
`[米游社接口][${type}][${this.uid}] ${response.status} ${response.statusText}`
)
return false
}
if (this.option.log) {
logger.mark(`[米游社接口][${type}][${this.uid}] ${Date.now() - start}ms`)
}
const res = await response.json()
if (!res) {
logger.mark('mys接口没有返回')
return false
}
res.api = type
if (cached) this.cache(res, cacheKey)
return res
} }
/** /**
@ -227,7 +228,8 @@ export default class MysApi {
'x-rpc-client_type': client.client_type, 'x-rpc-client_type': client.client_type,
'User-Agent': client.User_Agent, 'User-Agent': client.User_Agent,
'Referer': client.Referer, 'Referer': client.Referer,
'DS': this.getDs(query, body) 'DS': this.getDs(query, body),
'Cookie': null
} }
} }

View File

@ -70,7 +70,7 @@ export default class MysInfo {
*/ */
this.mysButton = segment.button([ this.mysButton = segment.button([
{ text: '米游社', link: 'https://miyoushe.com' } { text: '米游社', link: 'https://miyoushe.com' }
]) ] as any)
} }
/** /**
@ -153,7 +153,7 @@ export default class MysInfo {
e.reply( e.reply(
[ [
'尚未绑定uid', '尚未绑定uid',
segment.button([{ text: '绑定UID', input: '#绑定uid' }]) segment.button([{ text: '绑定UID', input: '#绑定uid' }] as any)
], ],
false, false,
{ at } { at }
@ -180,7 +180,7 @@ export default class MysInfo {
e.reply( e.reply(
[ [
'请先#绑定uid', '请先#绑定uid',
segment.button([{ text: '绑定UID', input: '#绑定uid' }]) segment.button([{ text: '绑定UID', input: '#绑定uid' }] as any)
], ],
false, false,
{ at: at || true } { at: at || true }
@ -207,7 +207,9 @@ export default class MysInfo {
e.reply( e.reply(
[ [
'尚未绑定Cookie', '尚未绑定Cookie',
segment.button([{ text: 'Cookie帮助', callback: '#Cookie帮助' }]) segment.button([
{ text: 'Cookie帮助', callback: '#Cookie帮助' }
] as any)
], ],
false, false,
{ at: selfUser.qq } { at: selfUser.qq }
@ -303,7 +305,8 @@ export default class MysInfo {
for (let ck of pubCks) { for (let ck of pubCks) {
let pubUser = await MysUser.create(ck) let pubUser = await MysUser.create(ck)
if (pubUser) { if (pubUser) {
let ret = await pubUser.initCache({ qq: 'pub' }) // await pubUser.initCache({ qq: 'pub' })
let ret = await pubUser.initCache()
if (ret) { if (ret) {
pubCount++ pubCount++
} }
@ -419,7 +422,7 @@ export default class MysInfo {
this.e.reply( this.e.reply(
[ [
'请先#绑定uid', '请先#绑定uid',
segment.button([{ text: '绑定UID', input: '#绑定uid' }]) segment.button([{ text: '绑定UID', input: '#绑定uid' }] as any)
], ],
false, false,
{ at: true } { at: true }
@ -429,7 +432,7 @@ export default class MysInfo {
if (!this.ckInfo.ck) { if (!this.ckInfo.ck) {
this.e.reply([ this.e.reply([
'暂无可用CK请绑定更多用户或设置公共ck..', '暂无可用CK请绑定更多用户或设置公共ck..',
segment.button([{ text: 'Cookie帮助', callback: '#Cookie帮助' }]) segment.button([{ text: 'Cookie帮助', callback: '#Cookie帮助' }] as any)
]) ])
} }