From d713207beb8b63674a727f15bbfad55ae609dfcb Mon Sep 17 00:00:00 2001 From: kissnavel Date: Fri, 3 May 2024 15:41:18 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=9B=BD=E9=99=85?= =?UTF-8?q?=E6=9C=8D=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/genshin/model/mys/apiTool.js | 116 +++++++++++++++++---------- plugins/genshin/model/mys/mysApi.js | 8 +- plugins/genshin/model/user.js | 13 ++- 3 files changed, 89 insertions(+), 48 deletions(-) diff --git a/plugins/genshin/model/mys/apiTool.js b/plugins/genshin/model/mys/apiTool.js index 0926648..4397318 100644 --- a/plugins/genshin/model/mys/apiTool.js +++ b/plugins/genshin/model/mys/apiTool.js @@ -21,18 +21,47 @@ export default class apiTool { } } - getUrlMap = (data = {}) => { - let host, hostRecord + let host, hostRecord, hostPublicData if (['cn_gf01', 'cn_qd01', 'prod_gf_cn', 'prod_qd_cn'].includes(this.server)) { host = 'https://api-takumi.mihoyo.com/' hostRecord = 'https://api-takumi-record.mihoyo.com/' - } else if (['os_usa', 'os_euro', 'os_asia', 'os_cht'].includes(this.server)) { - host = 'https://api-os-takumi.mihoyo.com/' - hostRecord = 'https://bbs-api-os.mihoyo.com/' + hostPublicData = 'https://public-data-api.mihoyo.com/' + } else if (/os_|official/.test(this.server)) { + host = 'https://sg-public-api.hoyolab.com/' + hostRecord = 'https://bbs-api-os.hoyolab.com/' + hostPublicData = 'https://sg-public-data-api.hoyoverse.com/' } let urlMap = { genshin: { + /** 体力接口fp参数用于避开验证码 */ + ...(['cn_gf01', 'cn_qd01', 'prod_gf_cn', 'prod_qd_cn'].includes(this.server) ? { + getFp: { + url: `${hostPublicData}device-fp/api/getFp`, + body: { + seed_id: data.seed_id, + device_id: data.deviceId.toUpperCase(), + platform: '1', + seed_time: new Date().getTime() + '', + ext_fields: `{"proxyStatus":"0","accelerometer":"-0.159515x-0.830887x-0.682495","ramCapacity":"3746","IDFV":"${data.deviceId.toUpperCase()}","gyroscope":"-0.191951x-0.112927x0.632637","isJailBreak":"0","model":"iPhone12,5","ramRemain":"115","chargeStatus":"1","networkType":"WIFI","vendor":"--","osVersion":"17.0.2","batteryStatus":"50","screenSize":"414×896","cpuCores":"6","appMemory":"55","romCapacity":"488153","romRemain":"157348","cpuType":"CPU_TYPE_ARM64","magnetometer":"-84.426331x-89.708435x-37.117889"}`, + app_name: 'bbs_cn', + device_fp: '38d7ee834d1e9' + } + } + } : { + getFp: { + url: `${hostPublicData}device-fp/api/getFp`, + body: { + seed_id: data.seed_id, + device_id: data.deviceId.toUpperCase(), + platform: '1', + seed_time: new Date().getTime() + '', + ext_fields: `{"proxyStatus":"0","accelerometer":"-0.159515x-0.830887x-0.682495","ramCapacity":"3746","IDFV":"${data.deviceId.toUpperCase()}","gyroscope":"-0.191951x-0.112927x0.632637","isJailBreak":"0","model":"iPhone12,5","ramRemain":"115","chargeStatus":"1","networkType":"WIFI","vendor":"--","osVersion":"17.0.2","batteryStatus":"50","screenSize":"414×896","cpuCores":"6","appMemory":"55","romCapacity":"488153","romRemain":"157348","cpuType":"CPU_TYPE_ARM64","magnetometer":"-84.426331x-89.708435x-37.117889"}`, + app_name: 'hk4e_global', + device_fp: '38d7ee834d1e9' + } + } + }), /** 首页宝箱 */ index: { url: `${hostRecord}game_record/app/genshin/api/index`, @@ -106,22 +135,46 @@ export default class apiTool { useCdk: { url: 'PLACE_HOLDER', query: null - }, - /** 体力接口fp参数用于避开验证码 */ - getFp: { - url: `https://public-data-api.mihoyo.com/device-fp/api/getFp`, - body: { - seed_id: data.seed_id, - device_id: data.deviceId.toUpperCase(), - platform: '1', - seed_time: new Date().getTime() + '', - ext_fields: `{"proxyStatus":"0","accelerometer":"-0.159515x-0.830887x-0.682495","ramCapacity":"3746","IDFV":"${data.deviceId.toUpperCase()}","gyroscope":"-0.191951x-0.112927x0.632637","isJailBreak":"0","model":"iPhone12,5","ramRemain":"115","chargeStatus":"1","networkType":"WIFI","vendor":"--","osVersion":"17.0.2","batteryStatus":"50","screenSize":"414×896","cpuCores":"6","appMemory":"55","romCapacity":"488153","romRemain":"157348","cpuType":"CPU_TYPE_ARM64","magnetometer":"-84.426331x-89.708435x-37.117889"}`, - app_name: 'bbs_cn', - device_fp: '38d7ee834d1e9' - }, } }, honkaisr: { + ...(['cn_gf01', 'cn_qd01', 'prod_gf_cn', 'prod_qd_cn'].includes(this.server) ? { + UserGame: { + url: `${host}binding/api/getUserGameRolesByCookie`, + query: `game_biz=hkrpg_cn` + }, + /** 体力接口fp参数用于避开验证码 */ + getFp: { + url: `${hostPublicData}device-fp/api/getFp`, + body: { + seed_id: data.seed_id, + device_id: data.deviceId, + platform: '1', + seed_time: new Date().getTime() + '', + ext_fields: '{"proxyStatus":"0","accelerometer":"-0.159515x-0.830887x-0.682495","ramCapacity":"3746","IDFV":"8F4E403B-4C28-4F7F-B740-2DD317948B8A","gyroscope":"-0.191951x-0.112927x0.632637","isJailBreak":"0","model":"iPhone12,5","ramRemain":"115","chargeStatus":"1","networkType":"WIFI","vendor":"--","osVersion":"17.0.2","batteryStatus":"50","screenSize":"414×896","cpuCores":"6","appMemory":"55","romCapacity":"488153","romRemain":"157348","cpuType":"CPU_TYPE_ARM64","magnetometer":"-84.426331x-89.708435x-37.117889"}', + app_name: 'bbs_cn', + device_fp: '38d7ee834d1e9' + } + } + } : { + UserGame: { + url: `${host}binding/api/getUserGameRolesByCookie`, + query: `game_biz=hkrpg_global` + }, + /** 体力接口fp参数用于避开验证码 */ + getFp: { + url: `${hostPublicData}device-fp/api/getFp`, + body: { + seed_id: data.seed_id, + device_id: data.deviceId, + platform: '1', + seed_time: new Date().getTime() + '', + ext_fields: '{"proxyStatus":"0","accelerometer":"-0.159515x-0.830887x-0.682495","ramCapacity":"3746","IDFV":"8F4E403B-4C28-4F7F-B740-2DD317948B8A","gyroscope":"-0.191951x-0.112927x0.632637","isJailBreak":"0","model":"iPhone12,5","ramRemain":"115","chargeStatus":"1","networkType":"WIFI","vendor":"--","osVersion":"17.0.2","batteryStatus":"50","screenSize":"414×896","cpuCores":"6","appMemory":"55","romCapacity":"488153","romRemain":"157348","cpuType":"CPU_TYPE_ARM64","magnetometer":"-84.426331x-89.708435x-37.117889"}', + app_name: 'hkrpg_global', + device_fp: '38d7ee834d1e9' + } + } + }), /** 首页宝箱 */ index: { url: `${hostRecord}game_record/app/hkrpg/api/index`, @@ -131,10 +184,6 @@ export default class apiTool { url: `${hostRecord}game_record/app/hkrpg/api/role/basicInfo`, query: `role_id=${this.uid}&server=${this.server}` }, - UserGame: { - url: `${host}binding/api/getUserGameRolesByCookie`, - query: `game_biz=hkrpg_cn` - }, /** 深渊 (混沌回忆) */ spiralAbyss: { url: `${hostRecord}game_record/app/hkrpg/api/challenge`, @@ -144,25 +193,10 @@ export default class apiTool { url: `${hostRecord}game_record/app/hkrpg/api/avatar/info`, query: `need_wiki=true&role_id=${this.uid}&server=${this.server}` }, - /** 体力接口fp参数用于避开验证码 */ - getFp: { - url: `https://public-data-api.mihoyo.com/device-fp/api/getFp`, - body: { - seed_id: data.seed_id, - device_id: data.deviceId, - platform: '1', - seed_time: new Date().getTime() + '', - ext_fields: '{"proxyStatus":"0","accelerometer":"-0.159515x-0.830887x-0.682495","ramCapacity":"3746","IDFV":"8F4E403B-4C28-4F7F-B740-2DD317948B8A","gyroscope":"-0.191951x-0.112927x0.632637","isJailBreak":"0","model":"iPhone12,5","ramRemain":"115","chargeStatus":"1","networkType":"WIFI","vendor":"--","osVersion":"17.0.2","batteryStatus":"50","screenSize":"414×896","cpuCores":"6","appMemory":"55","romCapacity":"488153","romRemain":"157348","cpuType":"CPU_TYPE_ARM64","magnetometer":"-84.426331x-89.708435x-37.117889"}', - app_name: 'bbs_cn', - device_fp: '38d7ee834d1e9' - }, - }, - /** - * 开拓阅历接口 - */ + /** 开拓阅历接口 */ ys_ledger: { url: `${host}event/srledger/month_info`, - query: `region=${this.server}&uid=${this.uid}&month=${data.month}` + query: `lang=zh-cn®ion=${this.server}&uid=${this.uid}&month=${data.month}` }, /** 角色详情 */ character: { @@ -198,11 +232,11 @@ export default class apiTool { urlMap.genshin.blueprint.query = `share_code=${data.share_code}®ion=${this.server}&lang=zh-cn` urlMap.genshin.blueprintCompute.url = 'https://sg-public-api.hoyolab.com/event/calculateos/furniture/compute' urlMap.genshin.blueprintCompute.body = { lang: 'zh-cn', ...data.body } - urlMap.genshin.ys_ledger.url = 'https://hk4e-api-os.mihoyo.com/event/ysledgeros/month_info'// 支持了国际服札记 + urlMap.genshin.ys_ledger.url = 'https://sg-hk4e-api.hoyolab.com/event/ysledgeros/month_info'// 支持了国际服札记 urlMap.genshin.ys_ledger.query = `lang=zh-cn&month=${data.month}&uid=${this.uid}®ion=${this.server}` urlMap.genshin.useCdk.url = 'https://sg-hk4e-api.hoyoverse.com/common/apicdkey/api/webExchangeCdkey' urlMap.genshin.useCdk.query = `uid=${this.uid}®ion=${this.server}&lang=zh-cn&cdkey=${data.cdk}&game_biz=hk4e_global` } return urlMap[this.game] } -} +} \ No newline at end of file diff --git a/plugins/genshin/model/mys/mysApi.js b/plugins/genshin/model/mys/mysApi.js index 8db4c00..b6c91b7 100644 --- a/plugins/genshin/model/mys/mysApi.js +++ b/plugins/genshin/model/mys/mysApi.js @@ -141,7 +141,7 @@ export default class MysApi { const cn = { app_version: '2.40.1', User_Agent: `Mozilla/5.0 (Linux; Android 12; ${this.device}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.73 Mobile Safari/537.36 miHoYoBBS/2.40.1`, - client_type: 5, + client_type: '5', Origin: 'https://webstatic.mihoyo.com', X_Requested_With: 'com.mihoyo.hyperion', Referer: 'https://webstatic.mihoyo.com' @@ -155,7 +155,7 @@ export default class MysApi { Referer: 'https://webstatic-sea.hoyolab.com' } let client - if (this.server.startsWith('os')) { + if (/os_|official/.test(this.server)) { client = os } else { client = cn @@ -204,7 +204,7 @@ export default class MysApi { if (!proxyAddress) return null if (proxyAddress === 'http://0.0.0.0:0') return null - if (!this.server.startsWith('os')) return null + if (!/os_|official/.test(this.server)) return null if (HttpsProxyAgent === '') { HttpsProxyAgent = await import('https-proxy-agent').catch((err) => { @@ -229,4 +229,4 @@ export default class MysApi { } return result } -} +} \ No newline at end of file diff --git a/plugins/genshin/model/user.js b/plugins/genshin/model/user.js index 29568e5..1cf7a2b 100644 --- a/plugins/genshin/model/user.js +++ b/plugins/genshin/model/user.js @@ -133,7 +133,7 @@ export default class User extends base { '【#体力】查询当前树脂', '【#原石】查看原石札记', '【#原石统计】原石统计数据', - '【#练度统计】技能统计列表', + '【#练度统计】角色列表数据', '【#面板】【#更新面板】面板信息' ) button.push([ @@ -155,13 +155,20 @@ export default class User extends base { '星穹铁道支持:', '【*uid】当前绑定ck uid列表', '【*删除ck】删除当前绑定ck', - '【*体力】体力信息', + '【*体力】查询当前开拓力', + '【*星琼】查看星琼月历', + '【*星琼统计】星琼统计数据', + '【*练度统计】角色列表数据', '【*面板】【*更新面板】面板信息' ) button.push([ { text: '*uid', callback: '*uid' }, { text: '*删除ck', callback: '*删除ck' }, { text: '*体力', callback: '*体力' } + ], [ + { text: '*星琼', callback: '*星琼' }, + { text: '*星琼统计', callback: '*星琼统计' }, + { text: '*练度统计', callback: '*练度统计' } ], [ { text: '*面板', callback: '*面板' }, { text: '*更新面板', callback: '*更新面板' } @@ -653,4 +660,4 @@ export default class User extends base { `#绑定主用户[${id}]`].join('\n')) } } -} +} \ No newline at end of file From 2d257f856a4b38fb80701ce74ca06ff293483386 Mon Sep 17 00:00:00 2001 From: kissnavel Date: Sat, 4 May 2024 18:07:17 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=98=9F=E9=93=81fp?= =?UTF-8?q?=E9=81=BF=E5=BC=80=E9=AA=8C=E8=AF=81=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/genshin/model/mys/apiTool.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/genshin/model/mys/apiTool.js b/plugins/genshin/model/mys/apiTool.js index 4397318..1e1be45 100644 --- a/plugins/genshin/model/mys/apiTool.js +++ b/plugins/genshin/model/mys/apiTool.js @@ -148,10 +148,10 @@ export default class apiTool { url: `${hostPublicData}device-fp/api/getFp`, body: { seed_id: data.seed_id, - device_id: data.deviceId, + device_id: data.deviceId.toUpperCase(), platform: '1', seed_time: new Date().getTime() + '', - ext_fields: '{"proxyStatus":"0","accelerometer":"-0.159515x-0.830887x-0.682495","ramCapacity":"3746","IDFV":"8F4E403B-4C28-4F7F-B740-2DD317948B8A","gyroscope":"-0.191951x-0.112927x0.632637","isJailBreak":"0","model":"iPhone12,5","ramRemain":"115","chargeStatus":"1","networkType":"WIFI","vendor":"--","osVersion":"17.0.2","batteryStatus":"50","screenSize":"414×896","cpuCores":"6","appMemory":"55","romCapacity":"488153","romRemain":"157348","cpuType":"CPU_TYPE_ARM64","magnetometer":"-84.426331x-89.708435x-37.117889"}', + ext_fields: `{"proxyStatus":"0","accelerometer":"-0.159515x-0.830887x-0.682495","ramCapacity":"3746","IDFV":"${data.deviceId.toUpperCase()}","gyroscope":"-0.191951x-0.112927x0.632637","isJailBreak":"0","model":"iPhone12,5","ramRemain":"115","chargeStatus":"1","networkType":"WIFI","vendor":"--","osVersion":"17.0.2","batteryStatus":"50","screenSize":"414×896","cpuCores":"6","appMemory":"55","romCapacity":"488153","romRemain":"157348","cpuType":"CPU_TYPE_ARM64","magnetometer":"-84.426331x-89.708435x-37.117889"}`, app_name: 'bbs_cn', device_fp: '38d7ee834d1e9' } @@ -166,10 +166,10 @@ export default class apiTool { url: `${hostPublicData}device-fp/api/getFp`, body: { seed_id: data.seed_id, - device_id: data.deviceId, + device_id: data.deviceId.toUpperCase(), platform: '1', seed_time: new Date().getTime() + '', - ext_fields: '{"proxyStatus":"0","accelerometer":"-0.159515x-0.830887x-0.682495","ramCapacity":"3746","IDFV":"8F4E403B-4C28-4F7F-B740-2DD317948B8A","gyroscope":"-0.191951x-0.112927x0.632637","isJailBreak":"0","model":"iPhone12,5","ramRemain":"115","chargeStatus":"1","networkType":"WIFI","vendor":"--","osVersion":"17.0.2","batteryStatus":"50","screenSize":"414×896","cpuCores":"6","appMemory":"55","romCapacity":"488153","romRemain":"157348","cpuType":"CPU_TYPE_ARM64","magnetometer":"-84.426331x-89.708435x-37.117889"}', + ext_fields: `{"proxyStatus":"0","accelerometer":"-0.159515x-0.830887x-0.682495","ramCapacity":"3746","IDFV":"${data.deviceId.toUpperCase()}","gyroscope":"-0.191951x-0.112927x0.632637","isJailBreak":"0","model":"iPhone12,5","ramRemain":"115","chargeStatus":"1","networkType":"WIFI","vendor":"--","osVersion":"17.0.2","batteryStatus":"50","screenSize":"414×896","cpuCores":"6","appMemory":"55","romCapacity":"488153","romRemain":"157348","cpuType":"CPU_TYPE_ARM64","magnetometer":"-84.426331x-89.708435x-37.117889"}`, app_name: 'hkrpg_global', device_fp: '38d7ee834d1e9' } From f5de75f47e22820e5723feb26917272b8f2cb9ef Mon Sep 17 00:00:00 2001 From: kissnavel Date: Sun, 5 May 2024 18:45:56 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/genshin/model/mys/MysUser.js | 7 +++---- plugins/genshin/model/mys/apiTool.js | 4 ++-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/plugins/genshin/model/mys/MysUser.js b/plugins/genshin/model/mys/MysUser.js index d77dada..f7e4957 100644 --- a/plugins/genshin/model/mys/MysUser.js +++ b/plugins/genshin/model/mys/MysUser.js @@ -348,7 +348,7 @@ export default class MysUser extends BaseModel { let ck = this.ck let url = { mys: 'https://api-takumi.mihoyo.com/binding/api/getUserGameRolesByCookie', - hoyolab: 'https://api-os-takumi.mihoyo.com/binding/api/getUserGameRolesByCookie' + hoyolab: 'https://sg-public-api.hoyolab.com/binding/api/getUserGameRolesByCookie' } let res = await fetch(url[serv], { method: 'get', headers: { Cookie: ck } }) @@ -373,7 +373,7 @@ export default class MysUser extends BaseModel { Connection: 'keep-alive', Host: 'bbs-api.mihoyo.com', Origin: 'https://m.bbs.mihoyo.com', - Referer: ' https://m.bbs.mihoyo.com/' + Referer: 'https://m.bbs.mihoyo.com/' } }) if (!res.ok) return res @@ -395,7 +395,6 @@ export default class MysUser extends BaseModel { return cache[game] } - // 初始化数据 async initDB(db = false) { if (this.db && !db) { @@ -549,4 +548,4 @@ export default class MysUser extends BaseModel { let uids = this.uids[gameKey] return uids.includes(uid + '') } -} +} \ No newline at end of file diff --git a/plugins/genshin/model/mys/apiTool.js b/plugins/genshin/model/mys/apiTool.js index 1e1be45..b31ad21 100644 --- a/plugins/genshin/model/mys/apiTool.js +++ b/plugins/genshin/model/mys/apiTool.js @@ -35,7 +35,7 @@ export default class apiTool { let urlMap = { genshin: { /** 体力接口fp参数用于避开验证码 */ - ...(['cn_gf01', 'cn_qd01', 'prod_gf_cn', 'prod_qd_cn'].includes(this.server) ? { + ...(['cn_gf01', 'cn_qd01'].includes(this.server) ? { getFp: { url: `${hostPublicData}device-fp/api/getFp`, body: { @@ -138,7 +138,7 @@ export default class apiTool { } }, honkaisr: { - ...(['cn_gf01', 'cn_qd01', 'prod_gf_cn', 'prod_qd_cn'].includes(this.server) ? { + ...(['prod_gf_cn', 'prod_qd_cn'].includes(this.server) ? { UserGame: { url: `${host}binding/api/getUserGameRolesByCookie`, query: `game_biz=hkrpg_cn` From 81a60e782eece5446651c0813f2901168882f77e Mon Sep 17 00:00:00 2001 From: kissnavel Date: Fri, 24 May 2024 21:02:25 +0800 Subject: [PATCH 4/8] =?UTF-8?q?fix:=E5=9B=BD=E9=99=85=E6=9C=8D=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E2=80=9C*=E6=98=9F=E7=90=BC/*=E6=98=9F=E7=90=BC?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E2=80=9D=E6=8A=A5=E9=94=99ck=E5=A4=B1?= =?UTF-8?q?=E6=95=88=E5=B9=B6=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/genshin/model/mys/apiTool.js | 23 ++++++++++++++--------- plugins/genshin/model/mys/mysApi.js | 10 +++++----- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/plugins/genshin/model/mys/apiTool.js b/plugins/genshin/model/mys/apiTool.js index b31ad21..67f5e8d 100644 --- a/plugins/genshin/model/mys/apiTool.js +++ b/plugins/genshin/model/mys/apiTool.js @@ -54,11 +54,11 @@ export default class apiTool { body: { seed_id: data.seed_id, device_id: data.deviceId.toUpperCase(), - platform: '1', + platform: '5', seed_time: new Date().getTime() + '', - ext_fields: `{"proxyStatus":"0","accelerometer":"-0.159515x-0.830887x-0.682495","ramCapacity":"3746","IDFV":"${data.deviceId.toUpperCase()}","gyroscope":"-0.191951x-0.112927x0.632637","isJailBreak":"0","model":"iPhone12,5","ramRemain":"115","chargeStatus":"1","networkType":"WIFI","vendor":"--","osVersion":"17.0.2","batteryStatus":"50","screenSize":"414×896","cpuCores":"6","appMemory":"55","romCapacity":"488153","romRemain":"157348","cpuType":"CPU_TYPE_ARM64","magnetometer":"-84.426331x-89.708435x-37.117889"}`, + ext_fields: '{"userAgent":"Mozilla/5.0 (Linux; Android 11; J9110 Build/55.2.A.4.332; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/124.0.6367.179 Mobile Safari/537.36 miHoYoBBSOversea/2.55.0","browserScreenSize":"387904","maxTouchPoints":"5","isTouchSupported":"1","browserLanguage":"zh-CN","browserPlat":"Linux aarch64","browserTimeZone":"Asia/Shanghai","webGlRender":"Adreno (TM) 640","webGlVendor":"Qualcomm","numOfPlugins":"0","listOfPlugins":"unknown","screenRatio":"2.625","deviceMemory":"4","hardwareConcurrency":"8","cpuClass":"unknown","ifNotTrack":"unknown","ifAdBlock":"0","hasLiedLanguage":"0","hasLiedResolution":"1","hasLiedOs":"0","hasLiedBrowser":"0","canvas":"cabdb93b92180946a97fda15f2b7308069b48b51ff90808bd303d3f18d06e2be","webDriver":"0","colorDepth":"24","pixelRatio":"2.625","packageName":"unknown","packageVersion":"2.27.0","webgl":"6dc666a7a001b1bbc2403ad4fc095a4f3202215efc85fd39a7c5fc79d3603c79"}', app_name: 'hk4e_global', - device_fp: '38d7ee834d1e9' + device_fp: '38d7f2364db95' } } }), @@ -167,11 +167,11 @@ export default class apiTool { body: { seed_id: data.seed_id, device_id: data.deviceId.toUpperCase(), - platform: '1', + platform: '5', seed_time: new Date().getTime() + '', - ext_fields: `{"proxyStatus":"0","accelerometer":"-0.159515x-0.830887x-0.682495","ramCapacity":"3746","IDFV":"${data.deviceId.toUpperCase()}","gyroscope":"-0.191951x-0.112927x0.632637","isJailBreak":"0","model":"iPhone12,5","ramRemain":"115","chargeStatus":"1","networkType":"WIFI","vendor":"--","osVersion":"17.0.2","batteryStatus":"50","screenSize":"414×896","cpuCores":"6","appMemory":"55","romCapacity":"488153","romRemain":"157348","cpuType":"CPU_TYPE_ARM64","magnetometer":"-84.426331x-89.708435x-37.117889"}`, + ext_fields: '{"userAgent":"Mozilla/5.0 (Linux; Android 11; J9110 Build/55.2.A.4.332; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/124.0.6367.179 Mobile Safari/537.36 miHoYoBBSOversea/2.55.0","browserScreenSize":"387904","maxTouchPoints":"5","isTouchSupported":"1","browserLanguage":"zh-CN","browserPlat":"Linux aarch64","browserTimeZone":"Asia/Shanghai","webGlRender":"Adreno (TM) 640","webGlVendor":"Qualcomm","numOfPlugins":"0","listOfPlugins":"unknown","screenRatio":"2.625","deviceMemory":"4","hardwareConcurrency":"8","cpuClass":"unknown","ifNotTrack":"unknown","ifAdBlock":"0","hasLiedLanguage":"0","hasLiedResolution":"1","hasLiedOs":"0","hasLiedBrowser":"0","canvas":"cabdb93b92180946a97fda15f2b7308069b48b51ff90808bd303d3f18d06e2be","webDriver":"0","colorDepth":"24","pixelRatio":"2.625","packageName":"unknown","packageVersion":"2.27.0","webgl":"6dc666a7a001b1bbc2403ad4fc095a4f3202215efc85fd39a7c5fc79d3603c79"}', app_name: 'hkrpg_global', - device_fp: '38d7ee834d1e9' + device_fp: '38d7f2364db95' } } }), @@ -193,10 +193,10 @@ export default class apiTool { url: `${hostRecord}game_record/app/hkrpg/api/avatar/info`, query: `need_wiki=true&role_id=${this.uid}&server=${this.server}` }, - /** 开拓阅历接口 */ + /** 开拓月历接口 */ ys_ledger: { - url: `${host}event/srledger/month_info`, - query: `lang=zh-cn®ion=${this.server}&uid=${this.uid}&month=${data.month}` + url: 'https://api-takumi.mihoyo.com/event/srledger/month_info', + query: `region=${this.server}&uid=${this.uid}&month=${data.month}` }, /** 角色详情 */ character: { @@ -237,6 +237,11 @@ export default class apiTool { urlMap.genshin.useCdk.url = 'https://sg-hk4e-api.hoyoverse.com/common/apicdkey/api/webExchangeCdkey' urlMap.genshin.useCdk.query = `uid=${this.uid}®ion=${this.server}&lang=zh-cn&cdkey=${data.cdk}&game_biz=hk4e_global` } + + if (this.isSr&&this.server.includes('official')) { + urlMap.honkaisr.ys_ledger.url = 'https://sg-public-api.hoyolab.com/event/srledger/month_info'// 区分国际服开拓月历 + urlMap.honkaisr.ys_ledger.query = `lang=zh-cn&uid=${this.uid}®ion=${this.server}&month=${data.month}` + } return urlMap[this.game] } } \ No newline at end of file diff --git a/plugins/genshin/model/mys/mysApi.js b/plugins/genshin/model/mys/mysApi.js index b6c91b7..20684c4 100644 --- a/plugins/genshin/model/mys/mysApi.js +++ b/plugins/genshin/model/mys/mysApi.js @@ -144,15 +144,15 @@ export default class MysApi { client_type: '5', Origin: 'https://webstatic.mihoyo.com', X_Requested_With: 'com.mihoyo.hyperion', - Referer: 'https://webstatic.mihoyo.com' + Referer: 'https://webstatic.mihoyo.com/' } const os = { - app_version: '2.9.0', - User_Agent: `Mozilla/5.0 (Linux; Android 12; ${this.device}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.73 Mobile Safari/537.36 miHoYoBBSOversea/2.9.0`, + app_version: '2.55.0', + User_Agent: 'Mozilla/5.0 (Linux; Android 11; J9110 Build/55.2.A.4.332; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/124.0.6367.179 Mobile Safari/537.36 miHoYoBBSOversea/2.55.0', client_type: '2', - Origin: 'https://webstatic-sea.hoyolab.com', + Origin: 'https://act.hoyolab.com', X_Requested_With: 'com.mihoyo.hoyolab', - Referer: 'https://webstatic-sea.hoyolab.com' + Referer: 'https://act.hoyolab.com/' } let client if (/os_|official/.test(this.server)) { From 55f8d069f35c75f4fa65e08b6b83ab775cea28db Mon Sep 17 00:00:00 2001 From: kissnavel Date: Sat, 25 May 2024 00:58:51 +0800 Subject: [PATCH 5/8] =?UTF-8?q?canvas=E5=92=8Cwebgl=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E9=9A=8F=E6=9C=BA=E5=AD=97=E7=AC=A6=E4=B8=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/genshin/model/mys/apiTool.js | 5 +++-- plugins/genshin/model/mys/mysApi.js | 10 ++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/plugins/genshin/model/mys/apiTool.js b/plugins/genshin/model/mys/apiTool.js index 67f5e8d..189237e 100644 --- a/plugins/genshin/model/mys/apiTool.js +++ b/plugins/genshin/model/mys/apiTool.js @@ -1,3 +1,4 @@ +import { randomRange } from './mysApi.js' /** * 整合接口用于查询数据 * 方便后续用于解耦 @@ -56,7 +57,7 @@ export default class apiTool { device_id: data.deviceId.toUpperCase(), platform: '5', seed_time: new Date().getTime() + '', - ext_fields: '{"userAgent":"Mozilla/5.0 (Linux; Android 11; J9110 Build/55.2.A.4.332; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/124.0.6367.179 Mobile Safari/537.36 miHoYoBBSOversea/2.55.0","browserScreenSize":"387904","maxTouchPoints":"5","isTouchSupported":"1","browserLanguage":"zh-CN","browserPlat":"Linux aarch64","browserTimeZone":"Asia/Shanghai","webGlRender":"Adreno (TM) 640","webGlVendor":"Qualcomm","numOfPlugins":"0","listOfPlugins":"unknown","screenRatio":"2.625","deviceMemory":"4","hardwareConcurrency":"8","cpuClass":"unknown","ifNotTrack":"unknown","ifAdBlock":"0","hasLiedLanguage":"0","hasLiedResolution":"1","hasLiedOs":"0","hasLiedBrowser":"0","canvas":"cabdb93b92180946a97fda15f2b7308069b48b51ff90808bd303d3f18d06e2be","webDriver":"0","colorDepth":"24","pixelRatio":"2.625","packageName":"unknown","packageVersion":"2.27.0","webgl":"6dc666a7a001b1bbc2403ad4fc095a4f3202215efc85fd39a7c5fc79d3603c79"}', + ext_fields: `{"userAgent":"Mozilla/5.0 (Linux; Android 11; J9110 Build/55.2.A.4.332; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/124.0.6367.179 Mobile Safari/537.36 miHoYoBBSOversea/2.55.0","browserScreenSize":"387904","maxTouchPoints":"5","isTouchSupported":"1","browserLanguage":"zh-CN","browserPlat":"Linux aarch64","browserTimeZone":"Asia/Shanghai","webGlRender":"Adreno (TM) 640","webGlVendor":"Qualcomm","numOfPlugins":"0","listOfPlugins":"unknown","screenRatio":"2.625","deviceMemory":"4","hardwareConcurrency":"8","cpuClass":"unknown","ifNotTrack":"unknown","ifAdBlock":"0","hasLiedLanguage":"0","hasLiedResolution":"1","hasLiedOs":"0","hasLiedBrowser":"0","canvas":"${randomRange()}","webDriver":"0","colorDepth":"24","pixelRatio":"2.625","packageName":"unknown","packageVersion":"2.27.0","webgl":"${randomRange()}"}`, app_name: 'hk4e_global', device_fp: '38d7f2364db95' } @@ -169,7 +170,7 @@ export default class apiTool { device_id: data.deviceId.toUpperCase(), platform: '5', seed_time: new Date().getTime() + '', - ext_fields: '{"userAgent":"Mozilla/5.0 (Linux; Android 11; J9110 Build/55.2.A.4.332; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/124.0.6367.179 Mobile Safari/537.36 miHoYoBBSOversea/2.55.0","browserScreenSize":"387904","maxTouchPoints":"5","isTouchSupported":"1","browserLanguage":"zh-CN","browserPlat":"Linux aarch64","browserTimeZone":"Asia/Shanghai","webGlRender":"Adreno (TM) 640","webGlVendor":"Qualcomm","numOfPlugins":"0","listOfPlugins":"unknown","screenRatio":"2.625","deviceMemory":"4","hardwareConcurrency":"8","cpuClass":"unknown","ifNotTrack":"unknown","ifAdBlock":"0","hasLiedLanguage":"0","hasLiedResolution":"1","hasLiedOs":"0","hasLiedBrowser":"0","canvas":"cabdb93b92180946a97fda15f2b7308069b48b51ff90808bd303d3f18d06e2be","webDriver":"0","colorDepth":"24","pixelRatio":"2.625","packageName":"unknown","packageVersion":"2.27.0","webgl":"6dc666a7a001b1bbc2403ad4fc095a4f3202215efc85fd39a7c5fc79d3603c79"}', + ext_fields: `{"userAgent":"Mozilla/5.0 (Linux; Android 11; J9110 Build/55.2.A.4.332; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/124.0.6367.179 Mobile Safari/537.36 miHoYoBBSOversea/2.55.0","browserScreenSize":"387904","maxTouchPoints":"5","isTouchSupported":"1","browserLanguage":"zh-CN","browserPlat":"Linux aarch64","browserTimeZone":"Asia/Shanghai","webGlRender":"Adreno (TM) 640","webGlVendor":"Qualcomm","numOfPlugins":"0","listOfPlugins":"unknown","screenRatio":"2.625","deviceMemory":"4","hardwareConcurrency":"8","cpuClass":"unknown","ifNotTrack":"unknown","ifAdBlock":"0","hasLiedLanguage":"0","hasLiedResolution":"1","hasLiedOs":"0","hasLiedBrowser":"0","canvas":"${randomRange()}","webDriver":"0","colorDepth":"24","pixelRatio":"2.625","packageName":"unknown","packageVersion":"2.27.0","webgl":"${randomRange()}"}`, app_name: 'hkrpg_global', device_fp: '38d7f2364db95' } diff --git a/plugins/genshin/model/mys/mysApi.js b/plugins/genshin/model/mys/mysApi.js index 20684c4..5890f6f 100644 --- a/plugins/genshin/model/mys/mysApi.js +++ b/plugins/genshin/model/mys/mysApi.js @@ -229,4 +229,14 @@ export default class MysApi { } return result } +} + +export function randomRange() { + let randomStr = '' + let charStr = 'abcdef0123456789' + for (let i = 0; i < 64; i++) { + let index = Math.round(Math.random() * (charStr.length - 1)) + randomStr += charStr.substring(index, index + 1) + } + return randomStr } \ No newline at end of file From 991086a20101ce904a6618e0f3e42046bd8137ef Mon Sep 17 00:00:00 2001 From: kissnavel Date: Thu, 30 May 2024 21:14:49 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/genshin/model/mys/apiTool.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/genshin/model/mys/apiTool.js b/plugins/genshin/model/mys/apiTool.js index 189237e..447c7b7 100644 --- a/plugins/genshin/model/mys/apiTool.js +++ b/plugins/genshin/model/mys/apiTool.js @@ -95,7 +95,7 @@ export default class apiTool { }, /** 养成计算器 */ compute: { - url: `${host}event/e20200928calculate/v2/compute`, + url: `${host}event/e20200928calculate/v3/batch_compute`, body: data.body }, blueprintCompute: { From 0688902bcc938e5660f74eab5ad1e763d50dc507 Mon Sep 17 00:00:00 2001 From: kissnavel Date: Sun, 2 Jun 2024 03:21:36 +0800 Subject: [PATCH 7/8] =?UTF-8?q?fix:ck=E6=9C=89=E5=A4=9A=E4=B8=AAuid?= =?UTF-8?q?=E6=97=B6=E6=98=9F=E9=93=81=E4=BD=93=E5=8A=9B=E7=9A=84=E6=98=B5?= =?UTF-8?q?=E7=A7=B0=E5=92=8C=E7=AD=89=E7=BA=A7=E8=8E=B7=E5=8F=96=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/genshin/model/mys/apiTool.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/genshin/model/mys/apiTool.js b/plugins/genshin/model/mys/apiTool.js index 447c7b7..556d6b5 100644 --- a/plugins/genshin/model/mys/apiTool.js +++ b/plugins/genshin/model/mys/apiTool.js @@ -142,7 +142,7 @@ export default class apiTool { ...(['prod_gf_cn', 'prod_qd_cn'].includes(this.server) ? { UserGame: { url: `${host}binding/api/getUserGameRolesByCookie`, - query: `game_biz=hkrpg_cn` + query: `game_biz=hkrpg_cn®ion=${this.server}&game_uid=${this.uid}` }, /** 体力接口fp参数用于避开验证码 */ getFp: { @@ -160,7 +160,7 @@ export default class apiTool { } : { UserGame: { url: `${host}binding/api/getUserGameRolesByCookie`, - query: `game_biz=hkrpg_global` + query: `game_biz=hkrpg_global®ion=${this.server}&game_uid=${this.uid}` }, /** 体力接口fp参数用于避开验证码 */ getFp: { From b1d19f69975b52a413ff937ffaa1d1ca8a5bb518 Mon Sep 17 00:00:00 2001 From: kissnavel Date: Sun, 2 Jun 2024 22:04:03 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E5=9B=9E=E9=80=80=E9=83=A8=E5=88=86?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/genshin/model/mys/apiTool.js | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/plugins/genshin/model/mys/apiTool.js b/plugins/genshin/model/mys/apiTool.js index 556d6b5..b7008d1 100644 --- a/plugins/genshin/model/mys/apiTool.js +++ b/plugins/genshin/model/mys/apiTool.js @@ -196,8 +196,8 @@ export default class apiTool { }, /** 开拓月历接口 */ ys_ledger: { - url: 'https://api-takumi.mihoyo.com/event/srledger/month_info', - query: `region=${this.server}&uid=${this.uid}&month=${data.month}` + url: `${host}event/srledger/month_info`, + query: `lang=zh-cn®ion=${this.server}&uid=${this.uid}&month=${data.month}` }, /** 角色详情 */ character: { @@ -238,11 +238,6 @@ export default class apiTool { urlMap.genshin.useCdk.url = 'https://sg-hk4e-api.hoyoverse.com/common/apicdkey/api/webExchangeCdkey' urlMap.genshin.useCdk.query = `uid=${this.uid}®ion=${this.server}&lang=zh-cn&cdkey=${data.cdk}&game_biz=hk4e_global` } - - if (this.isSr&&this.server.includes('official')) { - urlMap.honkaisr.ys_ledger.url = 'https://sg-public-api.hoyolab.com/event/srledger/month_info'// 区分国际服开拓月历 - urlMap.honkaisr.ys_ledger.query = `lang=zh-cn&uid=${this.uid}®ion=${this.server}&month=${data.month}` - } return urlMap[this.game] } } \ No newline at end of file