🌱 获取任务完成情况

This commit is contained in:
目棃
2025-02-24 12:00:12 +08:00
parent 2fa9f88da2
commit 1da157abbd
2 changed files with 86 additions and 10 deletions

62
src/types/BBS/Mission.d.ts vendored Normal file
View File

@@ -0,0 +1,62 @@
/**
* @file types/BBS/Mission.d.ts
* @description BBS 任务相关类型定义文件
* @since Beta v0.6.10/v0.7.0
*/
declare namespace TGApp.BBS.Mission {
/**
* @description 任务信息返回
* @interface InfoResp
* @extends TGApp.BBS.Response.BaseWithData
* @since Beta v0.6.10/v0.7.0
* @property {TGApp.BBS.Mission.InfoRes} data 任务信息
* @return InfoResp
*/
type InfoResp = TGApp.BBS.Response.BaseWithData<InfoRes>;
/**
* @description 任务信息
* @interface InfoRes
* @since Beta v0.6.10/v0.7.0
* @property {Array<MissionItem>} missions 任务列表
* @property {Array<MissionItem>} more_missions 更多任务列表
* @return InfoRes
*/
type InfoRes = { missions: Array<MissionItem>; more_missions: Array<MissionItem> };
/**
* @description 任务项
* @interface MissionItem
* @since Beta v0.6.10/v0.7.0
* @property {number} id 任务 ID
* @property {string} name 任务名称
* @property {string} desc 任务描述
* @property {number} threshold 任务完成阈值
* @property {number} limit 任务限制
* @property {number} exp 任务经验
* @property {number} points 米游币
* @property {number} active_time 任务激活时间,秒级时间戳
* @property {number} end_time 任务结束时间
* @property {boolean} is_auto_send_award 是否自动发放奖励
* @property {number} continuous_cycle_times 连续周期次数
* @property {number} next_points 下一次奖励米游币
* @property {string} mission_key 任务 key
* @return MissionItem
*/
type MissionItem = {
id: number;
name: string;
desc: string;
threshold: number;
limit: number;
exp: number;
points: number;
active_time: number;
end_time: number;
is_auto_send_award: boolean;
continuous_cycle_times: number;
next_points: number;
mission_key: string;
};
}

View File

