From 24619590992c65135018a44f38e050def2affaac Mon Sep 17 00:00:00 2001 From: pengyunfei Date: Wed, 3 Apr 2024 10:11:39 +0800 Subject: [PATCH] Fix API method case and add day parameter to ranking API --- src/background/messageListeners/auth.ts | 2 +- src/background/messageListeners/ranking.ts | 1 + src/background/utils.ts | 12 +++++++----- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/background/messageListeners/auth.ts b/src/background/messageListeners/auth.ts index 1d149975..b50caa3f 100644 --- a/src/background/messageListeners/auth.ts +++ b/src/background/messageListeners/auth.ts @@ -7,7 +7,7 @@ const API_AUTH: APIMAP = { logout: { url: 'https://passport.bilibili.com/login/exit/v2', _fetch: { - method: 'POST', + method: 'post', headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8', }, diff --git a/src/background/messageListeners/ranking.ts b/src/background/messageListeners/ranking.ts index f4fcd4eb..615d553f 100644 --- a/src/background/messageListeners/ranking.ts +++ b/src/background/messageListeners/ranking.ts @@ -21,6 +21,7 @@ const API_RANKING: APIMAP = { }, params: { season_type: 1, + day: 3, }, afterHandle: AHS.J_D, }, diff --git a/src/background/utils.ts b/src/background/utils.ts index 5c9b3f2f..8196f9d4 100644 --- a/src/background/utils.ts +++ b/src/background/utils.ts @@ -72,6 +72,7 @@ function apiListenerFactory(API_MAP: APIMAP) { let { _fetch, url, params = {}, afterHandle } = API_MAP[contentScriptQuery] as API const { method, headers, body } = _fetch as _FETCH + const isGET = method.toLocaleLowerCase() === 'get' // merge params and body const targetParams = Object.assign({}, params) let targetBody = Object.assign({}, body) @@ -82,21 +83,22 @@ function apiListenerFactory(API_MAP: APIMAP) { targetParams[key] = rest[key] }) - // generate body or params - if (method === 'get') { + // generate params + if (Object.keys(targetParams).length) { const urlParams = new URLSearchParams() for (const key in targetParams) targetParams[key] && urlParams.append(key, targetParams[key]) url += `?${urlParams.toString()}` } - else { - // post + // generate body + if (!isGET) { targetBody = (headers && headers['Content-Type'] && headers['Content-Type'].includes('application/x-www-form-urlencoded')) ? new URLSearchParams(targetBody) : JSON.stringify(targetBody) } // get cant take body - const fetchOpt = method === 'get' ? { method, headers } : { method, headers, body: targetBody } + const fetchOpt = { method, headers } + !isGET && Object.assign(fetchOpt, { body: targetBody }) // fetch and after handle let baseFunc = fetch(url, fetchOpt)