parent
							
								
									2a467c9f89
								
							
						
					
					
						commit
						39791196ed
					
				|  | @ -29,6 +29,4 @@ export class dailyNote extends plugin { | ||||||
|     /** 生成图片 */ |     /** 生成图片 */ | ||||||
|     this.renderImg('genshin', `html/player/daily-note-${data.game}`, data) |     this.renderImg('genshin', `html/player/daily-note-${data.game}`, data) | ||||||
|   } |   } | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| } | } | ||||||
|  | @ -63,13 +63,14 @@ export class exchange extends plugin { | ||||||
| 
 | 
 | ||||||
|     for (let val of code.data.code_list) { |     for (let val of code.data.code_list) { | ||||||
|       if (val.code) { |       if (val.code) { | ||||||
|         codes.push(val.code) |         codes.push([val.code, segment.button([ | ||||||
|  |           { text: "兑换", callback: `#兑换码使用${val.code}` }, | ||||||
|  |         ])]) | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 |     let msg = [`兑换码过期时间: \n${this.deadline}`, ...codes] | ||||||
|     let msg = [`${title}-直播兑换码`, `兑换码过期时间: \n${this.deadline}`, ...codes] |     msg = await common.makeForwardMsg(this.e, msg, `${title}-直播兑换码`) | ||||||
|     msg = await common.makeForwardMsg(this.e, msg, msg[0]) |  | ||||||
|     await this.reply(msg) |     await this.reply(msg) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -50,6 +50,17 @@ export class gcLog extends plugin { | ||||||
|     }) |     }) | ||||||
| 
 | 
 | ||||||
|     this.androidUrl = 'https://docs.qq.com/doc/DUWpYaXlvSklmVXlX' |     this.androidUrl = 'https://docs.qq.com/doc/DUWpYaXlvSklmVXlX' | ||||||
|  |     this.prefix = this.e?.isSr ? "*" : "#" | ||||||
|  |     this.button = segment.button([ | ||||||
|  |       { text: "角色记录", callback: `${this.prefix}角色记录` }, | ||||||
|  |       { text: "角色统计", callback: `${this.prefix}角色统计` }, | ||||||
|  |     ],[ | ||||||
|  |       { text: "武器记录", callback: `${this.prefix}武器记录` }, | ||||||
|  |       { text: "武器统计", callback: `${this.prefix}武器统计` }, | ||||||
|  |     ],[ | ||||||
|  |       { text: "常驻记录", callback: `${this.prefix}常驻记录` }, | ||||||
|  |       { text: "常驻统计", callback: `${this.prefix}常驻统计` }, | ||||||
|  |     ]) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   async init () { |   async init () { | ||||||
|  | @ -111,7 +122,7 @@ export class gcLog extends plugin { | ||||||
| 
 | 
 | ||||||
|     if (typeof data != 'object') return |     if (typeof data != 'object') return | ||||||
| 
 | 
 | ||||||
|     await this.renderImg('genshin', `html/gacha/gacha-log`, data) |     this.reply([await this.renderImg('genshin', `html/gacha/gacha-log`, data, { retType: "base64" }), this.button]) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   /** #抽卡记录 */ |   /** #抽卡记录 */ | ||||||
|  | @ -123,7 +134,7 @@ export class gcLog extends plugin { | ||||||
|     if (this.e.isAll) { |     if (this.e.isAll) { | ||||||
|       name = `html/gacha/gacha-all-log` |       name = `html/gacha/gacha-all-log` | ||||||
|     } |     } | ||||||
|     await this.renderImg('genshin', name, data) |     this.reply([await this.renderImg('genshin', name, data, { retType: "base64" }), this.button]) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   /** 导出记录 */ |   /** 导出记录 */ | ||||||
|  | @ -152,7 +163,11 @@ export class gcLog extends plugin { | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   async help () { |   async help () { | ||||||
|     await this.e.reply(segment.image(`file://${_path}/resources/logHelp/记录帮助.png`)) |     await this.e.reply([segment.image(`file://${_path}/resources/logHelp/记录帮助.png`), segment.button([ | ||||||
|  |       { text: "电脑", callback: "#电脑帮助" }, | ||||||
|  |       { text: "安卓", callback: "#安卓帮助" }, | ||||||
|  |       { text: "苹果", callback: "#苹果帮助" }, | ||||||
|  |     ])]) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   async helpPort () { |   async helpPort () { | ||||||
|  | @ -170,6 +185,7 @@ export class gcLog extends plugin { | ||||||
|   async logCount () { |   async logCount () { | ||||||
|     let data = await new LogCount(this.e).count() |     let data = await new LogCount(this.e).count() | ||||||
|     if (!data) return |     if (!data) return | ||||||
|     this.renderImg('genshin', `html/gacha/log-count`, data) | 
 | ||||||
|  |     this.reply([await this.renderImg('genshin', `html/gacha/log-count`, data, { retType: "base64" }), this.button]) | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -30,6 +30,12 @@ export class ledger extends plugin { | ||||||
|         } |         } | ||||||
|       ] |       ] | ||||||
|     }) |     }) | ||||||
|  | 
 | ||||||
|  |     this.prefix = this.e?.isSr ? "*星琼" : "#原石" | ||||||
|  |     this.button = segment.button([ | ||||||
|  |       { text: "记录", callback: this.prefix }, | ||||||
|  |       { text: "统计", callback: `${this.prefix}统计` }, | ||||||
|  |     ]) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   async init () { |   async init () { | ||||||
|  | @ -47,7 +53,7 @@ export class ledger extends plugin { | ||||||
|     if (!data) return |     if (!data) return | ||||||
| 
 | 
 | ||||||
|     /** 生成图片 */ |     /** 生成图片 */ | ||||||
|     this.renderImg('genshin', `html/ledger/ledger-${data.game}`, data) |     this.reply([await this.renderImg('genshin', `html/ledger/ledger-${data.game}`, data, { retType: "base64" }), this.button]) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   /** 原石任务 */ |   /** 原石任务 */ | ||||||
|  | @ -61,7 +67,7 @@ export class ledger extends plugin { | ||||||
|     if (!data) return |     if (!data) return | ||||||
| 
 | 
 | ||||||
|     /** 生成图片 */ |     /** 生成图片 */ | ||||||
|     this.renderImg('genshin', `html/ledger/ledger-count-${data.game}`, data) |     this.reply([await this.renderImg('genshin', `html/ledger/ledger-count-${data.game}`, data, { retType: "base64" }), this.button]) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   async ledgerCountHistory () { |   async ledgerCountHistory () { | ||||||
|  | @ -69,6 +75,6 @@ export class ledger extends plugin { | ||||||
|     if (!data) return |     if (!data) return | ||||||
| 
 | 
 | ||||||
|     /** 生成图片 */ |     /** 生成图片 */ | ||||||
|     this.renderImg('genshin', `html/ledger/ledger-count-${data.game}`, data) |     this.reply([await this.renderImg('genshin', `html/ledger/ledger-count-${data.game}`, data, { retType: "base64" }), this.button]) | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -138,10 +138,16 @@ export class payLog extends plugin { | ||||||
|         } |         } | ||||||
|         return true |         return true | ||||||
|       } else { |       } else { | ||||||
|         this.reply('请私聊发送米游社链接,可以发送【#充值统计帮助】查看链接教程', false) |         this.reply(['请私聊发送米游社链接,可以发送【#充值统计帮助】查看链接教程', | ||||||
|  |         segment.button([ | ||||||
|  |           { text: "充值帮助", callback: "#充值统计帮助" }, | ||||||
|  |         ])]) | ||||||
|       } |       } | ||||||
|     } else { |     } else { | ||||||
|       this.reply('请私聊发送米游社链接,可以发送【#充值统计帮助】查看链接教程', false) |       this.reply(['请私聊发送米游社链接,可以发送【#充值统计帮助】查看链接教程', | ||||||
|  |       segment.button([ | ||||||
|  |         { text: "充值帮助", callback: "#充值统计帮助" }, | ||||||
|  |       ])]) | ||||||
|     } |     } | ||||||
|     return true |     return true | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  | @ -29,6 +29,14 @@ export class role extends plugin { | ||||||
|         fnc: 'roleExplore' |         fnc: 'roleExplore' | ||||||
|       }] |       }] | ||||||
|     }) |     }) | ||||||
|  | 
 | ||||||
|  |     this.prefix = this.e?.isSr ? "*" : "#" | ||||||
|  |     this.button = segment.button([ | ||||||
|  |       { text: "角色", callback: `${this.prefix}角色` }, | ||||||
|  |       { text: "探索", callback: `${this.prefix}探索` }, | ||||||
|  |       { text: "武器", callback: `${this.prefix}武器` }, | ||||||
|  |       { text: "深渊", callback: `${this.prefix}深渊` }, | ||||||
|  |     ]) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   /** 初始化配置文件 */ |   /** 初始化配置文件 */ | ||||||
|  | @ -69,7 +77,7 @@ export class role extends plugin { | ||||||
|     console.log('abyss', data) |     console.log('abyss', data) | ||||||
|     if (!data) return |     if (!data) return | ||||||
| 
 | 
 | ||||||
|     this.renderImg('genshin', 'html/abyss/abyss', data) |     this.reply([await this.renderImg('genshin', 'html/abyss/abyss', data, { retType: "base64" }), this.button]) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   /** 深渊十二层 */ |   /** 深渊十二层 */ | ||||||
|  | @ -77,7 +85,7 @@ export class role extends plugin { | ||||||
|     let data = await new Abyss(this.e).getAbyssFloor() |     let data = await new Abyss(this.e).getAbyssFloor() | ||||||
|     if (!data) return |     if (!data) return | ||||||
| 
 | 
 | ||||||
|     await this.renderImg('genshin', 'html/abyss/abyss-floor', data) |     this.reply([await this.renderImg('genshin', 'html/abyss/abyss-floor', data, { retType: "base64" }), this.button]) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   /** 武器 */ |   /** 武器 */ | ||||||
|  | @ -85,7 +93,7 @@ export class role extends plugin { | ||||||
|     let data = await Weapon.get(this.e) |     let data = await Weapon.get(this.e) | ||||||
|     if (!data) return |     if (!data) return | ||||||
| 
 | 
 | ||||||
|     await this.renderImg('genshin', 'html/avatar/weapon', data) |     this.reply([await this.renderImg('genshin', 'html/avatar/weapon', data, { retType: "base64" }), this.button]) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   /** 角色卡片 */ |   /** 角色卡片 */ | ||||||
|  | @ -93,7 +101,7 @@ export class role extends plugin { | ||||||
|     let data = await new RoleIndex(this.e).roleCard() |     let data = await new RoleIndex(this.e).roleCard() | ||||||
|     if (!data) return |     if (!data) return | ||||||
| 
 | 
 | ||||||
|     await this.renderImg('genshin', 'html/player/role-card', data) |     this.reply([await this.renderImg('genshin', 'html/player/role-card', data, { retType: "base64" }), this.button]) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   /** 探险 */ |   /** 探险 */ | ||||||
|  | @ -101,6 +109,6 @@ export class role extends plugin { | ||||||
|     let data = await new RoleIndex(this.e).roleExplore() |     let data = await new RoleIndex(this.e).roleExplore() | ||||||
|     if (!data) return |     if (!data) return | ||||||
| 
 | 
 | ||||||
|     this.renderImg('genshin', 'html/player/role-explore', data) |     this.reply([await this.renderImg('genshin', 'html/player/role-explore', data, { retType: "base64" }), this.button]) | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -20,6 +20,12 @@ export class sevenSaints extends plugin { | ||||||
|         } |         } | ||||||
|       ] |       ] | ||||||
|     }) |     }) | ||||||
|  | 
 | ||||||