@@ -1,15 +1,14 @@
/** /**
* @file web/request/apiHubReq.ts * @file web/request/apiHubReq.ts
* @description apiHub下的请求 * @description apiHub下的请求
* @since Beta v0.6.8 * @since Beta v0.6.10/v0.7.0
*/ */
import TGHttp from "@/utils/TGHttp.js"; import TGHttp from "@/utils/TGHttp.js";
import { getRequestHeader } from "@/web/utils/getRequestHeader.js";
// MysApiHubApiBaseUrl => Mahabu // MysApiHubBaseUrl => Mahbu
const Mahabu: Readonly<string> = "https://bbs-api.miyoushe.com/apihub/api/"; const Mahbu: Readonly<string> = "https://bbs-api.miyoushe.com/apihub/";
// MysApiHubWapiBaseUrl => Mahwbu
const Mahwbu: Readonly<string> = "https://bbs-api.miyoushe.com/apihub/wapi/";
const Referer: Readonly<string> = "https://bbs.mihoyo.com/"; const Referer: Readonly<string> = "https://bbs.mihoyo.com/";
/** /**
@@ -19,7 +18,7 @@ const Referer: Readonly<string> = "https://bbs.mihoyo.com/";
*/ */
async function getAllGamesForums(): Promise<Array<TGApp.BBS.Forum.GameForum>> { async function getAllGamesForums(): Promise<Array<TGApp.BBS.Forum.GameForum>> {
return ( return (
await TGHttp<TGApp.BBS.Forum.GameForumResp>(`${Mahwbu}getAllGamesForums`, { await TGHttp<TGApp.BBS.Forum.GameForumResp>(`${Mahbu}wapi/getAllGamesForums`, {
method: "GET", method: "GET",
headers: { "Content-Type": "application/json", referer: Referer }, headers: { "Content-Type": "application/json", referer: Referer },
}) })
@@ -33,13 +32,27 @@ async function getAllGamesForums(): Promise<Array<TGApp.BBS.Forum.GameForum>> {
*/ */
async function getGameList(): Promise<Array<TGApp.BBS.Game.Item>> { async function getGameList(): Promise<Array<TGApp.BBS.Game.Item>> {
return ( return (
await TGHttp<TGApp.BBS.Game.ListResp>(`${Mahwbu}getGameList`, { await TGHttp<TGApp.BBS.Game.ListResp>(`${Mahbu}wapi/getGameList`, {
method: "GET", method: "GET",
headers: { "Content-Type": "application/json", referer: Referer }, headers: { "Content-Type": "application/json", referer: Referer },
}) })
).data.list; ).data.list;
} }
/**
* @description 获取用户米游币任务完成情况
* @since Beta v0.6.10/v0.7.0
* @param {Record<string,string>} cookie 用户 Cookie
* @return {Promise<TGApp.BBS.Mission.InfoRes>}
*/
async function getMissions(cookie: Record<string, string>): Promise<TGApp.BBS.Mission.InfoResp> {
const header = getRequestHeader(cookie, "GET", {});
return await TGHttp<TGApp.BBS.Mission.InfoResp>(`${Mahbu}api/getMissions`, {
method: "GET",
headers: header,
});
}
/** /**
* @description 获取投票信息 * @description 获取投票信息
* @since Beta v0.6.2 * @since Beta v0.6.2
@@ -49,7 +62,7 @@ async function getGameList(): Promise<Array<TGApp.BBS.Game.Item>> {
*/ */
async function getVotes(id: string, uid: string): Promise<TGApp.BBS.Vote.Info> { async function getVotes(id: string, uid: string): Promise<TGApp.BBS.Vote.Info> {
return ( return (
await TGHttp<TGApp.BBS.Vote.InfoResp>(`${Mahabu}getVotes`, { await TGHttp<TGApp.BBS.Vote.InfoResp>(`${Mahbu}api/getVotes`, {
method: "GET", method: "GET",
headers: { "Content-Type": "application/json", referer: Referer }, headers: { "Content-Type": "application/json", referer: Referer },
query: { owner_uid: uid, vote_ids: id }, query: { owner_uid: uid, vote_ids: id },
@@ -66,7 +79,7 @@ async function getVotes(id: string, uid: string): Promise<TGApp.BBS.Vote.Info> {
*/ */
async function getVoteResult(id: string, uid: string): Promise<TGApp.BBS.Vote.Result> { async function getVoteResult(id: string, uid: string): Promise<TGApp.BBS.Vote.Result> {
return ( return (
await TGHttp<TGApp.BBS.Vote.ResultResp>(`${Mahabu}getVotesResult`, { await TGHttp<TGApp.BBS.Vote.ResultResp>(`${Mahbu}api/getVotesResult`, {
method: "GET", method: "GET",
headers: { "Content-Type": "application/json", referer: Referer }, headers: { "Content-Type": "application/json", referer: Referer },
query: { owner_uid: uid, vote_ids: id }, query: { owner_uid: uid, vote_ids: id },
@@ -82,7 +95,7 @@ async function getVoteResult(id: string, uid: string): Promise<TGApp.BBS.Vote.Re
*/ */
async function homeNew(gid: number = 2): Promise<TGApp.BBS.Navigator.Navigator[]> { async function homeNew(gid: number = 2): Promise<TGApp.BBS.Navigator.Navigator[]> {
return ( return (
await TGHttp<TGApp.BBS.Navigator.HomeResponse>(`${Mahabu}home/new`, { await TGHttp<TGApp.BBS.Navigator.HomeResponse>(`${Mahbu}api/home/new`, {
method: "GET", method: "GET",
headers: { "x-rpc-client_type": "2" }, headers: { "x-rpc-client_type": "2" },
query: { gids: gid }, query: { gids: gid },
@@ -95,6 +108,7 @@ const apiHubReq = {
home: homeNew, home: homeNew,
forum: getAllGamesForums, forum: getAllGamesForums,
game: getGameList, game: getGameList,
mission: getMissions,
}; };
export default apiHubReq; export default apiHubReq;