优化 #留影叙佳期 的处理

This commit is contained in:
SmallK111407 2023-08-31 16:37:30 +08:00
parent 37f485a6c1
commit 0d636f09e4
1 changed files with 22 additions and 21 deletions

View File

@ -3,25 +3,22 @@ import gsCfg from '../model/gsCfg.js'
import fetch from 'node-fetch' import fetch from 'node-fetch'
export class takeBirthdayPhoto extends plugin { export class takeBirthdayPhoto extends plugin {
constructor () { constructor() {
super({ super({
name: '留影叙佳期', name: '留影叙佳期',
dsc: '留影叙佳期', dsc: '留影叙佳期',
/** https://oicqjs.github.io/oicq/#events */
event: 'message', event: 'message',
priority: 5000, priority: 5000,
rule: [ rule: [
{ {
/** 命令正则匹配 */ reg: '#?留影(叙|徐)(佳|假)期$',
reg: '#?留影叙佳期$',
/** 执行方法 */
fnc: 'birthdaystar' fnc: 'birthdaystar'
} }
] ]
}) })
} }
async birthdaystar (e) { async birthdaystar(e) {
const { user_id } = e const { user_id } = e
const userInfo = await this.getCookie(user_id) const userInfo = await this.getCookie(user_id)
@ -46,28 +43,32 @@ export class takeBirthdayPhoto extends plugin {
e.reply('今天没有生日角色哦~', true) e.reply('今天没有生日角色哦~', true)
return true return true
} }
try {
for (const role of birthday_star_list) { for (const role of birthday_star_list) {
await e.reply(`正在获取${role.name}的图片,请稍等~`, true) await e.reply(`正在获取${role.name}的图片,请稍等~`, true)
await e.reply(segment.image(role.take_picture)) await e.reply(segment.image(role.take_picture))
const message = await this.getBirthdayStarImg(userInfo.uid, e_hk4e_token, userInfo.ck, role.role_id) const message = await this.getBirthdayStarImg(userInfo.uid, e_hk4e_token, userInfo.ck, role.role_id)
if (message != 'success') { if (message != 'success') {
await e.reply(message) await e.reply(message)
return true return true
} else { } else {
await e.reply(`获取${role.name}的图片成功~`, true) await e.reply(`获取${role.name}的图片成功~`, true)
}
} }
} catch (error) {
await e.reply(`获取角色留影叙佳期图片失败可能是ck失效...`)
logger.error(error)
} }
return true return true
} }
async getCookie (user_id) { async getCookie(user_id) {
const userInfo = ((await gsCfg.getBingCk()).ckQQ)[user_id] const userInfo = ((await gsCfg.getBingCk()).ckQQ)[user_id]
return userInfo return userInfo
} }
async getEHK4EToken (ck, uid) { async getEHK4EToken(ck, uid) {
const isCN = uid.toString().match(/^[125]/) ? true : false const isCN = uid.toString().match(/^[125]/) ? true : false
const url = isCN ? 'https://api-takumi.mihoyo.com/common/badge/v1/login/account' : 'https://api-os-takumi.mihoyo.com/common/badge/v1/login/account' const url = isCN ? 'https://api-takumi.mihoyo.com/common/badge/v1/login/account' : 'https://api-os-takumi.mihoyo.com/common/badge/v1/login/account'
const game_biz = isCN ? 'hk4e_cn' : 'hk4e_global' const game_biz = isCN ? 'hk4e_cn' : 'hk4e_global'
@ -93,7 +94,7 @@ export class takeBirthdayPhoto extends plugin {
return e_hk4e_token return e_hk4e_token
} }
async getServer (uid) { async getServer(uid) {
switch (String(uid)[0]) { switch (String(uid)[0]) {
case '1': case '1':
case '2': case '2':
@ -112,7 +113,7 @@ export class takeBirthdayPhoto extends plugin {
return 'cn_gf01' return 'cn_gf01'
} }
async getBirthdayStar (uid, e_hk4e_token, ck) { async getBirthdayStar(uid, e_hk4e_token, ck) {
const cookie = `e_hk4e_token=${e_hk4e_token};${ck}` const cookie = `e_hk4e_token=${e_hk4e_token};${ck}`
const badge_region = await this.getServer(uid) const badge_region = await this.getServer(uid)
const isCN = uid.toString().match(/^[125]/) ? true : false const isCN = uid.toString().match(/^[125]/) ? true : false
@ -124,7 +125,7 @@ export class takeBirthdayPhoto extends plugin {
return res.data.role return res.data.role
} }
async getBirthdayStarImg (uid, e_hk4e_token, ck, role_id) { async getBirthdayStarImg(uid, e_hk4e_token, ck, role_id) {
const cookie = `e_hk4e_token=${e_hk4e_token};${ck}` const cookie = `e_hk4e_token=${e_hk4e_token};${ck}`
const badge_region = await this.getServer(uid) const badge_region = await this.getServer(uid)
const isCN = uid.toString().match(/^[125]/) ? true : false const isCN = uid.toString().match(/^[125]/) ? true : false