|  |     this.button = segment.button([ | ||||||
|  |       { text: "牌组", callback: `#七圣召唤查询牌组` }, | ||||||
|  |       { text: "角色牌", callback: `#七圣召唤查询角色牌` }, | ||||||
|  |       { text: "行动牌", callback: `#七圣召唤查询行动牌` }, | ||||||
|  |     ]) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   async deckIndex() { |   async deckIndex() { | ||||||
|  | @ -36,7 +42,7 @@ export class sevenSaints extends plugin { | ||||||
|     if (!data) return |     if (!data) return | ||||||
| 
 | 
 | ||||||
|     let img = await puppeteer.screenshot('deck', data) |     let img = await puppeteer.screenshot('deck', data) | ||||||
|     if (img) await this.reply(img) |     if (img) await this.reply([img, this.button]) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   async deck_list(id = 0) { |   async deck_list(id = 0) { | ||||||
|  | @ -44,7 +50,7 @@ export class sevenSaints extends plugin { | ||||||
|     if (!data) return |     if (!data) return | ||||||
| 
 | 
 | ||||||
|     let img = await puppeteer.screenshot('deckList', data) |     let img = await puppeteer.screenshot('deckList', data) | ||||||
|     if (img) await this.reply(img) |     if (img) await this.reply([img, this.button]) | ||||||
|   } |   } | ||||||
|   async deck_cards(id = 0) { |   async deck_cards(id = 0) { | ||||||
|     if (this.e.msg.includes('角色')) id = 1 |     if (this.e.msg.includes('角色')) id = 1 | ||||||
|  | @ -54,6 +60,6 @@ export class sevenSaints extends plugin { | ||||||
|     if (!data) return |     if (!data) return | ||||||
| 
 | 
 | ||||||
|     let img = await puppeteer.screenshot('deckCard', data) |     let img = await puppeteer.screenshot('deckCard', data) | ||||||
|     if (img) await this.reply(img) |     if (img) await this.reply([img, this.button]) | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -13,6 +13,9 @@ gsCfg.cpCfg('mys', 'set') | ||||||
|  * 1.增加多个来源的攻略图 |  * 1.增加多个来源的攻略图 | ||||||
|  * 2.优化获取攻略图逻辑,更改为对比图片大小来寻找 |  * 2.优化获取攻略图逻辑,更改为对比图片大小来寻找 | ||||||
|  * 3.增加攻略说明、设置默认攻略功能 |  * 3.增加攻略说明、设置默认攻略功能 | ||||||
|  |  * | ||||||
|  |  * 从拓展插件更新 | ||||||
|  |  * 作者:曉K 更新:🌌 | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| export class strategy extends plugin { | export class strategy extends plugin { | ||||||
|  | @ -24,7 +27,7 @@ export class strategy extends plugin { | ||||||
|       priority: 50, |       priority: 50, | ||||||
|       rule: [ |       rule: [ | ||||||
|         { |         { | ||||||
|           reg: '^#?(更新)?\\S+攻略([1-4])?$', |           reg: '^#?(更新)?\\S+攻略([1-7])?$', | ||||||
|           fnc: 'strategy' |           fnc: 'strategy' | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|  | @ -32,7 +35,7 @@ export class strategy extends plugin { | ||||||
|           fnc: 'strategy_help' |           fnc: 'strategy_help' | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|           reg: '^#?设置默认攻略([1-4])?$', |           reg: '^#?设置默认攻略([1-7])?$', | ||||||
|           fnc: 'strategy_setting' |           fnc: 'strategy_setting' | ||||||
|         } |         } | ||||||
|       ] |       ] | ||||||
|  | @ -52,10 +55,16 @@ export class strategy extends plugin { | ||||||
|       // 来源:派蒙喵喵屋
 |       // 来源:派蒙喵喵屋
 | ||||||
|       [341284], |       [341284], | ||||||
|       // 来源:OH是姜姜呀(需特殊处理)
 |       // 来源:OH是姜姜呀(需特殊处理)
 | ||||||
|       [341523] |       [341523], | ||||||
|  |       // 来源:曉K → 废物一个
 | ||||||
|  |       [1582613], | ||||||
|  |       // 来源:坤易
 | ||||||
|  |       [22148], | ||||||
|  |       // 来源:婧枫赛赛
 | ||||||
|  |       [1812949] | ||||||
|     ] |     ] | ||||||
| 
 | 
 | ||||||
|     this.source = ['西风驿站', '原神观测枢', '派蒙喵喵屋', 'OH是姜姜呀'] |     this.source = ['西风驿站', '原神观测枢', '派蒙喵喵屋', 'OH是姜姜呀', '曉K', '坤易', '婧枫赛赛'] | ||||||
| 
 | 
 | ||||||
|     this.oss = '?x-oss-process=image//resize,s_1200/quality,q_90/auto-orient,0/interlace,1/format,jpg' |     this.oss = '?x-oss-process=image//resize,s_1200/quality,q_90/auto-orient,0/interlace,1/format,jpg' | ||||||
|   } |   } | ||||||
|  | @ -66,7 +75,7 @@ export class strategy extends plugin { | ||||||
|       fs.mkdirSync(this.path) |       fs.mkdirSync(this.path) | ||||||
|     } |     } | ||||||
|     /** 初始化子目录 */ |     /** 初始化子目录 */ | ||||||
|     for (let subId of [1, 2, 3, 4]) { |     for (let subId of [1, 2, 3, 4, 5, 6, 7]) { | ||||||
|       let path = this.path + '/' + subId |       let path = this.path + '/' + subId | ||||||
|       if (!fs.existsSync(path)) { |       if (!fs.existsSync(path)) { | ||||||
|         fs.mkdirSync(path) |         fs.mkdirSync(path) | ||||||
|  | @ -76,7 +85,7 @@ export class strategy extends plugin { | ||||||
| 
 | 
 | ||||||
|   /** #心海攻略 */ |   /** #心海攻略 */ | ||||||
|   async strategy () { |   async strategy () { | ||||||
|     let match = /^#?(更新)?(\S+)攻略([1-4])?$/.exec(this.e.msg) |     let match = /^#?(更新)?(\S+)攻略([1-7])?$/.exec(this.e.msg) | ||||||
| 
 | 
 | ||||||
|     // let isUpdate = !!this.e.msg.includes('更新')
 |     // let isUpdate = !!this.e.msg.includes('更新')
 | ||||||
|     let isUpdate = !!match[1] |     let isUpdate = !!match[1] | ||||||
|  | @ -104,33 +113,37 @@ export class strategy extends plugin { | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     this.sfPath = `${this.path}/${group}/${role.name}.jpg` |     this.sfPath = `${this.path}/${group}/${role.name}.jpg` | ||||||
|  |     let button = [] | ||||||
|  |     for (const i of [1, 2, 3, 4, 5, 6, 7]) | ||||||
|  |       button.push({ text: String(i), callback: `#${role.name}攻略${i}` }) | ||||||
|  |     button = segment.button(button) | ||||||
| 
 | 
 | ||||||
|     if (fs.existsSync(this.sfPath) && !isUpdate) { |     if (fs.existsSync(this.sfPath) && !isUpdate) { | ||||||
|       await this.e.reply(segment.image(`file://${this.sfPath}`)) |       await this.e.reply([segment.image(`file://${this.sfPath}`), button]) | ||||||
|       return |       return | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     if (await this.getImg(role.name, group)) { |     if (await this.getImg(role.name, group)) { | ||||||
|       await this.e.reply(segment.image(`file://${this.sfPath}`)) |       await this.e.reply([segment.image(`file://${this.sfPath}`), button]) | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   /** #攻略帮助 */ |   /** #攻略帮助 */ | ||||||
|   async strategy_help () { |   async strategy_help () { | ||||||
|     await this.e.reply('攻略帮助:\n#心海攻略[1234]\n#更新早柚攻略[1234]\n#设置默认攻略[1234]\n示例: 心海攻略4\n\n攻略来源:\n1——西风驿站\n2——原神观测枢\n3——派蒙喵喵屋\n4——OH是姜姜呀') |     await this.e.reply('攻略帮助:\n#心海攻略[1234567]\n#更新早柚攻略[1234567]\n#设置默认攻略[1234567]\n示例: 心海攻略4\n\n攻略来源:\n1——西风驿站\n2——原神观测枢\n3——派蒙喵喵屋\n4——OH是姜姜呀\n5——曉K\n6——坤易\n7——婧枫赛赛(角色配队一图流)') | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   /** #设置默认攻略1 */ |   /** #设置默认攻略1 */ | ||||||
|   async strategy_setting () { |   async strategy_setting () { | ||||||
|     let match = /^#?设置默认攻略([1-4])?$/.exec(this.e.msg) |     let match = /^#?设置默认攻略([1-7])?$/.exec(this.e.msg) | ||||||
|     let set = './plugins/genshin/config/mys.set.yaml' |     let set = './plugins/genshin/config/mys.set.yaml' | ||||||
|     let config = fs.readFileSync(set, 'utf8') |     let config = fs.readFileSync(set, 'utf8') | ||||||
|     let num = Number(match[1]) |     let num = Number(match[1]) | ||||||
|     if(isNaN(num)) { |     if(isNaN(num)) { | ||||||
| 		await this.e.reply('默认攻略设置方式为: \n#设置默认攻略[1234] \n 请增加数字1-4其中一个') | 		await this.e.reply('默认攻略设置方式为: \n#设置默认攻略[1234567] \n 请增加数字1-7其中一个') | ||||||
| 		return | 		return | ||||||
|     } |     } | ||||||
|     config = config.replace(/defaultSource: [1-4]/g, 'defaultSource: ' + num) |     config = config.replace(/defaultSource: [1-7]/g, 'defaultSource: ' + num) | ||||||
|     fs.writeFileSync(set, config, 'utf8') |     fs.writeFileSync(set, config, 'utf8') | ||||||
| 
 | 
 | ||||||
|     await this.e.reply('默认攻略已设置为: ' + match[1]) |     await this.e.reply('默认攻略已设置为: ' + match[1]) | ||||||
|  |  | ||||||
|  | @ -16,6 +16,9 @@ export class takeBirthdayPhoto extends plugin { | ||||||
|         } |         } | ||||||
|       ] |       ] | ||||||
|     }) |     }) | ||||||
|  |     this.button = segment.button([ | ||||||
|  |       { text: "留影叙佳期", input: "#留影叙佳期" }, | ||||||
|  |     ]) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   async birthdaystar(e) { |   async birthdaystar(e) { | ||||||
|  | @ -23,24 +26,26 @@ export class takeBirthdayPhoto extends plugin { | ||||||
| 
 | 
 | ||||||
|     const userInfo = await this.getCookie(user_id) |     const userInfo = await this.getCookie(user_id) | ||||||
|     if (!userInfo) { |     if (!userInfo) { | ||||||
|       e.reply('请先绑定ck再使用本功能哦~', true) |       e.reply(['请先绑定ck再使用本功能哦~', segment.button([ | ||||||
|  |         { text: "Cookie帮助", callback: "#Cookie帮助" }, | ||||||
|  |       ])], true) | ||||||
|       return true |       return true | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     const e_hk4e_token = await this.getEHK4EToken(userInfo.ck, userInfo.uid) |     const e_hk4e_token = await this.getEHK4EToken(userInfo.ck, userInfo.uid) | ||||||
|     if (!e_hk4e_token) { |     if (!e_hk4e_token) { | ||||||
|       e.reply('获取e-hk4e_token失败,请刷新ck后再试~', true) |       e.reply(['获取e-hk4e_token失败,请刷新ck后再试~', this.button], true) | ||||||
|       return true |       return true | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     const birthday_star_list = await this.getBirthdayStar(userInfo.uid, e_hk4e_token, userInfo.ck) |     const birthday_star_list = await this.getBirthdayStar(userInfo.uid, e_hk4e_token, userInfo.ck) | ||||||
|     if (!birthday_star_list) { |     if (!birthday_star_list) { | ||||||
|       e.reply('获取生日角色失败,请稍后再试~', true) |       e.reply(['获取生日角色失败,请稍后再试~', this.button], true) | ||||||
|       return true |       return true | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     if (birthday_star_list.length === 0) { |     if (birthday_star_list.length === 0) { | ||||||
|       e.reply('今天没有生日角色哦~', true) |       e.reply(['今天没有生日角色哦~', this.button], true) | ||||||
|       return true |       return true | ||||||
|     } |     } | ||||||
|     try { |     try { | ||||||
|  | @ -49,14 +54,14 @@ export class takeBirthdayPhoto extends plugin { | ||||||
|         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, this.button]) | ||||||
|           return true |           return true | ||||||
|         } else { |         } else { | ||||||
|           await e.reply(`获取${role.name}的图片成功~`, true) |           await e.reply(`获取${role.name}的图片成功~`, true) | ||||||
|         } |         } | ||||||
|       } |       } | ||||||
|     } catch (error) { |     } catch (error) { | ||||||
|       await e.reply(`获取角色留影叙佳期图片失败,可能是ck失效...`, true) |       await e.reply([`获取角色留影叙佳期图片失败,可能是ck失效...`, this.button], true) | ||||||
|       logger.error(error) |       logger.error(error) | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -12,15 +12,15 @@ export class user extends plugin { | ||||||
|       priority: 300, |       priority: 300, | ||||||
|       rule: [ |       rule: [ | ||||||
|         { |         { | ||||||
|           reg: '^#*(体力|ck|cookie)帮助', |           reg: '^#?(体力|[Cc](oo)?[Kk](ie)?)帮助', | ||||||
|           fnc: 'ckHelp' |           fnc: 'ckHelp' | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|           reg: '^(ck|cookie|js)代码$', |           reg: '^#[Cc](oo)?[Kk](ie)?代码$', | ||||||
|           fnc: 'ckCode' |           fnc: 'ckCode' | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|           reg: '^#绑定(cookie|ck)$', |           reg: '^#绑定[Cc](oo)?[Kk](ie)?$', | ||||||
|           fnc: 'bingCk' |           fnc: 'bingCk' | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|  | @ -29,12 +29,12 @@ export class user extends plugin { | ||||||
|           fnc: 'noLogin' |           fnc: 'noLogin' | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|           reg: '^#?(原神|星铁)?我的(ck|cookie)$', |           reg: '^#?(原神|星铁)?我的[Cc](oo)?[Kk](ie)?$', | ||||||
|           event: 'message', |           event: 'message', | ||||||
|           fnc: 'myCk' |           fnc: 'myCk' | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|           reg: '^#?(原神|星铁)?删除(ck|cookie)$', |           reg: '^#?(原神|星铁)?删除[Cc](oo)?[Kk](ie)?$', | ||||||
|           fnc: 'delCk' |           fnc: 'delCk' | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|  | @ -50,7 +50,7 @@ export class user extends plugin { | ||||||
|           fnc: 'showUid' |           fnc: 'showUid' | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|           reg: '^#\\s*(检查|我的)*ck(状态)*$', |           reg: '^#\\s*(检查|我的)*[Cc](oo)?[Kk](ie)?(状态)*$', | ||||||
|           fnc: 'checkCkStatus' |           fnc: 'checkCkStatus' | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|  | @ -77,11 +77,11 @@ export class user extends plugin { | ||||||
|     // 由于手机端米游社网页可能获取不到ltuid 可以尝试在通行证页面获取login_uid
 |     // 由于手机端米游社网页可能获取不到ltuid 可以尝试在通行证页面获取login_uid
 | ||||||
|     if (/(ltoken|ltoken_v2)/.test(this.e.msg) && /(ltuid|login_uid|ltmid_v2)/.test(this.e.msg)) { |     if (/(ltoken|ltoken_v2)/.test(this.e.msg) && /(ltuid|login_uid|ltmid_v2)/.test(this.e.msg)) { | ||||||
|       if (this.e.isGroup) { |       if (this.e.isGroup) { | ||||||
|         this.reply('请私聊发送cookie', false, { at: true }) |         this.reply('请私聊发送Cookie', false, { at: true }) | ||||||
|         return true |         return true | ||||||
|       } |       } | ||||||
|       this.e.ck = this.e.msg |       this.e.ck = this.e.msg | ||||||
|       this.e.msg = '#绑定cookie' |       this.e.msg = '#绑定Cookie' | ||||||
|       return true |       return true | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -107,7 +107,7 @@ export class user extends plugin { | ||||||
| 
 | 
 | ||||||
|   /** 未登录ck */ |   /** 未登录ck */ | ||||||
|   async noLogin () { |   async noLogin () { | ||||||
|     this.reply('绑定cookie失败\n请先【登录米游社】或【登录通行证】再获取cookie') |     this.reply('绑定Cookie失败\n请先【登录米游社】或【登录通行证】再获取Cookie') | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   /** #ck代码 */ |   /** #ck代码 */ | ||||||
|  | @ -118,7 +118,7 @@ export class user extends plugin { | ||||||
|   /** ck帮助 */ |   /** ck帮助 */ | ||||||
|   async ckHelp () { |   async ckHelp () { | ||||||
|     let set = gsCfg.getConfig('mys', 'set') |     let set = gsCfg.getConfig('mys', 'set') | ||||||
|     await this.reply(`Cookie绑定配置教程:${set.cookieDoc}\n获取cookie后【私聊发送】进行绑定`) |     await this.reply(`Cookie绑定配置教程:${set.cookieDoc}\n获取Cookie后【私聊发送】进行绑定`) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   /** 绑定ck */ |   /** 绑定ck */ | ||||||
|  | @ -126,7 +126,7 @@ export class user extends plugin { | ||||||
|     let set = gsCfg.getConfig('mys', 'set') |     let set = gsCfg.getConfig('mys', 'set') | ||||||
| 
 | 
 | ||||||
|     if (!this.e.ck) { |     if (!this.e.ck) { | ||||||
|       await this.reply(`请【私聊】发送米游社cookie,获取教程:\n${set.cookieDoc}`) |       await this.reply(`请【私聊】发送米游社Cookie,获取教程:\n${set.cookieDoc}`) | ||||||
|       return |       return | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -12,54 +12,47 @@ export class user extends plugin { | ||||||
|       priority: 300, |       priority: 300, | ||||||
|       rule: [{ |       rule: [{ | ||||||
|         reg: '^#用户统计$', |         reg: '^#用户统计$', | ||||||
|         fnc: 'userAdmin' |         fnc: 'userAdmin', | ||||||
|  |         permission: "master", | ||||||
|       }, { |       }, { | ||||||
|         reg: '^#(刷新|重置)用户(缓存|统计|ck|Ck|CK)$', |         reg: '^#(刷新|重置)用户(缓存|统计|ck|Ck|CK)$', | ||||||
|         fnc: 'resetCache' |         fnc: 'resetCache', | ||||||
|  |         permission: "master", | ||||||
|       }, { |       }, { | ||||||
|         reg: '^#删除(无效|失效)(用户|ck|Ck|CK)$', |         reg: '^#删除(无效|失效)(用户|ck|Ck|CK)$', | ||||||
|         fnc: 'delDisable' |         fnc: 'delDisable', | ||||||
|  |         permission: "master", | ||||||
|       }] |       }] | ||||||
|     }) |     }) | ||||||
|     this.User = new User(e) |     this.User = new User(e) | ||||||
|   } |     this.button = segment.button([ | ||||||
| 
 |       { text: "用户统计", callback: "#用户统计" }, | ||||||
|   checkAuth () { |       { text: "删除无效", callback: "#删除无效用户" }, | ||||||
|     if (!this.e.isMaster) { |     ],[ | ||||||
|       this.e.reply('只有管理员可用...') |       { text: "刷新统计", callback: "#刷新用户统计" }, | ||||||
|       return false |       { text: "重置统计", callback: "#重置用户统计" }, | ||||||
|     } |     ]) | ||||||
|     return true |  | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   /** #用户统计$ */ |   /** #用户统计$ */ | ||||||
|   async userAdmin () { |   async userAdmin () { | ||||||
|     if (!this.checkAuth()) { |  | ||||||
|       return true |  | ||||||
|     } |  | ||||||
|     let data = await new User(this.e).userAdmin() |     let data = await new User(this.e).userAdmin() | ||||||
|     if (!data) return true |     if (!data) return true | ||||||
| 
 | 
 | ||||||
|     /** 生成图片 */ |     /** 生成图片 */ | ||||||
|     this.renderImg('genshin', 'html/admin/userAdmin', data) |     this.reply([await this.renderImg('genshin', 'html/admin/userAdmin', data, { retType: "base64" }), this.button]) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   /** #刷新用户缓存 / #重置用户缓存 */ |   /** #刷新用户缓存 / #重置用户缓存 */ | ||||||
|   async resetCache () { |   async resetCache () { | ||||||
|     if (!this.checkAuth()) { |  | ||||||
|       return true |  | ||||||
|     } |  | ||||||
|     // 清空老数据
 |     // 清空老数据
 | ||||||
|     const clearData = /重置/.test(this.e.msg) |     const clearData = /重置/.test(this.e.msg) | ||||||
|     await MysInfo.initCache(true, clearData) |     await MysInfo.initCache(true, clearData) | ||||||
|     this.e.reply(`用户缓存已${clearData ? '重置' : '刷新'}...\n通过【#用户统计】命令可查看详情`) |     this.reply([`用户缓存已${clearData ? '重置' : '刷新'}...\n通过【#用户统计】命令可查看详情`, this.button]) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   async delDisable () { |   async delDisable () { | ||||||
|     if (!this.checkAuth()) { |  | ||||||
|       return true |  | ||||||
|     } |  | ||||||
|     let count = await MysInfo.delDisable() |     let count = await MysInfo.delDisable() | ||||||
|     this.e.reply(count > 0 ? `已删除${count}个无效用户` : '暂无无效用户...') |     this.reply([count > 0 ? `已删除${count}个无效用户` : '暂无无效用户...', this.button]) | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -70,7 +70,7 @@ export default class ExportLog extends base { | ||||||
|         lang: list[0].lang, |         lang: list[0].lang, | ||||||
|         export_time: moment().format('YYYY-MM-DD HH:mm:ss'), |         export_time: moment().format('YYYY-MM-DD HH:mm:ss'), | ||||||
|         export_timestamp: moment().format('X'), |         export_timestamp: moment().format('X'), | ||||||
|         export_app: 'Miao-Yunzai', |         export_app: 'TRSS-Yunzai', | ||||||
|         export_app_version: cfg.package.version, |         export_app_version: cfg.package.version, | ||||||
|       }, |       }, | ||||||
|       list |       list | ||||||
|  |  | ||||||
|  | @ -310,7 +310,11 @@ export default class Ledger extends base { | ||||||
|     } |     } | ||||||
|     // console.log(NoteData)
 |     // console.log(NoteData)
 | ||||||
|     if (!NoteData || lodash.isEmpty(NoteData)) { |     if (!NoteData || lodash.isEmpty(NoteData)) { | ||||||
|       this.e.reply(`${this.e?.isSr ? '暂无星琼数据,请先发送 *星琼' : '暂无原石数据,请先发送 #原石'}`, false, { at: true }) |       this.e.reply(this.e?.isSr ? ['暂无星琼数据,请先发送 *星琼', segment.button([ | ||||||
|  |         { text: "星琼", input: "*星琼" }, | ||||||
|  |       ])] : ['暂无原石数据,请先发送 #原石', segment.button([ | ||||||
|  |         { text: "原石", input: "#原石" }, | ||||||
|  |       ])], false, { at: true }) | ||||||
|       return false |       return false | ||||||
|     } |     } | ||||||
|     NoteData = NoteData[nowYear] |     NoteData = NoteData[nowYear] | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ import MysUser from './MysUser.js' | ||||||
| import DailyCache from './DailyCache.js' | import DailyCache from './DailyCache.js' | ||||||
| 
 | 
 | ||||||
| export default class MysInfo { | export default class MysInfo { | ||||||
|   static tips = '请先#绑定cookie\n发送【体力帮助】查看配置教程' |   static tips = '请先#绑定Cookie\n发送【Cookie帮助】查看配置教程' | ||||||
| 
 | 
 | ||||||
|   constructor (e) { |   constructor (e) { | ||||||
|     if (e) { |     if (e) { | ||||||
|  | @ -28,6 +28,9 @@ export default class MysInfo { | ||||||
|     this.auth = ['dailyNote', 'bbs_sign_info', 'bbs_sign_home', 'bbs_sign', 'ys_ledger', 'compute', 'avatarSkill', 'detail', 'blueprint', 'UserGame', 'deckList', 'avatar_cardList', 'action_cardList', 'avatarInfo'] |     this.auth = ['dailyNote', 'bbs_sign_info', 'bbs_sign_home', 'bbs_sign', 'ys_ledger', 'compute', 'avatarSkill', 'detail', 'blueprint', 'UserGame', 'deckList', 'avatar_cardList', 'action_cardList', 'avatarInfo'] | ||||||
| 
 | 
 | ||||||
|     this.gtest = false |     this.gtest = false | ||||||
|  |     this.mysButton = segment.button([ | ||||||
|  |       { text: "米游社", link: "https://miyoushe.com" }, | ||||||
|  |     ]) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   static async init (e, api) { |   static async init (e, api) { | ||||||
|  | @ -93,7 +96,9 @@ export default class MysInfo { | ||||||
|       let atUser = await NoteUser.create(at) |       let atUser = await NoteUser.create(at) | ||||||
|       uid = atUser.getUid(e) |       uid = atUser.getUid(e) | ||||||
|       if (uid) return String(uid) |       if (uid) return String(uid) | ||||||
|       if (e.noTips !== true) e.reply('尚未绑定uid', false, { at }) |       if (e.noTips !== true) e.reply(['尚未绑定uid', segment.button([ | ||||||
|  |         { text: "绑定UID", input: "#绑定uid" }, | ||||||
|  |       ])], false, { at }) | ||||||
|       return false |       return false | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -111,7 +116,9 @@ export default class MysInfo { | ||||||
|       return user.autoRegUid(uid, e) |       return user.autoRegUid(uid, e) | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     if (e.noTips !== true) e.reply('请先#绑定uid', false, { at }) |     if (e.noTips !== true) e.reply(['请先#绑定uid', segment.button([ | ||||||
|  |       { text: "绑定UID", input: "#绑定uid" }, | ||||||
|  |     ])], false, { at }) | ||||||
| 
 | 
 | ||||||
|     return false |     return false | ||||||
|   } |   } | ||||||
|  | @ -129,7 +136,9 @@ export default class MysInfo { | ||||||
|     let selfUser = at ? await NoteUser.create(at) : user |     let selfUser = at ? await NoteUser.create(at) : user | ||||||
| 
 | 
 | ||||||
|     if (!selfUser.hasCk) { |     if (!selfUser.hasCk) { | ||||||
|       if (e.noTips !== true) e.reply('尚未绑定cookie', false, { at: selfUser.qq }) |       if (e.noTips !== true) e.reply(['尚未绑定Cookie', segment.button([ | ||||||
|  |         { text: "Cookie帮助", callback: "#Cookie帮助" }, | ||||||
|  |       ])], false, { at: selfUser.qq }) | ||||||
|       return false |       return false | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -304,11 +313,15 @@ export default class MysInfo { | ||||||
|     if (this.e.noTips === true) return |     if (this.e.noTips === true) return | ||||||
| 
 | 
 | ||||||
|     if (!this.uid) { |     if (!this.uid) { | ||||||
|       this.e.reply('请先#绑定uid') |       this.e.reply(['请先#绑定uid', segment.button([ | ||||||
|  |         { text: "绑定UID", input: "#绑定uid" }, | ||||||
|  |       ])]) | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     if (!this.ckInfo.ck) { |     if (!this.ckInfo.ck) { | ||||||
|       this.e.reply('暂无可用CK,请绑定更多用户或设置公共ck..') |       this.e.reply(['暂无可用CK,请绑定更多用户或设置公共ck..', segment.button([ | ||||||
|  |         { text: "Cookie帮助", callback: "#Cookie帮助" }, | ||||||
|  |       ])]) | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     this.e.noTips = true |     this.e.noTips = true | ||||||
|  | @ -342,7 +355,7 @@ export default class MysInfo { | ||||||
| 
 | 
 | ||||||
|   async checkCode (res, type, mysApi = {}, data = {}, isTask = false) { |   async checkCode (res, type, mysApi = {}, data = {}, isTask = false) { | ||||||
|     if (!res) { |     if (!res) { | ||||||
|       if (!isTask) this.e.reply('米游社接口请求失败,暂时无法查询') |       if (!isTask) this.e.reply(['米游社接口请求失败,暂时无法查询', this.mysButton]) | ||||||
|       return false |       return false | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -364,30 +377,30 @@ export default class MysInfo { | ||||||
|         if (/(登录|login)/i.test(res.message)) { |         if (/(登录|login)/i.test(res.message)) { | ||||||
|           if (this.ckInfo.uid) { |           if (this.ckInfo.uid) { | ||||||
|             logger.mark(`[ck失效][uid:${this.uid}][qq:${this.userId}]`) |             logger.mark(`[ck失效][uid:${this.uid}][qq:${this.userId}]`) | ||||||
|             if (!isTask) this.e.reply(`UID:${this.ckInfo.uid},米游社cookie已失效`) |             if (!isTask) this.e.reply([`UID:${this.ckInfo.uid},米游社Cookie已失效`, this.mysButton]) | ||||||
|           } else { |           } else { | ||||||
|             logger.mark(`[公共ck失效][ltuid:${this.ckInfo.ltuid}]`) |             logger.mark(`[公共ck失效][ltuid:${this.ckInfo.ltuid}]`) | ||||||
|             if (!isTask) this.e.reply('米游社查询失败,请稍后再试') |             if (!isTask) this.e.reply(['米游社查询失败,请稍后再试', this.mysButton]) | ||||||
|           } |           } | ||||||
|           if (!isTask) await this.delCk() |           if (!isTask) await this.delCk() | ||||||
|         } else { |         } else { | ||||||
|           if (!isTask) this.e.reply(`米游社接口报错,暂时无法查询:${res.message}`) |           if (!isTask) this.e.reply([`米游社接口报错,暂时无法查询:${res.message}`, this.mysButton]) | ||||||
|         } |         } | ||||||
|         break |         break | ||||||
|       case 1008: |       case 1008: | ||||||
|         if (!isTask) this.e.reply('\n请先去米游社绑定角色', false, { at: this.userId }) |         if (!isTask) this.e.reply(['请先去米游社绑定角色', this.mysButton], false, { at: this.userId }) | ||||||
|         break |         break | ||||||
|       case 10101: |       case 10101: | ||||||
|         if (!isTask) { |         if (!isTask) { | ||||||
|           await this.disableToday() |           await this.disableToday() | ||||||
|           this.e.reply('查询已达今日上限') |           this.e.reply(['查询已达今日上限', this.mysButton]) | ||||||
|         } |         } | ||||||
|         break |         break | ||||||
|       case 10102: |       case 10102: | ||||||
|         if (res.message === 'Data is not public for the user') { |         if (res.message === 'Data is not public for the user') { | ||||||
|           if (!isTask) this.e.reply(`\nUID:${this.uid},米游社数据未公开`, false, { at: this.userId }) |           if (!isTask) this.e.reply([`\nUID:${this.uid},米游社数据未公开`, this.mysButton], false, { at: this.userId }) | ||||||
|         } else { |         } else { | ||||||
|           if (!isTask) this.e.reply(`uid:${this.uid},请先去米游社绑定角色`) |           if (!isTask) this.e.reply([`uid:${this.uid},请先去米游社绑定角色`, this.mysButton]) | ||||||
|         } |         } | ||||||
|         break |         break | ||||||
|       // 伙伴不存在~
 |       // 伙伴不存在~
 | ||||||
|  | @ -395,7 +408,7 @@ export default class MysInfo { | ||||||
|         if (res.api === 'detail') res.retcode = 0 |         if (res.api === 'detail') res.retcode = 0 | ||||||
|         break |         break | ||||||
|       case 5003: |       case 5003: | ||||||
|         if (!isTask) this.e.reply('米游社账号异常,暂时无法查询') |         if (!isTask) this.e.reply(['米游社账号异常,暂时无法查询', this.mysButton]) | ||||||
|         break |         break | ||||||
|       case 1034: |       case 1034: | ||||||
|         let handler = this.e.runtime?.handler || {} |         let handler = this.e.runtime?.handler || {} | ||||||
|  | @ -408,14 +421,14 @@ export default class MysInfo { | ||||||
| 
 | 
 | ||||||
|         if (!res || res?.retcode == 1034) { |         if (!res || res?.retcode == 1034) { | ||||||
|           logger.mark(`[米游社查询失败][uid:${this.uid}][qq:${this.userId}] 遇到验证码`) |           logger.mark(`[米游社查询失败][uid:${this.uid}][qq:${this.userId}] 遇到验证码`) | ||||||
|           if (!isTask) this.e.reply('米游社查询遇到验证码,请稍后再试') |           if (!isTask) this.e.reply(['米游社查询遇到验证码,请稍后再试', this.mysButton]) | ||||||
|         } |         } | ||||||
|         break |         break | ||||||
|       case 10307: |       case 10307: | ||||||
|         if (!isTask) this.e.reply('版本更新期间,数据维护中') |         if (!isTask) this.e.reply(['版本更新期间,数据维护中', this.mysButton]) | ||||||
|         break |         break | ||||||
|       default: |       default: | ||||||
|         if (!isTask) this.e.reply(`米游社接口报错,暂时无法查询:${res.message || 'error'}`) |         if (!isTask) this.e.reply([`米游社接口报错,暂时无法查询:${res.message || 'error'}`, this.mysButton]) | ||||||
|         break |         break | ||||||
|     } |     } | ||||||
|     if (res.retcode !== 0) { |     if (res.retcode !== 0) { | ||||||
|  |  | ||||||
|  | @ -276,11 +276,9 @@ export default class MysNews extends base { | ||||||
| 
 | 
 | ||||||
|   replyMsg(img, title) { |   replyMsg(img, title) { | ||||||
|     if (!img || img.length <= 0) return false |     if (!img || img.length <= 0) return false | ||||||
|     if (img.length == 1) { |     if (title) img = [title, ...img] | ||||||
|       if (title) return [title, ...img] |     if (img.length <= 2) return img | ||||||
|       return img |     return common.makeForwardMsg(this.e, [img]) | ||||||
|     } |  | ||||||
|     return common.makeForwardMsg(this.e, img, title) |  | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   async mysNewsTask() { |   async mysNewsTask() { | ||||||
|  |  | ||||||
|  | @ -46,7 +46,7 @@ export default class User extends base { | ||||||
|       this.e.ck = this.ck |       this.e.ck = this.ck | ||||||
|     } |     } | ||||||
|     if (!this.e.ck) { |     if (!this.e.ck) { | ||||||
|       await this.e.reply(`请【私聊】发送米游社cookie,获取教程:\n${set.cookieDoc}`) |       await this.e.reply(`请【私聊】发送米游社Cookie,获取教程:\n${set.cookieDoc}`) | ||||||
|       return |       return | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -59,14 +59,14 @@ export default class User extends base { | ||||||
|     }) |     }) | ||||||
| 
 | 
 | ||||||
|     if (!param.cookie_token && !param.cookie_token_v2) { |     if (!param.cookie_token && !param.cookie_token_v2) { | ||||||
|       await this.e.reply('发送cookie不完整\n请退出米游社【重新登录】,刷新完整cookie') |       await this.e.reply('发送Cookie不完整\n请退出米游社【重新登录】,刷新完整Cookie') | ||||||
|       return |       return | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     // TODO:独立的mys数据,不走缓存ltuid
 |     // TODO:独立的mys数据,不走缓存ltuid
 | ||||||
|     let mys = await MysUser.create(param.ltuid || param.ltuid_v2 || param.account_id_v2 || param.ltmid_v2) |     let mys = await MysUser.create(param.ltuid || param.ltuid_v2 || param.account_id_v2 || param.ltmid_v2) | ||||||
|     if (!mys) { |     if (!mys) { | ||||||
|       await this.e.reply('发送cookie不完整或数据错误') |       await this.e.reply('发送Cookie不完整或数据错误') | ||||||
|       return |       return | ||||||
|     } |     } | ||||||
|     let data = {} |     let data = {} | ||||||
|  | @ -92,10 +92,10 @@ export default class User extends base { | ||||||
|     /** 检查ck是否失效 */ |     /** 检查ck是否失效 */ | ||||||
|     let uidRet = await mys.reqMysUid() |     let uidRet = await mys.reqMysUid() | ||||||
|     if (uidRet.status !== 0) { |     if (uidRet.status !== 0) { | ||||||
|       logger.mark(`绑定cookie错误1:${this.checkMsg || 'cookie错误'}`) |       logger.mark(`绑定Cookie错误1:${this.checkMsg || 'Cookie错误'}`) | ||||||
|       // 清除mys数据
 |       // 清除mys数据
 | ||||||
|       mys._delCache() |       mys._delCache() | ||||||
|       return await this.e.reply(`绑定cookie失败:${this.checkMsg || 'cookie错误'}`) |       return await this.e.reply(`绑定Cookie失败:${this.checkMsg || 'Cookie错误'}`) | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     // 判断data.ltuid是否是数字
 |     // 判断data.ltuid是否是数字
 | ||||||
|  | @ -107,22 +107,23 @@ export default class User extends base { | ||||||
|         this.ltuid = userInfo.uid || this.ltuid |         this.ltuid = userInfo.uid || this.ltuid | ||||||
|         this.ck = `${this.ck}ltuid=${this.ltuid};` |         this.ck = `${this.ck}ltuid=${this.ltuid};` | ||||||
|       } else { |       } else { | ||||||
|         logger.mark(`绑定cookie错误2:${userFullInfo.message || 'cookie错误'}`) |         logger.mark(`绑定Cookie错误2:${userFullInfo.message || 'Cookie错误'}`) | ||||||
|         return await this.e.reply(`绑定cookie失败:${userFullInfo.message || 'cookie错误'}`) |         return await this.e.reply(`绑定Cookie失败:${userFullInfo.message || 'Cookie错误'}`) | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     logger.mark(`${this.e.logFnc} 检查cookie正常 [ltuid:${mys.ltuid}]`) |     logger.mark(`${this.e.logFnc} 检查Cookie正常 [ltuid:${mys.ltuid}]`) | ||||||
| 
 | 
 | ||||||
|     await user.addMysUser(mys) |     await user.addMysUser(mys) | ||||||
|     await mys.initCache() |     await mys.initCache() | ||||||
|     await user.save() |     await user.save() | ||||||
| 
 | 
 | ||||||
|     logger.mark(`${this.e.logFnc} 保存cookie成功 [ltuid:${mys.ltuid}]`) |     logger.mark(`${this.e.logFnc} 保存Cookie成功 [ltuid:${mys.ltuid}]`) | ||||||
| 
 | 
 | ||||||
|     let uidMsg = ['绑定cookie成功', mys.getUidInfo()] |     let uidMsg = ['绑定Cookie成功', mys.getUidInfo()] | ||||||
|     await this.e.reply(uidMsg.join('\n')) |     await this.e.reply(uidMsg.join('\n')) | ||||||
|     let msg = [] |     let msg = [] | ||||||
|  |     let button = [] | ||||||
|     if (mys.hasGame('gs')) { |     if (mys.hasGame('gs')) { | ||||||
|       msg.push( |       msg.push( | ||||||
|         '原神模块支持:', |         '原神模块支持:', | ||||||
|  | @ -135,6 +136,19 @@ export default class User extends base { | ||||||
|         '【#练度统计】技能统计列表', |         '【#练度统计】技能统计列表', | ||||||
|         '【#面板】【#更新面板】面板信息' |         '【#面板】【#更新面板】面板信息' | ||||||
|       ) |       ) | ||||||
|  |       button.push([ | ||||||
|  |         { text: "#uid", callback: "#uid" }, | ||||||
|  |         { text: "#我的ck", callback: "#我的ck" }, | ||||||
|  |         { text: "#删除ck", callback: "#删除ck" }, | ||||||
|  |       ],[ | ||||||
|  |         { text: "#体力", callback: "#体力" }, | ||||||
|  |         { text: "#原石", callback: "#原石" }, | ||||||
|  |         { text: "#原石统计", callback: "#原石统计" }, | ||||||
|  |       ],[ | ||||||
|  |         { text: "#练度统计", callback: "#练度统计" }, | ||||||
|  |         { text: "#面板", callback: "#面板" }, | ||||||
|  |         { text: "#更新面板", callback: "#更新面板" }, | ||||||
|  |       ]) | ||||||
|     } |     } | ||||||
|     if (mys.hasGame('sr')) { |     if (mys.hasGame('sr')) { | ||||||
|       msg.push( |       msg.push( | ||||||
|  | @ -144,8 +158,16 @@ export default class User extends base { | ||||||
|         '【*体力】体力信息', |         '【*体力】体力信息', | ||||||
|         '【*面板】【*更新面板】面板信息' |         '【*面板】【*更新面板】面板信息' | ||||||
|       ) |       ) | ||||||
|  |       button.push([ | ||||||
|  |         { text: "*uid", callback: "*uid" }, | ||||||
|  |         { text: "*删除ck", callback: "*删除ck" }, | ||||||
|  |         { text: "*体力", callback: "*体力" }, | ||||||
|  |       ],[ | ||||||
|  |         { text: "*面板", callback: "*面板" }, | ||||||
|  |         { text: "*更新面板", callback: "*更新面板" }, | ||||||
|  |       ]) | ||||||
|     } |     } | ||||||
|     msg = await common.makeForwardMsg(this.e, ['使用命令说明', msg.join('\n')], '绑定成功:使用命令说明') |     msg = await common.makeForwardMsg(this.e, [[msg.join('\n'), segment.button(...button)]], '绑定成功:使用命令说明') | ||||||
|     await this.e.reply(msg) |     await this.e.reply(msg) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  | @ -168,7 +190,7 @@ export default class User extends base { | ||||||
|     if (!mys) { |     if (!mys) { | ||||||
|       return `删除失败:当前的UID${uidData?.uid}无CK信息` |       return `删除失败:当前的UID${uidData?.uid}无CK信息` | ||||||
|     } |     } | ||||||
|     let msg = ['绑定cookie已删除', mys.getUidInfo()] |     let msg = ['绑定Cookie已删除', mys.getUidInfo()] | ||||||
|     await user.delMysUser(uidData.ltuid) |     await user.delMysUser(uidData.ltuid) | ||||||
|     return msg.join('\n') |     return msg.join('\n') | ||||||
|   } |   } | ||||||
|  | @ -188,12 +210,16 @@ export default class User extends base { | ||||||
|     let game = this.e |     let game = this.e | ||||||
|     let uidList = user.getUidList(game) |     let uidList = user.getUidList(game) | ||||||
|     if (index > uidList.length) { |     if (index > uidList.length) { | ||||||
|       return await this.e.reply('uid序号输入错误') |       return await this.e.reply(['uid序号输入错误', segment.button([ | ||||||
|  |       { text: "删除uid", input: "#删除uid" }, | ||||||
|  |     ])]) | ||||||
|     } |     } | ||||||
|     index = Number(index) - 1 |     index = Number(index) - 1 | ||||||
|     let uidObj = uidList[index] |     let uidObj = uidList[index] | ||||||
|     if (uidObj.type === 'ck') { |     if (uidObj.type === 'ck') { | ||||||
|       return await this.e.reply('CK对应UID无法直接删除,请通过【#删除ck】命令来删除') |       return await this.e.reply(['CK对应UID无法直接删除,请通过【#删除ck】命令来删除', segment.button([ | ||||||
|  |       { text: "删除ck", callback: "#删除ck" }, | ||||||
|  |     ])]) | ||||||
|     } |     } | ||||||
|     await user.delRegUid(uidObj.uid, game) |     await user.delRegUid(uidObj.uid, game) | ||||||
|     return await this.showUid() |     return await this.showUid() | ||||||
|  | @ -248,10 +274,26 @@ export default class User extends base { | ||||||
|         } |         } | ||||||
|       }) |       }) | ||||||
|     }) |     }) | ||||||
|     let e = this.e |     return this.e.reply([await this.e.runtime.render('genshin', 'html/user/uid-list', { uids }, { retType: "base64" }), segment.button([ | ||||||
|     return e.runtime.render('genshin', 'html/user/uid-list', { |       { text: "绑定UID", input: "#绑定uid" }, | ||||||
|       uids |       { text: "切换UID", input: "#uid" }, | ||||||
|     }) |       { text: "删除UID", input: "#删除uid" }, | ||||||
|  |     ],[ | ||||||
|  |       { text: "角色", callback: "#角色" }, | ||||||
|  |       { text: "探索", callback: "#探索" }, | ||||||
|  |       { text: "武器", callback: "#武器" }, | ||||||
|  |       { text: "深渊", callback: "#深渊" }, | ||||||
|  |     ],[ | ||||||
|  |       { text: "统计", callback: "#练度统计" }, | ||||||
|  |       { text: "面板", callback: "#面板" }, | ||||||
|  |       { text: "体力", callback: "#体力" }, | ||||||
|  |       { text: "原石", callback: "#原石" }, | ||||||
|  |     ],[ | ||||||
|  |       { text: "留影", callback: "#留影叙佳期" }, | ||||||
|  |       { text: "七圣", callback: "#七圣召唤查询牌组" }, | ||||||
|  |       { text: "抽卡", callback: "#抽卡记录" }, | ||||||
|  |       { text: "充值", callback: "#充值记录" }, | ||||||
|  |     ])]) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   /** 切换uid */ |   /** 切换uid */ | ||||||
|  | @ -260,7 +302,9 @@ export default class User extends base { | ||||||
|     let game = this.e |     let game = this.e | ||||||
|     let uidList = user.getUidList(game) |     let uidList = user.getUidList(game) | ||||||
|     if (index > uidList.length) { |     if (index > uidList.length) { | ||||||
|       return await this.e.reply('uid序号输入错误') |       return await this.e.reply(['uid序号输入错误', segment.button([ | ||||||
|  |         { text: "切换uid", input: "#uid" }, | ||||||
|  |       ])]) | ||||||
|     } |     } | ||||||
|     index = Number(index) - 1 |     index = Number(index) - 1 | ||||||
|     user.setMainUid(index, game) |     user.setMainUid(index, game) | ||||||
|  | @ -455,11 +499,13 @@ export default class User extends base { | ||||||
|   async myCk () { |   async myCk () { | ||||||
|     let user = await this.user() |     let user = await this.user() | ||||||
|     if (!user.hasCk) { |     if (!user.hasCk) { | ||||||
|       this.e.reply('当前尚未绑定cookie') |       this.e.reply(['当前尚未绑定Cookie', segment.button([ | ||||||
|  |         { text: "帮助", input: "#Cookie帮助" }, | ||||||
|  |       ])]) | ||||||
|     } |     } | ||||||
|     let mys = user.getMysUser(this.e) |     let mys = user.getMysUser(this.e) | ||||||
|     if (mys) { |     if (mys) { | ||||||
|       await this.e.reply(`当前绑定cookie\nuid:${mys.getUid(this.e)}`) |       await this.e.reply(`当前绑定Cookie\nuid:${mys.getUid(this.e)}`) | ||||||
|       await this.e.reply(mys.ck) |       await this.e.reply(mys.ck) | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  | @ -493,7 +539,11 @@ export default class User extends base { | ||||||
|       cks.push(`当前生效uid:${uid}\n通过【#uid】命令可查看并切换UID`) |       cks.push(`当前生效uid:${uid}\n通过【#uid】命令可查看并切换UID`) | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     await this.e.reply(cks.join('\n----\n'), false, { at: true }) |     await this.e.reply([cks.join('\n----\n'), segment.button([ | ||||||
|  |       { text: "绑定UID", input: "#绑定uid" }, | ||||||
|  |       { text: "切换UID", input: "#uid" }, | ||||||
|  |       { text: "删除UID", input: "#删除uid" }, | ||||||
|  |     ])], false, { at: true }) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   async userAdmin () { |   async userAdmin () { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue