dna-api 0.3.10 → 0.3.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +8 -5
- package/dist/index.js +3 -3
- package/dist/index.js.map +8 -7
- package/dist/modules/base.d.ts +4 -0
- package/dist/modules/kf.d.ts +166 -0
- package/dist/modules/utils.d.ts +1 -0
- package/dist/type-generated.d.ts +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,25 +1,27 @@
|
|
|
1
|
-
export { TimeBasicResponse, RespCode } from "./TimeBasicResponse";
|
|
2
1
|
export { DNABaseAPI, DNASubModule } from "./modules/base";
|
|
3
2
|
export { GameAPI } from "./modules/game";
|
|
3
|
+
export * from "./modules/h5";
|
|
4
4
|
export { HomeAPI } from "./modules/home";
|
|
5
5
|
export { ProfileAPI } from "./modules/profile";
|
|
6
6
|
export { SettingAPI } from "./modules/setting";
|
|
7
7
|
export { TrendAPI } from "./modules/trend";
|
|
8
|
+
export * from "./modules/types";
|
|
8
9
|
export { UserAPI } from "./modules/user";
|
|
9
10
|
export { UserGrowingAPI } from "./modules/usergrowing";
|
|
10
|
-
export * from "./modules/h5";
|
|
11
|
-
export * from "./modules/types";
|
|
12
|
-
export * from "./type-generated";
|
|
13
11
|
export * from "./modules/utils";
|
|
12
|
+
export { RespCode, TimeBasicResponse } from "./TimeBasicResponse";
|
|
13
|
+
export * from "./type-generated";
|
|
14
14
|
import { DNABaseAPI } from "./modules/base";
|
|
15
15
|
import { GameAPI } from "./modules/game";
|
|
16
|
+
import { H5API } from "./modules/h5";
|
|
16
17
|
import { HomeAPI } from "./modules/home";
|
|
18
|
+
import { KFAPI } from "./modules/kf";
|
|
17
19
|
import { ProfileAPI } from "./modules/profile";
|
|
18
20
|
import { SettingAPI } from "./modules/setting";
|
|
19
21
|
import { TrendAPI } from "./modules/trend";
|
|
20
22
|
import { UserAPI } from "./modules/user";
|
|
21
23
|
import { UserGrowingAPI } from "./modules/usergrowing";
|
|
22
|
-
|
|
24
|
+
export * from "./modules/kf";
|
|
23
25
|
/**
|
|
24
26
|
* DNA API类,用于与DNA游戏服务器交互
|
|
25
27
|
*/
|
|
@@ -30,6 +32,7 @@ export declare class DNAAPI extends DNABaseAPI {
|
|
|
30
32
|
setting: SettingAPI;
|
|
31
33
|
trend: TrendAPI;
|
|
32
34
|
user: UserAPI;
|
|
35
|
+
kf: KFAPI;
|
|
33
36
|
userGrowing: UserGrowingAPI;
|
|
34
37
|
h5: H5API;
|
|
35
38
|
constructor({ dev_code, token, ...options }?: {
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
var
|
|
1
|
+
var F;((s)=>{s[s.ERROR=-999]="ERROR";s[s.OK_ZERO=0]="OK_ZERO";s[s.OK_HTTP=200]="OK_HTTP";s[s.BAD_REQUEST=400]="BAD_REQUEST";s[s.SERVER_ERROR=500]="SERVER_ERROR"})(F||={});class p{code=0;msg="";data;constructor(e){this.code=e.code||0,this.msg=e.msg||"",this.data=e.data}get is_success(){return this.code===200||this.code===0}get success(){return this.is_success}static err(e,n=-999){return new p({code:n,msg:e,data:void 0})}}import*as D from"node-forge";function M(e,n){try{let t=[];for(let o=0;o<n.length;o+=64)t.push(n.slice(o,o+64));let r=`-----BEGIN PUBLIC KEY-----
|
|
2
2
|
${t.join(`
|
|
3
3
|
`)}
|
|
4
|
-
-----END PUBLIC KEY-----`,i=D.pki.publicKeyFromPem(r),s=D.util.encodeUtf8(e),a=i.encrypt(s);return D.util.encode64(a)}catch(t){throw Error(`[DNA] RSA 加密失败: ${t.message}`)}}function v(e=16){let t="";for(let r=0;r<e;r++)t+="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".charAt(Math.floor(Math.random()*62));return t}function J(e){let n=D.md.md5.create();return n.update(e),n.digest().toHex().toUpperCase()}function Z(e){function n(t,r){let i=t.split("");for(let s=1;s<r.length;s+=2){let a=r[s-1],o=r[s];if(a>=0&&a<i.length&&o>=0&&o<i.length)[i[a],i[o]]=[i[o],i[a]]}return i.join("")}return n(J(e),[1,13,5,17,7,23])}function Q(e,n){let t=[],r=Object.keys(e).sort();for(let s of r){let a=e[s];if(a!==null&&a!==void 0&&a!=="")t.push(`${s}=${a}`)}let i=t.join("&");return Z(`${i}&${n}`)}function V(e,n){let t=Date.now(),r={...e,timestamp:t,token:n},i=v(16),s=Q(r,i);return{s:X(s,i),t,k:i}}function H(e){let n=v(16),t=G(n,e);return{signature:W(t),key:n}}function W(e){let n=e.split(""),t=[[3,23],[11,32],[22,42],[25,48]];for(let[r,i]of t)if(r<n.length&&i<n.length)[n[r],n[i]]=[n[i],n[r]];return n.join("")}function O(e,n){let t=W(e),r=D.util.decode64(t),i=D.cipher.createDecipher("AES-CBC",n);return i.start({iv:"A-16-Byte-String"}),i.update(D.util.createBuffer(r)),i.finish(),i.output.getBytes()}function X(e,n){let t=new TextEncoder,r=t.encode(e),i=t.encode(n),s=[];for(let a=0;a<r.length;a++){let b=(r[a]&255)+(i[a%i.length]&255);s.push(`@${b}`)}return s.join("")}class _{dev_code;token;fetchFn;is_h5=!1;RSA_PUBLIC_KEY="MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDGpdbezK+eknQZQzPOjp8mr/dP+QHwk8CRkQh6C6qFnfLH3tiyl0pnt3dePuFDnM1PUXGhCkQ157ePJCQgkDU2+mimDmXh0oLFn9zuWSp+U8uLSLX3t3PpJ8TmNCROfUDWvzdbnShqg7JfDmnrOJz49qd234W84nrfTHbzdqeigQIDAQAB";BASE_URL="https://dnabbs-api.yingxiong.com/";uploadKey="";sign_api_urls=new Set;constructor(e,n="",t={}){this.dev_code=e;this.token=n;if(this.fetchFn=t.fetchFn,t.is_h5!==void 0)this.is_h5=t.is_h5;if(t.rsa_public_key!==void 0)this.RSA_PUBLIC_KEY=t.rsa_public_key}async fileUpload(e,n){let t=await this._dna_request(e,n,{sign:!0});if(t.is_success&&t.data)t.data=t.data.map((r)=>O(r,this.uploadKey));return t}async getRsaPublicKey(){if(this.RSA_PUBLIC_KEY)return this.RSA_PUBLIC_KEY;let e=await this._dna_request("config/getRsaPublicKey");if(e.is_success&&e.data){let n=e.data.key;if(typeof n==="string")this.RSA_PUBLIC_KEY=n}return this.RSA_PUBLIC_KEY}async getHeaders(e){let{payload:n,exparams:t,dev_code:r=this.dev_code,refer:i,token:s=this.token,tokenSig:a,h5:o}=e||{},b="application/x-www-form-urlencoded; charset=utf-8",q={version:"1.1.3",source:"ios","Content-Type":"application/x-www-form-urlencoded; charset=utf-8","User-Agent":"DoubleHelix/4 CFNetwork/3860.100.1 Darwin/25.0.0"},k={version:"3.11.0",source:"h5","Content-Type":"application/x-www-form-urlencoded; charset=utf-8","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"},h=this.is_h5||o||!1,c={...h?k:q};if(r)c.devCode=r;if(i||h)c.origin="https://dnabbs.yingxiong.com",c.refer="https://dnabbs.yingxiong.com/";if(s)c.token=s;if(n instanceof FormData){let N=await this.getRsaPublicKey(),{signature:g,key:d}=H(N);if(c.t=g,this.uploadKey=d,t)for(let[f,B]of Object.entries(t))n.append(f,String(B));delete c["Content-Type"]}else if(typeof n==="object"){let N=V(n,a?s:"");if(Object.assign(n,{sign:N.s,timestamp:N.t}),t)Object.assign(n,t);let g=new URLSearchParams;Object.entries(n).forEach(([S,C])=>{g.append(S,String(C))}),n=g.toString();let d=N.k,f=await this.getRsaPublicKey(),B=G(d,f);if(this.is_h5)c.k=B;else c.rk=d,c.key=B}return{headers:c,payload:n}}async needSign(e){if(this.sign_api_urls.size===0)try{await this.initializeSignConfig()}catch(n){console.error("初始化签名配置失败:",n),this.sign_api_urls=new Set(["/user/sdkLogin","/forum/postPublish","/forum/comment/createComment","/forum/comment/createReply","/user/getSmsCode","/role/defaultRoleForTool","/media/av/cfg/getVideos","/media/av/cfg/getAudios","/media/av/cfg/getImages","/encourage/signin/signin"].map((t)=>t.replace(/^\/+/,"")))}return this.sign_api_urls.has(e)}async initializeSignConfig(){try{let e=await this._dna_request("config/getCommonConfig",void 0,{sign:!1});if(e.is_success&&e.data?.signApiConfigVo?.signApiList)this.sign_api_urls=new Set(e.data.signApiConfigVo.signApiList.map((n)=>n.replace(/^\/+/,"")))}catch(e){console.error("初始化签名配置失败:",e)}}async _dna_request_h5(e,n,t){return await this._dna_request(e,n,{...t,h5:!0})}async _dna_request(e,n,t){let{method:r="POST",sign:i,h5:s,refer:a,params:o,max_retries:b=3,retry_delay:q=1,timeout:k=1e4,token:h,tokenSig:c}=t||{};if(i===void 0&&await this.needSign(e))i=!0;let N;if(i){let{payload:g,headers:d}=await this.getHeaders({payload:n,refer:a,exparams:o,token:h?this.token:void 0,tokenSig:c,h5:s});n=g,N=d}else{let{headers:g}=await this.getHeaders({token:h?this.token:void 0,refer:a,h5:s});N=g}for(let g=0;g<b;g++)try{let d=n;if(n&&typeof n==="object"&&!(n instanceof FormData)){let w=new URLSearchParams;Object.entries(n).forEach(([K,M])=>{if(M!==void 0)w.append(K,String(M))}),d=w.toString()}let f={method:r,headers:N,body:d},B=new AbortController,S=setTimeout(()=>B.abort(),k),C={...f,signal:B.signal},U=this.fetchFn?await this.fetchFn(`${this.BASE_URL}${e}`,C):await fetch(`${this.BASE_URL}${e}`,C);clearTimeout(S);let j=U.headers.get("content-type")||"",A;if(j.includes("text/")){let w=await U.text();A={code:-999,data:w}}else A=await U.json();if(typeof A==="object"&&A!==null)try{if(typeof A.data==="string")A.data=JSON.parse(A.data)}catch{}return new p(A)}catch(d){if(console.error(`请求失败: ${d.message}`),g<b-1)await new Promise((f)=>setTimeout(f,q*2**g))}return p.err("请求服务器失败,已达最大重试次数")}}class m{_base;constructor(e){this._base=e}get dev_code(){return this._base.dev_code}get token(){return this._base.token}set token(e){this._base.token=e}get fetchFn(){return this._base.fetchFn}get is_h5(){return this._base.is_h5}get RSA_PUBLIC_KEY(){return this._base.RSA_PUBLIC_KEY}get BASE_URL(){return this._base.BASE_URL}get uploadKey(){return this._base.uploadKey}async getRsaPublicKey(){return this._base.getRsaPublicKey()}async fileUpload(e,n){return await this._base.fileUpload(e,n)}async _dna_request(e,n,t){return this._base._dna_request(e,n,t)}async _dna_request_h5(e,n,t){return this._base._dna_request_h5(e,n,t)}async getHeaders(e){return this._base.getHeaders(e)}}class y extends m{async defaultRoleForTool(e=1,n){let t={otherUserId:n,type:e};if(!n)delete t.otherUserId;return await this._dna_request("role/defaultRoleForTool",t,{sign:!0,token:!0,tokenSig:!0})}async getMhSwitchStatus(){return await this._dna_request("user/push/getMhSwitchStatus")}async getRoleDetail(e,n,t){let r={charId:e,charEid:n,type:1,otherUserId:t};return await this._dna_request("role/getCharDetail",r)}async getShortNoteInfo(){return await this._dna_request("role/getShortNoteInfo")}async getWeaponDetail(e,n,t){let r={weaponId:e,weaponEid:n,type:1,otherUserId:t};return await this._dna_request("role/getWeaponDetail",r)}async updateMhSwitchStatus(e){return await this._dna_request("user/push/updateMhSwitchStatus",{config:e})}async soulTask(){return await this._dna_request("role/soul/task")}}var u=268;class L extends m{async adminAdjustScore(e,n,t,r=u){let i={postId:e,gameId:r??u,gameForumId:n,weight:t};return await this._dna_request("forum/moderator/setPostWeight",i)}async adminDelete(e,n,t){let r={postId:e.postId,gameId:e.gameId??u,gameForumId:e.gameForumId,content:n,reasonCode:t};return await this._dna_request("forum/moderator/postDelete",r)}async adminMovePost(e,n,t,r){let i={postId:e.postId,gameId:e.gameId??u,gameForumId:e.gameForumId,newGameId:n,newForumId:t,newTopicIdStr:r};return await this._dna_request("forum/moderator/postMove",i)}async adminRefreshTime(e,n){let t={postId:e.postId,gameId:e.gameId??u,gameForumId:e.gameForumId,refresh:n};return await this._dna_request("forum/moderator/setRefresh",t)}async blockList(){return await this._dna_request("user/block/list")}async blockOther(e,n,t){return await this._dna_request("user/block/other",{blockPostId:e,blockUserId:n,type:t})}async collect(e,n,t=1){let r={operateType:t,postId:e,toUserId:n};return await this._dna_request("forum/collect",r)}async commentDelete(e,n,t,r){let i={id:e.id,gameId:e.gameId,gameForumId:e.gameForumId,entityType:n,content:t,reasonCode:r};return await this._dna_request("forum/commentReplyDelete",i)}async createComment(e,n){let t=JSON.stringify([{content:n,contentType:"1"}]),r={postId:e.postId,forumId:e.gameForumId,postType:"1",content:t};return await this._dna_request("forum/comment/createComment",r,{sign:!0,params:{toUserId:e.userId}})}async createReply(e,n){let r={content:JSON.stringify([{content:n,contentType:"1",imgHeight:0,imgWidth:0,url:""}]),forumId:e.gameForumId,postCommentId:e.postCommentId,postId:e.postId,postType:"1",toUserId:e.userId};return await this._dna_request("forum/comment/createReply",r,{sign:!0,params:{toUserId:e.userId}})}async createReplyList(e,n){let r={content:JSON.stringify([{content:n,contentType:"1",imgHeight:0,imgWidth:0,url:""}]),forumId:e.gameForumId,postCommentId:e.postCommentId,postCommentReplyId:e.postCommentReplyId,postId:e.postId,postType:"1",toUserId:e.userId};return await this._dna_request("forum/comment/createReply",r,{sign:!0,params:{toUserId:e.userId}})}async deletePost(e,n){return await this._dna_request("forum/more/delete",{deleteType:e,id:n},{sign:!0,refer:!0})}async followUser(e,n){let t={followUserId:e,operateType:n?0:1};return await this._dna_request("user/followUser",t,{sign:!0})}async getFollowState(e){let n={followUserId:e};return await this._dna_request("user/isFollow",n)}async gameSignIn(e,n){let t={dayAwardId:e,periodId:n,signinType:1};return await this._dna_request("encourage/signin/signin",t,{sign:!0,tokenSig:!0})}async getDoujin(e){return await this._dna_request("forum/discuss/getDoujin",{forumId:e})}async getExchange(e){return await this._dna_request("forum/discuss/getExchange",{forumId:e})}async getGameBanner(e=u){return await this._dna_request("forum/gameBanner",{gameId:e})}async getPostByTopic(e=177,n=1,t=20,r=1,i=0){let s={topicId:e,gameId:u,pageIndex:n,pageSize:t,searchType:r,timeType:i};return await this._dna_request("forum/getPostByTopic",s)}async getPostCommentList(e,n=1,t=20,r=0){return await this._dna_request("forum/comment/getPostCommentList",{postId:e,pageIndex:n,pageSize:t,isOnlyPublisher:r})}async getPostDetail(e){return await this._dna_request("forum/getPostDetail",{postId:e})}async getPostList(e=48,n=1,t=20,r=1,i=0){let s={forumId:e,gameId:u,pageIndex:n,pageSize:t,searchType:r,timeType:i};return await this._dna_request("forum/list",s)}async getRankList(e){return await this._dna_request("forum/discuss/getRank",{forumId:e})}async getRecommendPosts(e=u,n=1,t=20){return await this._dna_request("forum/getRecommendPosts",{gameId:e,pageIndex:n,pageSize:t})}async getReplyList(e,n,t=1,r=20){return await this._dna_request("forum/comment/getReplyList",{postId:e,postCommentId:n,pageIndex:t,pageSize:r})}async getStatistics(e=u){return await this._dna_request("forum/statistics",{gameId:e})}async getTips(){return await this._dna_request("config/getTips")}async getWalkthrough(e){return await this._dna_request("forum/discuss/getWalkthrough",{forumId:e})}async hotList(e=1,n=u){return await this._dna_request("forum/hot/ranking/list",{gameId:n,type:e})}async haveSignIn(){let e={gameId:u};return await this._dna_request("user/haveSignInNew",e)}async isRedPoint(){return await this._dna_request("forum/dynamic/isRedPoint")}async signCalendar(){let e={gameId:u};return await this._dna_request("encourage/signin/show",e)}async like(e){let n={forumId:e.gameForumId,gameId:u,likeType:"1",operateType:"1",postCommentId:"",postCommentReplyId:"",postId:e.postId,postType:e.postType,toUserId:e.userId};return await this._dna_request("forum/like",n)}async lockPost(e,n){let t={postId:e.postId,gameId:e.gameId??u,gameForumId:e.gameForumId,operateType:n};return await this._dna_request("forum/moderator/postLock",t)}async postDownOrUp(e,n){let t={postId:e.postId,gameId:e.gameId??u,gameForumId:e.gameForumId,operateType:n};return await this._dna_request("forum/moderator/postDownOrUp",t)}async postElite(e,n){let t={postId:e.postId,gameId:e.gameId??u,gameForumId:e.gameForumId,operateType:n};return await this._dna_request("forum/moderator/postElite",t)}async postHide(e,n){let t={postId:e.postId,gameId:e.gameId??u,gameForumId:e.gameForumId,operateType:n};return await this._dna_request("forum/moderator/postHide",t)}async reRank(e,n){let t={postId:e.postId,gameId:e.gameId??u,gameForumId:e.gameForumId,weight:n};return await this._dna_request("forum/moderator/reRank",t)}async receiveLog(e,n,t){let r={periodId:e,pageIndex:n,pageSize:t};return await this._dna_request("encourage/signin/receiveLog",r)}async recommendList(e,n,t,r,i=u){let s={gameId:i,recIndex:e,newIndex:n,size:t,history:r};return await this._dna_request("forum/recommend/list",s)}async report({commentId:e=0,postId:n=0,replyId:t=0},r=1,i=1){let s={commentId:e,postId:n,replyId:t,reportReason:r,reportType:i};return await this._dna_request("forum/more/report",s)}async searchPost(e,n,t,r=u,i=1){let s={gameId:r,keyword:e,pageIndex:n,pageSize:t,searchType:i};return await this._dna_request("forum/searchPost",s)}async searchTopic(e,n,t=20,r=u){let i={gameId:r,keyword:e,pageIndex:n,pageSize:t};return await this._dna_request("forum/searchPost",i)}async searchUser(e,n,t){let r={keyword:e,pageIndex:n,pageSize:t};return await this._dna_request("forum/searchPost",r)}async shareTask(){let e={gameId:u};return await this._dna_request("encourage/level/shareTask",e)}async bbsSign(){let e={gameId:u};return await this._dna_request("user/signIn",e)}async strongRecommend(e,n=1){let t={postId:e.postId,gameId:e.gameId??u,gameForumId:e.gameForumId,operateType:n};return await this._dna_request("forum/moderator/setForceRecommend",t)}async viewCommunity(){return await this._dna_request("encourage/level/viewCommunity")}async viewCount(e,n=u){return await this._dna_request("forum/viewCount",{gameId:n,postId:e})}async getTaskProcess(){let e={gameId:u};return await this._dna_request("encourage/level/getTaskProcess",e)}async soulTask(){return await this._dna_request("role/soul/task")}}class x extends m{async blackUser(e,n){return await this._dna_request("user/blackUser",{toUserId:e,type:n})}async cleanFansNew(e,n){return await this._dna_request("user/cleanFansNew",{type:e,userFollowId:n})}async collect(e,n,t=1){return await this._dna_request("forum/collect",{operateType:t,postId:e,toUserId:n})}async defaultRole(e,n=1){return await this._dna_request("user/defaultRole",{otherUserId:e,type:n})}async deleteRole(e){return await this._dna_request("role/remove",{roleBoundId:e})}async draftDelete(e){return await this._dna_request("forum/more/draftDelete",{draftId:e})}async fans(e,n,t,r){return await this._dna_request("user/fans",{otherUserId:e,pageNo:n,pageSize:t,type:r})}async fastBind(){return await this._dna_request("role/quickBound")}async follow(e,n,t,r){return await this._dna_request("user/follow",{otherUserId:e,pageNo:n,pageSize:t,type:r})}async followUser(e,n){return await this._dna_request("user/followUser",{followUserId:e,operateType:n?0:1})}async getApplyStatus(){return await this._dna_request("user/creator/getApplyStatus")}async getDraftList(e,n){return await this._dna_request("forum/getDraftList",{pageIndex:e,pageSize:n})}async getMineComment(e,n,t,r){return await this._dna_request("user/notice/mine",{otherUserId:e,pageIndex:n,pageSize:t,type:r})}async getMinePost(e,n,t,r,i,s){return await this._dna_request("forum/getMinePost",{otherUserId:e,pageIndex:n,pageSize:t,searchType:r,type:i,postType:s})}async getNotifySwitch(){return await this._dna_request("user/push/getSwitchStatus")}async historyView(e,n){return await this._dna_request("forum/historyView",{pageIndex:e,pageSize:n})}async like(e){return await this._dna_request("forum/like",e)}async manualBound(e,n,t){return await this._dna_request("role/manualBound",{roleId:e,type:n,code:t})}async mine(e,n,t,r){let i={otherUserId:e,searchType:n,type:t,postType:r};if(!e)delete i.otherUserId;return await this._dna_request("user/mine",i)}async mineV2(e){return await this._dna_request("user/mineV2",{otherUserId:e})}async moderatorByGame(e){return await this._dna_request("user/moderator/getModeratorByGame",{gameId:e})}async muteCancel(e){return await this._dna_request("forum/moderator/muteCancel",{toUserId:e})}async muteUser(e,n,t,r,i){return await this._dna_request("forum/moderator/muteUser",{toUserId:e,gameIdStr:n,type:t,reason:r,content:i})}async resetDefault(e){return await this._dna_request("role/resetDefault",{roleBoundId:e})}async roleManager(){return await this._dna_request("role/list")}}class R extends m{async addAddress(e,n,t){return await this._dna_request("user/more/userAddressAdd",{receiverName:e,receiverMobile:n,receiverAddress:t})}async blackUser(e,n){return await this._dna_request("user/blackUser",{toUserId:e,type:n})}async cancelCode(e){return await this._dna_request("user/more/cancelCode",{code:e})}async cancel(e,n,t,r,i){return await this._dna_request("user/more/cancel",{cancelType:e,operateType:n,position:t,cancelReason:r,reasonDetail:i})}async deleteAddress(e){return await this._dna_request("user/more/deleteUserAddress",{addressId:e})}async editAddress(e,n,t,r){return await this._dna_request("user/more/userAddressEdit",{addressId:e,receiverName:n,receiverMobile:t,receiverAddress:r})}async feedback(e,n,t,r){return await this._dna_request("user/more/feedback",{listPic:e,proDesc:n,mobile:t,isLogin:r})}async getCancelStatus(){return await this._dna_request("user/more/getCancelStatus")}async getNotifySwitch(){return await this._dna_request("user/push/getSwitchStatus")}async getPrivateSet(){return await this._dna_request("user/getPrivateSet")}async getUserAddress(e,n){return await this._dna_request("user/more/getUserAddress",{userId:e,type:n})}async getUserBlackList(e,n){return await this._dna_request("user/getUserBlackList",{pageIndex:e,pageSize:n})}async msgListDetail(e,n,t){return await this._dna_request("user/block/listDetail",{pageNo:e,pageSize:n,type:t})}async postListDetail(e,n,t){return await this._dna_request("user/block/listDetail",{pageNo:e,pageSize:n,type:t})}async privateSet(e,n){return await this._dna_request("user/privateSet",{operateType:e,option:n})}async sendSms(e,n,t){return await this._dna_request("user/sms/sendSms",{mobile:e,timeStamp:n,type:t})}async setDefaultAddress(e){return await this._dna_request("user/more/setDefaultAddress",{addressId:e})}async setNotifySwitch(e,n){return await this._dna_request("user/push/updateSwitchStatus",{operateType:e,switchType:n})}async uploadFeedBack(e){let n=new FormData;return n.append("parts",e),await this.fileUpload("user/img/uploadFeedBack",n)}}class I extends m{async draftSave(e,n,t,r,i,s,a){return await this._dna_request("forum/draftSave",{content:e,draftId:n,h5Content:t,postTitle:r,postType:i,gameId:s,videoReUpload:a})}async followUser(e,n){return await this._dna_request("user/followUser",{followUserId:e,operateType:n})}async getConfigTopicByGameId(e,n){return await this._dna_request("config/getConfigTopicByGameId",{name:e,showType:n})}async getPostPublishPage(){return await this._dna_request("forum/getPostPublishPage")}async getRecommend(e,n){return await this._dna_request("user/getRecommend",{history:e,pageSize:n})}async getTips(){return await this._dna_request("config/getTips")}async getVodToken(e,n){return await this._dna_request("forum/getVodToken",{fileName:e,title:n})}async like(e,n,t,r,i,s,a,o,b){return await this._dna_request("forum/like",{forumId:e,gameId:n,likeType:t,operateType:r,postCommentId:i,postCommentReplyId:s,postId:a,postType:o,toUserId:b})}async list(e,n,t){return await this._dna_request("forum/dynamic/list",{pageIndex:e,pageSize:n,userId:t})}async parseLink(e){return await this._dna_request("forum/parseLink",{link:e})}async posAdminEdit(e,n,t,r,i,s,a,o,b){return await this._dna_request("forum/moderator/postEdit",{content:e,gameForumId:n,h5Content:t,postId:r,postTitle:i,topics:s,postType:a,gameId:o,videoReUpload:b})}async postEdit(e,n,t,r,i,s,a,o){return await this._dna_request("forum/postEdit",{content:e,gameForumId:n,h5Content:t,postId:r,postTitle:i,topics:s,postType:a,videoReUpload:o})}async postPublish(e,n,t,r,i,s,a,o){return await this._dna_request("forum/postPublish",{content:e,draftId:n,gameForumId:t,gameId:r,h5Content:i,postTitle:s,postType:a,topics:o})}async safeCheck(e){return await this._dna_request("forum/more/safeCheck",{url:e})}async uploadImage(e){let n=new FormData;return n.append("files",e),n.append("type","post"),await this.fileUpload("config/img/upload",n)}async videoPostPublish(e,n,t,r,i,s,a,o){return await this._dna_request("forum/moderator/postPublish",{content:e,draftId:n,gameForumId:t,gameId:r,h5Content:i,postTitle:s,postType:a,topics:o})}async viewCount(e,n){return await this._dna_request("forum/viewCount",{gameId:e,postId:n})}}var Y;((r)=>{r[r.TEXT=1]="TEXT";r[r.IMAGE=2]="IMAGE";r[r.VIDEO=5]="VIDEO"})(Y||={});var l=268;class P extends m{async loginLog(){return await this._dna_request("user/login/log")}async blockList(){return await this._dna_request("user/block/list")}async canEditNickName(){return await this._dna_request("user/canUpdateNameTimes")}async cancel(e,n,t,r,i){return await this._dna_request("user/more/cancel",{cancelType:e,operateType:n,position:t,cancelReason:r,reasonDetail:i})}async cleanToken(){return await this._dna_request("user/cleanToken")}async editGender(e){return await this._dna_request("user/editGender",{gender:e})}async editNickName(e){return await this._dna_request("user/updateName",{userName:e})}async getCommonConfig(){return await this._dna_request("config/getCommonConfig")}async getConfig(){return await this._dna_request("config/getConfig")}async getConfigSwitch(){return await this._dna_request("config/switchAll")}async getModeratorPermission(){return await this._dna_request("user/moderator/getModeratorPermission")}async getOpenScreen(){return await this._dna_request("config/getOpenScreen")}async getPublicKey(){return await this._dna_request("config/getRsaPublicKey")}async getUserGame(){return await this._dna_request("user/getUserGame")}async getWikiData(){return await this._dna_request("config/getGameWiki")}async haveOfficialRole(){return await this._dna_request("role/haveOfficialRole")}async isRedPoint(){return await this._dna_request("forum/dynamic/isRedPoint")}async login(e,n){let t={code:n,devCode:this.dev_code,gameList:l,loginType:1,mobile:e},r=await this._dna_request("user/sdkLogin",t,{sign:!0});if(r.is_success&&r.data){let i=r.data;if(typeof i.token==="string")this.token=i.token}return r}async oneTapLoginRestriction(){return await this._dna_request("user/oneTapLoginRestriction")}async recommendConfig(){return await this._dna_request("forum/recommend/config")}async refreshToken(e){return await this._dna_request("user/refreshToken",{refreshToken:e})}async register(e,n,t,r,i){return await this._dna_request("user/register",{code:e,devCode:n,gameList:t,mobile:r,password:i})}async saveUserInfo(e,n,t,r){return await this._dna_request("user/saveUserInfo",{gender:e,headCode:n,headUrl:t,userName:r})}async sendSms(e,n,t){return await this._dna_request("user/getSmsCode",{mobile:e,isCaptcha:t,vJson:n})}async signature(e){return await this._dna_request("user/edit/signature",{newSignature:e})}async updateHeadCode(e){return await this._dna_request("user/updateHeadCode",{headCode:e})}async updateHeadUrl(e){return await this._dna_request("user/updateHeadUrl",{headUrl:e})}async updateProfileBg(e){return await this._dna_request("user/updateBg",{bgUrl:e})}async uploadHead(e){let n=new FormData;return n.append("parts",e),await this.fileUpload("user/img/uploadHead",n)}async uploadProfileBg(e){let n=new FormData;return n.append("parts",e),await this.fileUpload("user/img/uploadMineBg",n)}async getEmoji(){return await this._dna_request("config/getEmoji")}async getGameConfig(){return await this._dna_request("config/getGameConfig")}async getGameHeadCode(){return await this._dna_request("user/getGameHeadCode")}}class T extends m{async addAddress(e,n,t){return await this._dna_request("user/more/userAddressAdd",{receiverName:e,receiverMobile:n,receiverAddress:t})}async apply(e,n,t,r,i,s,a,o){return await this._dna_request("user/creator/apply",{type:e,id:n,concatWay:t,otherPlatform:r,otherPlatformUrl:i,otherPlatformFans:s,materialUrl:a,gameId:o})}async awardList(e){return await this._dna_request("encourage/draw/awardList",{drawId:e})}async awardWin(e,n,t,r){return await this._dna_request("/encourage/draw/awardWin",{drawId:e,fullName:n,mobile:t,address:r})}async buyGold(e,n){return await this._dna_request("encourage/draw/buy",{drawId:e,count:n})}async buyProduct(e,n,t,r){return await this._dna_request("/encourage/store/buyProduct",{address:e,fullName:n,mobile:t,productId:r})}async deleteAddress(e){return await this._dna_request("user/more/deleteUserAddress",{addressId:e})}async drawDetail(e){return await this._dna_request("encourage/draw/detail",{drawId:e})}async editAddress(e,n,t,r){return await this._dna_request("user/more/userAddressEdit",{addressId:e,receiverName:n,receiverMobile:t,receiverAddress:r})}async getAliProductConfig(){return await this._dna_request("encourage/store/ali/getAliStoreConfigAndBanner")}async getAliProductList(e,n,t){return await this._dna_request("encourage/store/ali/productList",{gameId:e,pageIndex:n,pageSize:t})}async getApplyPage(){return await this._dna_request("user/creator/getApplyPage")}async getExpLogsList(e,n,t){return await this._dna_request("encourage/level/getExpLogs",{gameId:e,pageIndex:n,pageSize:t})}async getGameCreator(){return await this._dna_request("config/identification/getGameCreator")}async getGoldDetailList(e,n,t,r){return await this._dna_request("encourage/gold/getGoldLogs",{pageIndex:e,pageSize:n,type:t,storeType:r})}async getProductList(e,n,t,r){return await this._dna_request("encourage/store/productList",{gameId:e,pageIndex:n,pageSize:t,storeType:r})}async getTotalGold(e){if(e!==void 0)return await this._dna_request("encourage/gold/getTotalGold",{type:e});return await this._dna_request("encourage/gold/getTotalGold")}async getUserAddress(e,n){return await this._dna_request("user/more/getUserAddress",{userId:e,type:n})}async getUserGameLevel(e,n,t){return await this._dna_request("encourage/level/getUserGameLevelDetail",{gameId:e,ifProcess:n,otherUserId:t})}async getUserGameTaskProcess(e,n){return await this._dna_request("encourage/level/getTaskProcess",{gameId:e,userId:n})}async list(e,n,t,r){return await this._dna_request("encourage/draw/list",{pageIndex:e,pageSize:n,queryType:t,gameId:r})}async page(){return await this._dna_request("user/creator/page")}async productDetail(e){return await this._dna_request("encourage/store/productDetail",{productId:e})}async setDefaultAddress(e){return await this._dna_request("user/more/setDefaultAddress",{addressId:e})}async uploadImage(e){let n=new FormData;return n.append("parts",e),await this.fileUpload("user/img/uploadHead",n)}}class F extends m{async getMapMatterCategorizeOptions(){return await this._dna_request_h5("map/matter/categorize/getOptions")}async getMapCategorizeList(){return await this._dna_request_h5("map/categorize/list")}async getMapDetail(e){return await this._dna_request_h5("map/detail",{id:e})}async getMapSiteDetail(e){return await this._dna_request_h5("map/site/detail",{id:e})}async getEmojiList(){return await this._dna_request_h5("config/getEmoji")}}class $ extends _{game;home;profile;setting;trend;user;userGrowing;h5;constructor({dev_code:e="",token:n="",...t}={}){super(e,n,t);this.game=new y(this),this.home=new L(this),this.profile=new x(this),this.setting=new R(this),this.trend=new I(this),this.user=new P(this),this.userGrowing=new T(this),this.h5=new F(this)}async initialize(){await this.initializeSignConfig()}get GAME_ID(){return l}async getMhSwitchStatus(){return await this.game.getMhSwitchStatus()}async updateMhSwitchStatus(e){return await this.game.updateMhSwitchStatus(e)}async soulTask(){return await this.game.soulTask()}async defaultRoleForTool(e=1,n){return await this.game.defaultRoleForTool(e,n)}async getRoleDetail(e,n,t){return await this.game.getRoleDetail(e,n,t)}async getWeaponDetail(e,n,t){return await this.game.getWeaponDetail(e,n,t)}async getShortNoteInfo(){return await this.game.getShortNoteInfo()}async getPostList(e=48,n=1,t=20,r=1,i=0){return await this.home.getPostList(e,n,t,r,i)}async getPostDetail(e){return await this.home.getPostDetail(e)}async getPostByTopic(e=177,n=1,t=20,r=1,i=0){return await this.home.getPostByTopic(e,n,t,r,i)}async getTaskProcess(){return await this.home.getTaskProcess()}async haveSignIn(){return await this.home.haveSignIn()}async signCalendar(){return await this.home.signCalendar()}async gameSign(e,n){return await this.home.gameSignIn(e,n)}async bbsSign(){return await this.home.bbsSign()}async getRoleList(){return await this.profile.roleManager()}async adminAdjustScore(e,n,t){return await this.home.adminAdjustScore(e,n,t)}async adminDelete(e,n,t){return await this.home.adminDelete(e,n,t)}async adminMovePost(e,n,t,r){return await this.home.adminMovePost(e,n,t,r)}async adminRefreshTime(e,n){return await this.home.adminRefreshTime(e,n)}async blockList(){return await this.home.blockList()}async blockOther(e,n,t){return await this.home.blockOther(e,n,t)}async collect(e,n,t=1){return await this.home.collect(e,n,t)}async commentDelete(e,n,t,r){return await this.home.commentDelete(e,n,t,r)}async createComment(e,n){return await this.home.createComment(e,n)}async createReply(e,n){return await this.home.createReply(e,n)}async createReplyList(e,n){return await this.home.createReplyList(e,n)}async deletePost(e,n){return await this.home.deletePost(e,n)}async followUser(e,n){return await this.home.followUser(e,n)}async getFollowState(e){return await this.home.getFollowState(e)}async getDoujin(e){return await this.home.getDoujin(e)}async getExchange(e){return await this.home.getExchange(e)}async getGameBanner(e=l){return await this.home.getGameBanner(e)}async getPostCommentList(e,n=1,t=20,r=0){return await this.home.getPostCommentList(e,n,t,r)}async getRankList(e){return await this.home.getRankList(e)}async getRecommendPosts(e=l,n=1,t=20){return await this.home.getRecommendPosts(e,n,t)}async getReplyList(e,n,t=1,r=20){return await this.home.getReplyList(e,n,t,r)}async getStatistics(e=l){return await this.home.getStatistics(e)}async getTips(){return await this.home.getTips()}async getWalkthrough(e){return await this.home.getWalkthrough(e)}async hotList(e=1,n=l){return await this.home.hotList(e,n)}async isRedPoint(){return await this.home.isRedPoint()}async likePost(e){return await this.home.like(e)}async lockPost(e,n){return await this.home.lockPost(e,n)}async postDownOrUp(e,n){return await this.home.postDownOrUp(e,n)}async postElite(e,n){return await this.home.postElite(e,n)}async postHide(e,n){return await this.home.postHide(e,n)}async reRank(e,n){return await this.home.reRank(e,n)}async receiveLog(e,n,t){return await this.home.receiveLog(e,n,t)}async recommendList(e,n,t,r,i=l){return await this.home.recommendList(e,n,t,r,i)}async report({commentId:e=0,postId:n=0,replyId:t=0},r=1,i=1){return await this.home.report({commentId:e,postId:n,replyId:t},r,i)}async searchPost(e,n,t,r=l,i=1){return await this.home.searchPost(e,n,t,r,i)}async searchTopic(e,n,t=20,r=l){return await this.home.searchTopic(e,n,t,r)}async searchUser(e,n,t){return await this.home.searchUser(e,n,t)}async shareTask(){return await this.home.shareTask()}async strongRecommend(e,n=1){return await this.home.strongRecommend(e,n)}async viewCommunity(){return await this.home.viewCommunity()}async viewCount(e,n=l){return await this.home.viewCount(e,n)}async loginLog(){return await this.user.loginLog()}async login(e,n){return await this.user.login(e,n)}async getSmsCode(e,n){return await this.user.sendSms(e,n,1)}async getMine(e="",n=1,t=0){return await this.profile.mine(e,n,t)}async getOtherMine(e="709542994134436647",n=1,t=2){return await this.profile.mine(e,n,t)}async canEditNickName(){return await this.user.canEditNickName()}async cleanToken(){return await this.user.cleanToken()}async editGender(e){return await this.user.editGender(e)}async editNickName(e){return await this.user.editNickName(e)}async getCommonConfig(){return await this.user.getCommonConfig()}async getConfig(){return await this.user.getConfig()}async getConfigSwitch(){return await this.user.getConfigSwitch()}async getModeratorPermission(){return await this.user.getModeratorPermission()}async getOpenScreen(){return await this.user.getOpenScreen()}async getPublicKey(){return await this.user.getPublicKey()}async getUserGame(){return await this.user.getUserGame()}async getWikiData(){return await this.user.getWikiData()}async haveOfficialRole(){return await this.user.haveOfficialRole()}async oneTapLoginRestriction(){return await this.user.oneTapLoginRestriction()}async recommendConfig(){return await this.user.recommendConfig()}async refreshToken(e){return await this.user.refreshToken(e)}async register(e,n,t,r,i){return await this.user.register(e,n,t,r,i)}async saveUserInfo(e,n,t,r){return await this.user.saveUserInfo(e,n,t,r)}async signature(e){return await this.user.signature(e)}async updateHeadCode(e){return await this.user.updateHeadCode(e)}async updateHeadUrl(e){return await this.user.updateHeadUrl(e)}async updateProfileBg(e){return await this.user.updateProfileBg(e)}async uploadHead(e){return await this.user.uploadHead(e)}async uploadProfileBg(e){return await this.user.uploadProfileBg(e)}async getEmoji(){return await this.user.getEmoji()}async getGameConfig(){return await this.user.getGameConfig()}async getGameHeadCode(){return await this.user.getGameHeadCode()}async getMapCategorizeList(){return await this.h5.getMapCategorizeList()}async getMapDetail(e){return await this.h5.getMapDetail(e)}async getMapSiteDetail(e){return await this.h5.getMapSiteDetail(e)}async getEmojiList(){return await this.h5.getEmojiList()}async getMapMatterCategorizeOptions(){return await this.h5.getMapMatterCategorizeOptions()}async blackUser(e,n){return await this.profile.blackUser(e,n)}async cleanFansNew(e,n){return await this.profile.cleanFansNew(e,n)}async defaultRole(e,n=1){return await this.profile.defaultRole(e,n)}async deleteRole(e){return await this.profile.deleteRole(e)}async draftDelete(e){return await this.profile.draftDelete(e)}async fans(e,n,t,r){return await this.profile.fans(e,n,t,r)}async fastBind(){return await this.profile.fastBind()}async follow(e,n,t,r){return await this.profile.follow(e,n,t,r)}async getApplyStatus(){return await this.profile.getApplyStatus()}async getDraftList(e,n){return await this.profile.getDraftList(e,n)}async getMineComment(e,n,t,r){return await this.profile.getMineComment(e,n,t,r)}async getMinePost(e,n,t,r,i,s){return await this.profile.getMinePost(e,n,t,r,i,s)}async getProfileNotifySwitch(){return await this.profile.getNotifySwitch()}async historyView(e,n){return await this.profile.historyView(e,n)}async likeProfilePost(e){return await this.profile.like(e)}async manualBound(e,n,t){return await this.profile.manualBound(e,n,t)}async mine(e,n,t,r){return await this.profile.mine(e,n,t,r)}async mineV2(e){return await this.profile.mineV2(e)}async moderatorByGame(e){return await this.profile.moderatorByGame(e)}async muteCancel(e){return await this.profile.muteCancel(e)}async muteUser(e,n,t,r,i){return await this.profile.muteUser(e,n,t,r,i)}async resetDefault(e){return await this.profile.resetDefault(e)}async addAddress(e,n,t){return await this.setting.addAddress(e,n,t)}async cancelCode(e){return await this.setting.cancelCode(e)}async cancel(e,n,t,r,i){return await this.setting.cancel(e,n,t,r,i)}async deleteAddress(e){return await this.setting.deleteAddress(e)}async editAddress(e,n,t,r){return await this.setting.editAddress(e,n,t,r)}async feedback(e,n,t,r){return await this.setting.feedback(e,n,t,r)}async getCancelStatus(){return await this.setting.getCancelStatus()}async getPrivateSet(){return await this.setting.getPrivateSet()}async getUserAddress(e,n){return await this.setting.getUserAddress(e,n)}async getUserBlackList(e,n){return await this.setting.getUserBlackList(e,n)}async msgListDetail(e,n,t){return await this.setting.msgListDetail(e,n,t)}async postListDetail(e,n,t){return await this.setting.postListDetail(e,n,t)}async privateSet(e,n){return await this.setting.privateSet(e,n)}async sendSms(e,n,t){return await this.setting.sendSms(e,n,t)}async setDefaultAddress(e){return await this.setting.setDefaultAddress(e)}async setNotifySwitch(e,n){return await this.setting.setNotifySwitch(e,n)}async uploadFeedBack(e){return await this.setting.uploadFeedBack(e)}async draftSave(e,n,t,r,i,s,a){return await this.trend.draftSave(e,n,t,r,i,s,a)}async getConfigTopicByGameId(e,n){return await this.trend.getConfigTopicByGameId(e,n)}async getPostPublishPage(){return await this.trend.getPostPublishPage()}async getRecommend(e,n){return await this.trend.getRecommend(e,n)}async getVodToken(e,n){return await this.trend.getVodToken(e,n)}async trendList(e,n,t){return await this.trend.list(e,n,t)}async parseLink(e){return await this.trend.parseLink(e)}async posAdminEdit(e,n,t,r,i,s,a,o,b){return await this.trend.posAdminEdit(e,n,t,r,i,s,a,o,b)}async postEdit(e,n,t,r,i,s,a,o){return await this.trend.postEdit(e,n,t,r,i,s,a,o)}async postPublish(e,n,t,r,i,s,a,o){return await this.trend.postPublish(e,n,t,r,i,s,a,o)}async safeCheck(e){return await this.trend.safeCheck(e)}async uploadImage(e){return await this.trend.uploadImage(e)}async videoPostPublish(e,n,t,r,i,s,a,o){return await this.trend.videoPostPublish(e,n,t,r,i,s,a,o)}async apply(e,n,t,r,i,s,a,o){return await this.userGrowing.apply(e,n,t,r,i,s,a,o)}async awardList(e){return await this.userGrowing.awardList(e)}async awardWin(e,n,t,r){return await this.userGrowing.awardWin(e,n,t,r)}async buyGold(e,n){return await this.userGrowing.buyGold(e,n)}async buyProduct(e,n,t,r){return await this.userGrowing.buyProduct(e,n,t,r)}async drawDetail(e){return await this.userGrowing.drawDetail(e)}async getAliProductConfig(){return await this.userGrowing.getAliProductConfig()}async getAliProductList(e,n,t){return await this.userGrowing.getAliProductList(e,n,t)}async getApplyPage(){return await this.userGrowing.getApplyPage()}async getExpLogsList(e,n,t){return await this.userGrowing.getExpLogsList(e,n,t)}async getGameCreator(){return await this.userGrowing.getGameCreator()}async getGoldDetailList(e,n,t,r){return await this.userGrowing.getGoldDetailList(e,n,t,r)}async getProductList(e,n,t,r){return await this.userGrowing.getProductList(e,n,t,r)}async getTotalGold(e){return await this.userGrowing.getTotalGold(e)}async getUserGameLevel(e,n,t){return await this.userGrowing.getUserGameLevel(e,n,t)}async getUserGameTaskProcess(e,n){return await this.userGrowing.getUserGameTaskProcess(e,n)}async list(e,n,t,r){return await this.userGrowing.list(e,n,t,r)}async page(){return await this.userGrowing.page()}async productDetail(e){return await this.userGrowing.productDetail(e)}}export{W as swapForUploadImgApp,Z as signature_hash,G as rsa_encrypt,v as rand_str,J as md5_upper,H as build_upload_signature,V as build_signature,O as aesDecryptImageUrl,T as UserGrowingAPI,P as UserAPI,I as TrendAPI,p as TimeBasicResponse,R as SettingAPI,E as RespCode,x as ProfileAPI,Y as PostContentType,L as HomeAPI,F as H5API,y as GameAPI,l as DNA_GAME_ID,m as DNASubModule,_ as DNABaseAPI,$ as DNAAPI};
|
|
4
|
+
-----END PUBLIC KEY-----`,i=D.pki.publicKeyFromPem(r),s=D.util.encodeUtf8(e),a=i.encrypt(s);return D.util.encode64(a)}catch(t){throw Error(`[DNA] RSA 加密失败: ${t.message}`)}}function O(e=16){let t="";for(let r=0;r<e;r++)t+="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".charAt(Math.floor(Math.random()*62));return t}function Y(e){let n=D.md.md5.create();return n.update(e),n.digest().toHex().toUpperCase()}function $(e){function n(t,r){let i=t.split("");for(let s=1;s<r.length;s+=2){let a=r[s-1],o=r[s];if(a>=0&&a<i.length&&o>=0&&o<i.length)[i[a],i[o]]=[i[o],i[a]]}return i.join("")}return n(Y(e),[1,13,5,17,7,23])}function z(e,n){let t=[],r=Object.keys(e).sort();for(let s of r){let a=e[s];if(a!==null&&a!==void 0&&a!=="")t.push(`${s}=${a}`)}let i=t.join("&");return $(`${i}&${n}`)}function j(e,n){let t=Date.now(),r={...e,timestamp:t,token:n},i=O(16),s=z(r,i);return{s:ee(s,i),t,k:i}}function K(e){let n=O(16),t=M(n,e);return{signature:J(t),key:n}}function J(e){let n=e.split(""),t=[[3,23],[11,32],[22,42],[25,48]];for(let[r,i]of t)if(r<n.length&&i<n.length)[n[r],n[i]]=[n[i],n[r]];return n.join("")}function Z(e,n){let t=J(e),r=D.util.decode64(t),i=D.cipher.createDecipher("AES-CBC",n);return i.start({iv:"A-16-Byte-String"}),i.update(D.util.createBuffer(r)),i.finish(),i.output.getBytes()}function ee(e,n){let t=new TextEncoder,r=t.encode(e),i=t.encode(n),s=[];for(let a=0;a<r.length;a++){let d=(r[a]&255)+(i[a%i.length]&255);s.push(`@${d}`)}return s.join("")}class L{dev_code;token;fetchFn;is_h5=!1;RSA_PUBLIC_KEY="MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDGpdbezK+eknQZQzPOjp8mr/dP+QHwk8CRkQh6C6qFnfLH3tiyl0pnt3dePuFDnM1PUXGhCkQ157ePJCQgkDU2+mimDmXh0oLFn9zuWSp+U8uLSLX3t3PpJ8TmNCROfUDWvzdbnShqg7JfDmnrOJz49qd234W84nrfTHbzdqeigQIDAQAB";BASE_URL="https://dnabbs-api.yingxiong.com/";KF_BASE_URL="https://kf.yingxiong.com/";uploadKey="";sign_api_urls=new Set;constructor(e,n="",t={}){this.dev_code=e;this.token=n;if(this.fetchFn=t.fetchFn,t.is_h5!==void 0)this.is_h5=t.is_h5;if(t.rsa_public_key!==void 0)this.RSA_PUBLIC_KEY=t.rsa_public_key}async fileUpload(e,n){let t=await this._dna_request(e,n,{sign:!0});if(t.is_success&&t.data)t.data=t.data.map((r)=>Z(r,this.uploadKey));return t}async getRsaPublicKey(){if(this.RSA_PUBLIC_KEY)return this.RSA_PUBLIC_KEY;let e=await this._dna_request("config/getRsaPublicKey");if(e.is_success&&e.data){let n=e.data.key;if(typeof n==="string")this.RSA_PUBLIC_KEY=n}return this.RSA_PUBLIC_KEY}async getHeaders(e){let{payload:n,exparams:t,dev_code:r=this.dev_code,refer:i,token:s=this.token,tokenSig:a,h5:o,kf:d}=e||{},S="application/x-www-form-urlencoded; charset=utf-8",U={version:"1.1.3",source:"ios","Content-Type":"application/x-www-form-urlencoded; charset=utf-8","User-Agent":"DoubleHelix/4 CFNetwork/3860.100.1 Darwin/25.0.0"},E={version:"3.11.0",source:"h5","Content-Type":"application/x-www-form-urlencoded; charset=utf-8","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"},h={version:"3.11.0",Referer:`https://kf.yingxiong.com/kf2.0/user-center?game_id=2277&herot=${Date.now()}`,"User-Agent":"Mozilla/5.0 (Linux; Android 16; PLQ110 Build/BP2A.250605.015; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/143.0.7499.192 Mobile Safari/537.36CP6.TgzO Hero/1.1.4"},C=this.is_h5||o||!1,g=d?h:C?E:U;if(r)g.devCode=r;if(i||C)g.origin="https://dnabbs.yingxiong.com",g.refer="https://dnabbs.yingxiong.com/";if(s)g.token=s;if(n instanceof FormData){let c=await this.getRsaPublicKey(),{signature:l,key:N}=K(c);if(g.t=l,this.uploadKey=N,t)for(let[f,B]of Object.entries(t))n.append(f,String(B));delete g["Content-Type"]}else if(typeof n==="object"){let c=j(n,a?s:"");if(Object.assign(n,{sign:c.s,timestamp:c.t}),t)Object.assign(n,t);let l=new URLSearchParams;Object.entries(n).forEach(([w,_])=>{l.append(w,String(_))}),n=l.toString();let N=c.k,f=await this.getRsaPublicKey(),B=M(N,f);if(this.is_h5)g.k=B;else g.rk=N,g.key=B}return{headers:g,payload:n}}async needSign(e){if(this.sign_api_urls.size===0)try{await this.initializeSignConfig()}catch(n){console.error("初始化签名配置失败:",n),this.sign_api_urls=new Set(["/user/sdkLogin","/forum/postPublish","/forum/comment/createComment","/forum/comment/createReply","/user/getSmsCode","/role/defaultRoleForTool","/media/av/cfg/getVideos","/media/av/cfg/getAudios","/media/av/cfg/getImages","/encourage/signin/signin"].map((t)=>t.replace(/^\/+/,"")))}return this.sign_api_urls.has(e)}async initializeSignConfig(){try{let e=await this._dna_request("config/getCommonConfig",void 0,{sign:!1});if(e.is_success&&e.data?.signApiConfigVo?.signApiList)this.sign_api_urls=new Set(e.data.signApiConfigVo.signApiList.map((n)=>n.replace(/^\/+/,"")))}catch(e){console.error("初始化签名配置失败:",e)}}async _dna_request_h5(e,n,t){return await this._dna_request(e,n,{...t,h5:!0})}async _dna_request_kf(e,n,t){return await this._dna_request(e,n,{...t,kf:!0})}async _dna_request(e,n,t){let{method:r="POST",sign:i,h5:s,kf:a,refer:o,params:d,max_retries:S=3,retry_delay:U=1,timeout:E=1e4,token:h,tokenSig:C}=t||{};if(e.startsWith("/"))e=e.slice(1);if(i===void 0&&await this.needSign(e))i=!0;let g;if(i){let{payload:c,headers:l}=await this.getHeaders({payload:n,refer:o,exparams:d,token:h?this.token:void 0,tokenSig:C,h5:s});n=c,g=l}else{let{headers:c}=await this.getHeaders({token:h?this.token:void 0,refer:o,h5:s,kf:a});g=c}for(let c=0;c<S;c++)try{let l=n;if(n&&typeof n==="object"&&!(n instanceof FormData)){let y=new URLSearchParams;Object.entries(n).forEach(([X,W])=>{if(W!==void 0)y.append(X,String(W))}),l=y.toString()}let N=r==="GET"?{method:r,headers:g}:{method:r,headers:g,body:l},f=new AbortController,B=setTimeout(()=>f.abort(),E),w={...N,signal:f.signal},_=a?this.KF_BASE_URL:this.BASE_URL,H=r==="GET"?`${_}${e}${l?`?${l}`:""}`:`${_}${e}`,G=this.fetchFn?await this.fetchFn(H,w):await fetch(H,w);clearTimeout(B);let Q=G.headers.get("content-type")||"",A;if(Q.includes("text/")){let y=await G.text();A={code:-999,data:y}}else A=await G.json();if(typeof A==="object"&&A!==null)try{if(typeof A.data==="string")A.data=JSON.parse(A.data)}catch{}return new p(A)}catch(l){if(console.error(`请求失败: ${l.message}`),c<S-1)await new Promise((N)=>setTimeout(N,U*2**c))}return p.err("请求服务器失败,已达最大重试次数")}}class m{_base;constructor(e){this._base=e}get dev_code(){return this._base.dev_code}get token(){return this._base.token}set token(e){this._base.token=e}get fetchFn(){return this._base.fetchFn}get is_h5(){return this._base.is_h5}get RSA_PUBLIC_KEY(){return this._base.RSA_PUBLIC_KEY}get BASE_URL(){return this._base.BASE_URL}get uploadKey(){return this._base.uploadKey}async getRsaPublicKey(){return this._base.getRsaPublicKey()}async fileUpload(e,n){return await this._base.fileUpload(e,n)}async _dna_request(e,n,t){return this._base._dna_request(e,n,t)}async _dna_request_h5(e,n,t){return this._base._dna_request_h5(e,n,t)}async _dna_request_kf(e,n,t){return this._base._dna_request_kf(e,n,t)}async getHeaders(e){return this._base.getHeaders(e)}}class x extends m{async defaultRoleForTool(e=1,n){let t={otherUserId:n,type:e};if(!n)delete t.otherUserId;return await this._dna_request("role/defaultRoleForTool",t,{sign:!0,token:!0,tokenSig:!0})}async getMhSwitchStatus(){return await this._dna_request("user/push/getMhSwitchStatus")}async getRoleDetail(e,n,t){let r={charId:e,charEid:n,type:1,otherUserId:t};return await this._dna_request("role/getCharDetail",r)}async getShortNoteInfo(){return await this._dna_request("role/getShortNoteInfo")}async getWeaponDetail(e,n,t){let r={weaponId:e,weaponEid:n,type:1,otherUserId:t};return await this._dna_request("role/getWeaponDetail",r)}async updateMhSwitchStatus(e){return await this._dna_request("user/push/updateMhSwitchStatus",{config:e})}async soulTask(){return await this._dna_request("role/soul/task")}}class V extends m{async getMapMatterCategorizeOptions(){return await this._dna_request_h5("map/matter/categorize/getOptions")}async getMapCategorizeList(){return await this._dna_request_h5("map/categorize/list")}async getMapDetail(e){return await this._dna_request_h5("map/detail",{id:e})}async getMapSiteDetail(e){return await this._dna_request_h5("map/site/detail",{id:e})}async getEmojiList(){return await this._dna_request_h5("config/getEmoji")}}var u=268;class R extends m{async adminAdjustScore(e,n,t,r=u){let i={postId:e,gameId:r??u,gameForumId:n,weight:t};return await this._dna_request("forum/moderator/setPostWeight",i)}async adminDelete(e,n,t){let r={postId:e.postId,gameId:e.gameId??u,gameForumId:e.gameForumId,content:n,reasonCode:t};return await this._dna_request("forum/moderator/postDelete",r)}async adminMovePost(e,n,t,r){let i={postId:e.postId,gameId:e.gameId??u,gameForumId:e.gameForumId,newGameId:n,newForumId:t,newTopicIdStr:r};return await this._dna_request("forum/moderator/postMove",i)}async adminRefreshTime(e,n){let t={postId:e.postId,gameId:e.gameId??u,gameForumId:e.gameForumId,refresh:n};return await this._dna_request("forum/moderator/setRefresh",t)}async blockList(){return await this._dna_request("user/block/list")}async blockOther(e,n,t){return await this._dna_request("user/block/other",{blockPostId:e,blockUserId:n,type:t})}async collect(e,n,t=1){let r={operateType:t,postId:e,toUserId:n};return await this._dna_request("forum/collect",r)}async commentDelete(e,n,t,r){let i={id:e.id,gameId:e.gameId,gameForumId:e.gameForumId,entityType:n,content:t,reasonCode:r};return await this._dna_request("forum/commentReplyDelete",i)}async createComment(e,n){let t=JSON.stringify([{content:n,contentType:"1"}]),r={postId:e.postId,forumId:e.gameForumId,postType:"1",content:t};return await this._dna_request("forum/comment/createComment",r,{sign:!0,params:{toUserId:e.userId}})}async createReply(e,n){let r={content:JSON.stringify([{content:n,contentType:"1",imgHeight:0,imgWidth:0,url:""}]),forumId:e.gameForumId,postCommentId:e.postCommentId,postId:e.postId,postType:"1",toUserId:e.userId};return await this._dna_request("forum/comment/createReply",r,{sign:!0,params:{toUserId:e.userId}})}async createReplyList(e,n){let r={content:JSON.stringify([{content:n,contentType:"1",imgHeight:0,imgWidth:0,url:""}]),forumId:e.gameForumId,postCommentId:e.postCommentId,postCommentReplyId:e.postCommentReplyId,postId:e.postId,postType:"1",toUserId:e.userId};return await this._dna_request("forum/comment/createReply",r,{sign:!0,params:{toUserId:e.userId}})}async deletePost(e,n){return await this._dna_request("forum/more/delete",{deleteType:e,id:n},{sign:!0,refer:!0})}async followUser(e,n){let t={followUserId:e,operateType:n?0:1};return await this._dna_request("user/followUser",t,{sign:!0})}async getFollowState(e){let n={followUserId:e};return await this._dna_request("user/isFollow",n)}async gameSignIn(e,n){let t={dayAwardId:e,periodId:n,signinType:1};return await this._dna_request("encourage/signin/signin",t,{sign:!0,tokenSig:!0})}async getDoujin(e){return await this._dna_request("forum/discuss/getDoujin",{forumId:e})}async getExchange(e){return await this._dna_request("forum/discuss/getExchange",{forumId:e})}async getGameBanner(e=u){return await this._dna_request("forum/gameBanner",{gameId:e})}async getPostByTopic(e=177,n=1,t=20,r=1,i=0){let s={topicId:e,gameId:u,pageIndex:n,pageSize:t,searchType:r,timeType:i};return await this._dna_request("forum/getPostByTopic",s)}async getPostCommentList(e,n=1,t=20,r=0){return await this._dna_request("forum/comment/getPostCommentList",{postId:e,pageIndex:n,pageSize:t,isOnlyPublisher:r})}async getPostDetail(e){return await this._dna_request("forum/getPostDetail",{postId:e})}async getPostList(e=48,n=1,t=20,r=1,i=0){let s={forumId:e,gameId:u,pageIndex:n,pageSize:t,searchType:r,timeType:i};return await this._dna_request("forum/list",s)}async getRankList(e){return await this._dna_request("forum/discuss/getRank",{forumId:e})}async getRecommendPosts(e=u,n=1,t=20){return await this._dna_request("forum/getRecommendPosts",{gameId:e,pageIndex:n,pageSize:t})}async getReplyList(e,n,t=1,r=20){return await this._dna_request("forum/comment/getReplyList",{postId:e,postCommentId:n,pageIndex:t,pageSize:r})}async getStatistics(e=u){return await this._dna_request("forum/statistics",{gameId:e})}async getTips(){return await this._dna_request("config/getTips")}async getWalkthrough(e){return await this._dna_request("forum/discuss/getWalkthrough",{forumId:e})}async hotList(e=1,n=u){return await this._dna_request("forum/hot/ranking/list",{gameId:n,type:e})}async haveSignIn(){let e={gameId:u};return await this._dna_request("user/haveSignInNew",e)}async isRedPoint(){return await this._dna_request("forum/dynamic/isRedPoint")}async signCalendar(){let e={gameId:u};return await this._dna_request("encourage/signin/show",e)}async like(e){let n={forumId:e.gameForumId,gameId:u,likeType:"1",operateType:"1",postCommentId:"",postCommentReplyId:"",postId:e.postId,postType:e.postType,toUserId:e.userId};return await this._dna_request("forum/like",n)}async lockPost(e,n){let t={postId:e.postId,gameId:e.gameId??u,gameForumId:e.gameForumId,operateType:n};return await this._dna_request("forum/moderator/postLock",t)}async postDownOrUp(e,n){let t={postId:e.postId,gameId:e.gameId??u,gameForumId:e.gameForumId,operateType:n};return await this._dna_request("forum/moderator/postDownOrUp",t)}async postElite(e,n){let t={postId:e.postId,gameId:e.gameId??u,gameForumId:e.gameForumId,operateType:n};return await this._dna_request("forum/moderator/postElite",t)}async postHide(e,n){let t={postId:e.postId,gameId:e.gameId??u,gameForumId:e.gameForumId,operateType:n};return await this._dna_request("forum/moderator/postHide",t)}async reRank(e,n){let t={postId:e.postId,gameId:e.gameId??u,gameForumId:e.gameForumId,weight:n};return await this._dna_request("forum/moderator/reRank",t)}async receiveLog(e,n,t){let r={periodId:e,pageIndex:n,pageSize:t};return await this._dna_request("encourage/signin/receiveLog",r)}async recommendList(e,n,t,r,i=u){let s={gameId:i,recIndex:e,newIndex:n,size:t,history:r};return await this._dna_request("forum/recommend/list",s)}async report({commentId:e=0,postId:n=0,replyId:t=0},r=1,i=1){let s={commentId:e,postId:n,replyId:t,reportReason:r,reportType:i};return await this._dna_request("forum/more/report",s)}async searchPost(e,n,t,r=u,i=1){let s={gameId:r,keyword:e,pageIndex:n,pageSize:t,searchType:i};return await this._dna_request("forum/searchPost",s)}async searchTopic(e,n,t=20,r=u){let i={gameId:r,keyword:e,pageIndex:n,pageSize:t};return await this._dna_request("forum/searchPost",i)}async searchUser(e,n,t){let r={keyword:e,pageIndex:n,pageSize:t};return await this._dna_request("forum/searchPost",r)}async shareTask(){let e={gameId:u};return await this._dna_request("encourage/level/shareTask",e)}async bbsSign(){let e={gameId:u};return await this._dna_request("user/signIn",e)}async strongRecommend(e,n=1){let t={postId:e.postId,gameId:e.gameId??u,gameForumId:e.gameForumId,operateType:n};return await this._dna_request("forum/moderator/setForceRecommend",t)}async viewCommunity(){return await this._dna_request("encourage/level/viewCommunity")}async viewCount(e,n=u){return await this._dna_request("forum/viewCount",{gameId:n,postId:e})}async getTaskProcess(){let e={gameId:u};return await this._dna_request("encourage/level/getTaskProcess",e)}async soulTask(){return await this._dna_request("role/soul/task")}}class I extends m{async blackUser(e,n){return await this._dna_request("user/blackUser",{toUserId:e,type:n})}async cleanFansNew(e,n){return await this._dna_request("user/cleanFansNew",{type:e,userFollowId:n})}async collect(e,n,t=1){return await this._dna_request("forum/collect",{operateType:t,postId:e,toUserId:n})}async defaultRole(e,n=1){return await this._dna_request("user/defaultRole",{otherUserId:e,type:n})}async deleteRole(e){return await this._dna_request("role/remove",{roleBoundId:e})}async draftDelete(e){return await this._dna_request("forum/more/draftDelete",{draftId:e})}async fans(e,n,t,r){return await this._dna_request("user/fans",{otherUserId:e,pageNo:n,pageSize:t,type:r})}async fastBind(){return await this._dna_request("role/quickBound")}async follow(e,n,t,r){return await this._dna_request("user/follow",{otherUserId:e,pageNo:n,pageSize:t,type:r})}async followUser(e,n){return await this._dna_request("user/followUser",{followUserId:e,operateType:n?0:1})}async getApplyStatus(){return await this._dna_request("user/creator/getApplyStatus")}async getDraftList(e,n){return await this._dna_request("forum/getDraftList",{pageIndex:e,pageSize:n})}async getMineComment(e,n,t,r){return await this._dna_request("user/notice/mine",{otherUserId:e,pageIndex:n,pageSize:t,type:r})}async getMinePost(e,n,t,r,i,s){return await this._dna_request("forum/getMinePost",{otherUserId:e,pageIndex:n,pageSize:t,searchType:r,type:i,postType:s})}async getNotifySwitch(){return await this._dna_request("user/push/getSwitchStatus")}async historyView(e,n){return await this._dna_request("forum/historyView",{pageIndex:e,pageSize:n})}async like(e){return await this._dna_request("forum/like",e)}async manualBound(e,n,t){return await this._dna_request("role/manualBound",{roleId:e,type:n,code:t})}async mine(e,n,t,r){let i={otherUserId:e,searchType:n,type:t,postType:r};if(!e)delete i.otherUserId;return await this._dna_request("user/mine",i)}async mineV2(e){return await this._dna_request("user/mineV2",{otherUserId:e})}async moderatorByGame(e){return await this._dna_request("user/moderator/getModeratorByGame",{gameId:e})}async muteCancel(e){return await this._dna_request("forum/moderator/muteCancel",{toUserId:e})}async muteUser(e,n,t,r,i){return await this._dna_request("forum/moderator/muteUser",{toUserId:e,gameIdStr:n,type:t,reason:r,content:i})}async resetDefault(e){return await this._dna_request("role/resetDefault",{roleBoundId:e})}async roleManager(){return await this._dna_request("role/list")}}class P extends m{async addAddress(e,n,t){return await this._dna_request("user/more/userAddressAdd",{receiverName:e,receiverMobile:n,receiverAddress:t})}async blackUser(e,n){return await this._dna_request("user/blackUser",{toUserId:e,type:n})}async cancelCode(e){return await this._dna_request("user/more/cancelCode",{code:e})}async cancel(e,n,t,r,i){return await this._dna_request("user/more/cancel",{cancelType:e,operateType:n,position:t,cancelReason:r,reasonDetail:i})}async deleteAddress(e){return await this._dna_request("user/more/deleteUserAddress",{addressId:e})}async editAddress(e,n,t,r){return await this._dna_request("user/more/userAddressEdit",{addressId:e,receiverName:n,receiverMobile:t,receiverAddress:r})}async feedback(e,n,t,r){return await this._dna_request("user/more/feedback",{listPic:e,proDesc:n,mobile:t,isLogin:r})}async getCancelStatus(){return await this._dna_request("user/more/getCancelStatus")}async getNotifySwitch(){return await this._dna_request("user/push/getSwitchStatus")}async getPrivateSet(){return await this._dna_request("user/getPrivateSet")}async getUserAddress(e,n){return await this._dna_request("user/more/getUserAddress",{userId:e,type:n})}async getUserBlackList(e,n){return await this._dna_request("user/getUserBlackList",{pageIndex:e,pageSize:n})}async msgListDetail(e,n,t){return await this._dna_request("user/block/listDetail",{pageNo:e,pageSize:n,type:t})}async postListDetail(e,n,t){return await this._dna_request("user/block/listDetail",{pageNo:e,pageSize:n,type:t})}async privateSet(e,n){return await this._dna_request("user/privateSet",{operateType:e,option:n})}async sendSms(e,n,t){return await this._dna_request("user/sms/sendSms",{mobile:e,timeStamp:n,type:t})}async setDefaultAddress(e){return await this._dna_request("user/more/setDefaultAddress",{addressId:e})}async setNotifySwitch(e,n){return await this._dna_request("user/push/updateSwitchStatus",{operateType:e,switchType:n})}async uploadFeedBack(e){let n=new FormData;return n.append("parts",e),await this.fileUpload("user/img/uploadFeedBack",n)}}class T extends m{async draftSave(e,n,t,r,i,s,a){return await this._dna_request("forum/draftSave",{content:e,draftId:n,h5Content:t,postTitle:r,postType:i,gameId:s,videoReUpload:a})}async followUser(e,n){return await this._dna_request("user/followUser",{followUserId:e,operateType:n})}async getConfigTopicByGameId(e,n){return await this._dna_request("config/getConfigTopicByGameId",{name:e,showType:n})}async getPostPublishPage(){return await this._dna_request("forum/getPostPublishPage")}async getRecommend(e,n){return await this._dna_request("user/getRecommend",{history:e,pageSize:n})}async getTips(){return await this._dna_request("config/getTips")}async getVodToken(e,n){return await this._dna_request("forum/getVodToken",{fileName:e,title:n})}async like(e,n,t,r,i,s,a,o,d){return await this._dna_request("forum/like",{forumId:e,gameId:n,likeType:t,operateType:r,postCommentId:i,postCommentReplyId:s,postId:a,postType:o,toUserId:d})}async list(e,n,t){return await this._dna_request("forum/dynamic/list",{pageIndex:e,pageSize:n,userId:t})}async parseLink(e){return await this._dna_request("forum/parseLink",{link:e})}async posAdminEdit(e,n,t,r,i,s,a,o,d){return await this._dna_request("forum/moderator/postEdit",{content:e,gameForumId:n,h5Content:t,postId:r,postTitle:i,topics:s,postType:a,gameId:o,videoReUpload:d})}async postEdit(e,n,t,r,i,s,a,o){return await this._dna_request("forum/postEdit",{content:e,gameForumId:n,h5Content:t,postId:r,postTitle:i,topics:s,postType:a,videoReUpload:o})}async postPublish(e,n,t,r,i,s,a,o){return await this._dna_request("forum/postPublish",{content:e,draftId:n,gameForumId:t,gameId:r,h5Content:i,postTitle:s,postType:a,topics:o})}async safeCheck(e){return await this._dna_request("forum/more/safeCheck",{url:e})}async uploadImage(e){let n=new FormData;return n.append("files",e),n.append("type","post"),await this.fileUpload("config/img/upload",n)}async videoPostPublish(e,n,t,r,i,s,a,o){return await this._dna_request("forum/moderator/postPublish",{content:e,draftId:n,gameForumId:t,gameId:r,h5Content:i,postTitle:s,postType:a,topics:o})}async viewCount(e,n){return await this._dna_request("forum/viewCount",{gameId:e,postId:n})}}var ne;((r)=>{r[r.TEXT=1]="TEXT";r[r.IMAGE=2]="IMAGE";r[r.VIDEO=5]="VIDEO"})(ne||={});var b=268;class q extends m{async loginLog(){return await this._dna_request("user/login/log")}async blockList(){return await this._dna_request("user/block/list")}async canEditNickName(){return await this._dna_request("user/canUpdateNameTimes")}async cancel(e,n,t,r,i){return await this._dna_request("user/more/cancel",{cancelType:e,operateType:n,position:t,cancelReason:r,reasonDetail:i})}async cleanToken(){return await this._dna_request("user/cleanToken")}async editGender(e){return await this._dna_request("user/editGender",{gender:e})}async editNickName(e){return await this._dna_request("user/updateName",{userName:e})}async getCommonConfig(){return await this._dna_request("config/getCommonConfig")}async getConfig(){return await this._dna_request("config/getConfig")}async getConfigSwitch(){return await this._dna_request("config/switchAll")}async getModeratorPermission(){return await this._dna_request("user/moderator/getModeratorPermission")}async getOpenScreen(){return await this._dna_request("config/getOpenScreen")}async getPublicKey(){return await this._dna_request("config/getRsaPublicKey")}async getUserGame(){return await this._dna_request("user/getUserGame")}async getWikiData(){return await this._dna_request("config/getGameWiki")}async haveOfficialRole(){return await this._dna_request("role/haveOfficialRole")}async isRedPoint(){return await this._dna_request("forum/dynamic/isRedPoint")}async login(e,n){let t={code:n,devCode:this.dev_code,gameList:b,loginType:1,mobile:e},r=await this._dna_request("user/sdkLogin",t,{sign:!0});if(r.is_success&&r.data){let i=r.data;if(typeof i.token==="string")this.token=i.token}return r}async oneTapLoginRestriction(){return await this._dna_request("user/oneTapLoginRestriction")}async recommendConfig(){return await this._dna_request("forum/recommend/config")}async refreshToken(e){return await this._dna_request("user/refreshToken",{refreshToken:e})}async register(e,n,t,r,i){return await this._dna_request("user/register",{code:e,devCode:n,gameList:t,mobile:r,password:i})}async saveUserInfo(e,n,t,r){return await this._dna_request("user/saveUserInfo",{gender:e,headCode:n,headUrl:t,userName:r})}async sendSms(e,n,t){return await this._dna_request("user/getSmsCode",{mobile:e,isCaptcha:t,vJson:n})}async signature(e){return await this._dna_request("user/edit/signature",{newSignature:e})}async updateHeadCode(e){return await this._dna_request("user/updateHeadCode",{headCode:e})}async updateHeadUrl(e){return await this._dna_request("user/updateHeadUrl",{headUrl:e})}async updateProfileBg(e){return await this._dna_request("user/updateBg",{bgUrl:e})}async uploadHead(e){let n=new FormData;return n.append("parts",e),await this.fileUpload("user/img/uploadHead",n)}async uploadProfileBg(e){let n=new FormData;return n.append("parts",e),await this.fileUpload("user/img/uploadMineBg",n)}async getEmoji(){return await this._dna_request("config/getEmoji")}async getGameConfig(){return await this._dna_request("config/getGameConfig")}async getGameHeadCode(){return await this._dna_request("user/getGameHeadCode")}}class k extends m{async addAddress(e,n,t){return await this._dna_request("user/more/userAddressAdd",{receiverName:e,receiverMobile:n,receiverAddress:t})}async apply(e,n,t,r,i,s,a,o){return await this._dna_request("user/creator/apply",{type:e,id:n,concatWay:t,otherPlatform:r,otherPlatformUrl:i,otherPlatformFans:s,materialUrl:a,gameId:o})}async awardList(e){return await this._dna_request("encourage/draw/awardList",{drawId:e})}async awardWin(e,n,t,r){return await this._dna_request("/encourage/draw/awardWin",{drawId:e,fullName:n,mobile:t,address:r})}async buyGold(e,n){return await this._dna_request("encourage/draw/buy",{drawId:e,count:n})}async buyProduct(e,n,t,r){return await this._dna_request("/encourage/store/buyProduct",{address:e,fullName:n,mobile:t,productId:r})}async deleteAddress(e){return await this._dna_request("user/more/deleteUserAddress",{addressId:e})}async drawDetail(e){return await this._dna_request("encourage/draw/detail",{drawId:e})}async editAddress(e,n,t,r){return await this._dna_request("user/more/userAddressEdit",{addressId:e,receiverName:n,receiverMobile:t,receiverAddress:r})}async getAliProductConfig(){return await this._dna_request("encourage/store/ali/getAliStoreConfigAndBanner")}async getAliProductList(e,n,t){return await this._dna_request("encourage/store/ali/productList",{gameId:e,pageIndex:n,pageSize:t})}async getApplyPage(){return await this._dna_request("user/creator/getApplyPage")}async getExpLogsList(e,n,t){return await this._dna_request("encourage/level/getExpLogs",{gameId:e,pageIndex:n,pageSize:t})}async getGameCreator(){return await this._dna_request("config/identification/getGameCreator")}async getGoldDetailList(e,n,t,r){return await this._dna_request("encourage/gold/getGoldLogs",{pageIndex:e,pageSize:n,type:t,storeType:r})}async getProductList(e,n,t,r){return await this._dna_request("encourage/store/productList",{gameId:e,pageIndex:n,pageSize:t,storeType:r})}async getTotalGold(e){if(e!==void 0)return await this._dna_request("encourage/gold/getTotalGold",{type:e});return await this._dna_request("encourage/gold/getTotalGold")}async getUserAddress(e,n){return await this._dna_request("user/more/getUserAddress",{userId:e,type:n})}async getUserGameLevel(e,n,t){return await this._dna_request("encourage/level/getUserGameLevelDetail",{gameId:e,ifProcess:n,otherUserId:t})}async getUserGameTaskProcess(e,n){return await this._dna_request("encourage/level/getTaskProcess",{gameId:e,userId:n})}async list(e,n,t,r){return await this._dna_request("encourage/draw/list",{pageIndex:e,pageSize:n,queryType:t,gameId:r})}async page(){return await this._dna_request("user/creator/page")}async productDetail(e){return await this._dna_request("encourage/store/productDetail",{productId:e})}async setDefaultAddress(e){return await this._dna_request("user/more/setDefaultAddress",{addressId:e})}async uploadImage(e){let n=new FormData;return n.append("parts",e),await this.fileUpload("user/img/uploadHead",n)}}class v extends m{base_param={game_id:2277,lang:"zh"};async getUserInfo(){return this._dna_request_kf("/v1/frontend/login/getUserInfo",this.base_param,{method:"GET"})}async getRole(){return this._dna_request_kf("/v1/frontend/role/getRole",this.base_param,{method:"GET"})}async sendGameMail(e,n=29046){return this._dna_request_kf("/v1/public/role/sendGameMail",{...this.base_param,server_id:n,role:e})}async verifyRoleMailCode(e){return this._dna_request_kf("/v1/frontend/role/verify",{...this.base_param,mail_code:e})}async getServerType(e=2277){return this._dna_request_kf("/v1/public/select/serverType",{...this.base_param,game_id:e},{method:"GET"})}async getServerList(e=230){return this._dna_request_kf("/v1/public/select/getServerList",{...this.base_param,type_id:e},{method:"GET"})}async getPropCategory(){return this._dna_request_kf("/v1/public/selfService/getPropCategory",this.base_param,{method:"GET"})}async queryFlow(e,n,t,r="Resource",i=29046){return this._dna_request_kf("/v1/frontend/selfService/queryFlow",{date:e,name:n,role:t,server_id:i,category_id:r})}async bindRole(e,n,t){return this._dna_request_kf("/v1/frontend/role/bindRole",{server_id:e,role:n,mail_code:t})}async bindDefaultRole(){return this._dna_request_kf("/v1/public/role/default",this.base_param)}async getCode(){return this._dna_request_kf("/v1/frontend/selfService/getCode")}async sendVerifyCode(){return this._dna_request_kf("/v1/frontend/selfService/sendVerifyCode")}async changePhone(){return this._dna_request_kf("/v1/frontend/selfService/changePhone")}async chooseRole(){return this._dna_request_kf("/v1/frontend/role/chooseRole")}async decodePhone(e){return this._dna_request_kf("/v1/public/kf/decode",{verify_code:e})}async captcha(){return this._dna_request_kf("/v1/public/login/captcha",void 0,{method:"GET"})}}class te extends L{game;home;profile;setting;trend;user;kf;userGrowing;h5;constructor({dev_code:e="",token:n="",...t}={}){super(e,n,t);this.game=new x(this),this.home=new R(this),this.profile=new I(this),this.setting=new P(this),this.trend=new T(this),this.user=new q(this),this.userGrowing=new k(this),this.h5=new V(this),this.kf=new v(this)}async initialize(){await this.initializeSignConfig()}get GAME_ID(){return b}async getMhSwitchStatus(){return await this.game.getMhSwitchStatus()}async updateMhSwitchStatus(e){return await this.game.updateMhSwitchStatus(e)}async soulTask(){return await this.game.soulTask()}async defaultRoleForTool(e=1,n){return await this.game.defaultRoleForTool(e,n)}async getRoleDetail(e,n,t){return await this.game.getRoleDetail(e,n,t)}async getWeaponDetail(e,n,t){return await this.game.getWeaponDetail(e,n,t)}async getShortNoteInfo(){return await this.game.getShortNoteInfo()}async getPostList(e=48,n=1,t=20,r=1,i=0){return await this.home.getPostList(e,n,t,r,i)}async getPostDetail(e){return await this.home.getPostDetail(e)}async getPostByTopic(e=177,n=1,t=20,r=1,i=0){return await this.home.getPostByTopic(e,n,t,r,i)}async getTaskProcess(){return await this.home.getTaskProcess()}async haveSignIn(){return await this.home.haveSignIn()}async signCalendar(){return await this.home.signCalendar()}async gameSign(e,n){return await this.home.gameSignIn(e,n)}async bbsSign(){return await this.home.bbsSign()}async getRoleList(){return await this.profile.roleManager()}async adminAdjustScore(e,n,t){return await this.home.adminAdjustScore(e,n,t)}async adminDelete(e,n,t){return await this.home.adminDelete(e,n,t)}async adminMovePost(e,n,t,r){return await this.home.adminMovePost(e,n,t,r)}async adminRefreshTime(e,n){return await this.home.adminRefreshTime(e,n)}async blockList(){return await this.home.blockList()}async blockOther(e,n,t){return await this.home.blockOther(e,n,t)}async collect(e,n,t=1){return await this.home.collect(e,n,t)}async commentDelete(e,n,t,r){return await this.home.commentDelete(e,n,t,r)}async createComment(e,n){return await this.home.createComment(e,n)}async createReply(e,n){return await this.home.createReply(e,n)}async createReplyList(e,n){return await this.home.createReplyList(e,n)}async deletePost(e,n){return await this.home.deletePost(e,n)}async followUser(e,n){return await this.home.followUser(e,n)}async getFollowState(e){return await this.home.getFollowState(e)}async getDoujin(e){return await this.home.getDoujin(e)}async getExchange(e){return await this.home.getExchange(e)}async getGameBanner(e=b){return await this.home.getGameBanner(e)}async getPostCommentList(e,n=1,t=20,r=0){return await this.home.getPostCommentList(e,n,t,r)}async getRankList(e){return await this.home.getRankList(e)}async getRecommendPosts(e=b,n=1,t=20){return await this.home.getRecommendPosts(e,n,t)}async getReplyList(e,n,t=1,r=20){return await this.home.getReplyList(e,n,t,r)}async getStatistics(e=b){return await this.home.getStatistics(e)}async getTips(){return await this.home.getTips()}async getWalkthrough(e){return await this.home.getWalkthrough(e)}async hotList(e=1,n=b){return await this.home.hotList(e,n)}async isRedPoint(){return await this.home.isRedPoint()}async likePost(e){return await this.home.like(e)}async lockPost(e,n){return await this.home.lockPost(e,n)}async postDownOrUp(e,n){return await this.home.postDownOrUp(e,n)}async postElite(e,n){return await this.home.postElite(e,n)}async postHide(e,n){return await this.home.postHide(e,n)}async reRank(e,n){return await this.home.reRank(e,n)}async receiveLog(e,n,t){return await this.home.receiveLog(e,n,t)}async recommendList(e,n,t,r,i=b){return await this.home.recommendList(e,n,t,r,i)}async report({commentId:e=0,postId:n=0,replyId:t=0},r=1,i=1){return await this.home.report({commentId:e,postId:n,replyId:t},r,i)}async searchPost(e,n,t,r=b,i=1){return await this.home.searchPost(e,n,t,r,i)}async searchTopic(e,n,t=20,r=b){return await this.home.searchTopic(e,n,t,r)}async searchUser(e,n,t){return await this.home.searchUser(e,n,t)}async shareTask(){return await this.home.shareTask()}async strongRecommend(e,n=1){return await this.home.strongRecommend(e,n)}async viewCommunity(){return await this.home.viewCommunity()}async viewCount(e,n=b){return await this.home.viewCount(e,n)}async loginLog(){return await this.user.loginLog()}async login(e,n){return await this.user.login(e,n)}async getSmsCode(e,n){return await this.user.sendSms(e,n,1)}async getMine(e="",n=1,t=0){return await this.profile.mine(e,n,t)}async getOtherMine(e="709542994134436647",n=1,t=2){return await this.profile.mine(e,n,t)}async canEditNickName(){return await this.user.canEditNickName()}async cleanToken(){return await this.user.cleanToken()}async editGender(e){return await this.user.editGender(e)}async editNickName(e){return await this.user.editNickName(e)}async getCommonConfig(){return await this.user.getCommonConfig()}async getConfig(){return await this.user.getConfig()}async getConfigSwitch(){return await this.user.getConfigSwitch()}async getModeratorPermission(){return await this.user.getModeratorPermission()}async getOpenScreen(){return await this.user.getOpenScreen()}async getPublicKey(){return await this.user.getPublicKey()}async getUserGame(){return await this.user.getUserGame()}async getWikiData(){return await this.user.getWikiData()}async haveOfficialRole(){return await this.user.haveOfficialRole()}async oneTapLoginRestriction(){return await this.user.oneTapLoginRestriction()}async recommendConfig(){return await this.user.recommendConfig()}async refreshToken(e){return await this.user.refreshToken(e)}async register(e,n,t,r,i){return await this.user.register(e,n,t,r,i)}async saveUserInfo(e,n,t,r){return await this.user.saveUserInfo(e,n,t,r)}async signature(e){return await this.user.signature(e)}async updateHeadCode(e){return await this.user.updateHeadCode(e)}async updateHeadUrl(e){return await this.user.updateHeadUrl(e)}async updateProfileBg(e){return await this.user.updateProfileBg(e)}async uploadHead(e){return await this.user.uploadHead(e)}async uploadProfileBg(e){return await this.user.uploadProfileBg(e)}async getEmoji(){return await this.user.getEmoji()}async getGameConfig(){return await this.user.getGameConfig()}async getGameHeadCode(){return await this.user.getGameHeadCode()}async getMapCategorizeList(){return await this.h5.getMapCategorizeList()}async getMapDetail(e){return await this.h5.getMapDetail(e)}async getMapSiteDetail(e){return await this.h5.getMapSiteDetail(e)}async getEmojiList(){return await this.h5.getEmojiList()}async getMapMatterCategorizeOptions(){return await this.h5.getMapMatterCategorizeOptions()}async blackUser(e,n){return await this.profile.blackUser(e,n)}async cleanFansNew(e,n){return await this.profile.cleanFansNew(e,n)}async defaultRole(e,n=1){return await this.profile.defaultRole(e,n)}async deleteRole(e){return await this.profile.deleteRole(e)}async draftDelete(e){return await this.profile.draftDelete(e)}async fans(e,n,t,r){return await this.profile.fans(e,n,t,r)}async fastBind(){return await this.profile.fastBind()}async follow(e,n,t,r){return await this.profile.follow(e,n,t,r)}async getApplyStatus(){return await this.profile.getApplyStatus()}async getDraftList(e,n){return await this.profile.getDraftList(e,n)}async getMineComment(e,n,t,r){return await this.profile.getMineComment(e,n,t,r)}async getMinePost(e,n,t,r,i,s){return await this.profile.getMinePost(e,n,t,r,i,s)}async getProfileNotifySwitch(){return await this.profile.getNotifySwitch()}async historyView(e,n){return await this.profile.historyView(e,n)}async likeProfilePost(e){return await this.profile.like(e)}async manualBound(e,n,t){return await this.profile.manualBound(e,n,t)}async mine(e,n,t,r){return await this.profile.mine(e,n,t,r)}async mineV2(e){return await this.profile.mineV2(e)}async moderatorByGame(e){return await this.profile.moderatorByGame(e)}async muteCancel(e){return await this.profile.muteCancel(e)}async muteUser(e,n,t,r,i){return await this.profile.muteUser(e,n,t,r,i)}async resetDefault(e){return await this.profile.resetDefault(e)}async addAddress(e,n,t){return await this.setting.addAddress(e,n,t)}async cancelCode(e){return await this.setting.cancelCode(e)}async cancel(e,n,t,r,i){return await this.setting.cancel(e,n,t,r,i)}async deleteAddress(e){return await this.setting.deleteAddress(e)}async editAddress(e,n,t,r){return await this.setting.editAddress(e,n,t,r)}async feedback(e,n,t,r){return await this.setting.feedback(e,n,t,r)}async getCancelStatus(){return await this.setting.getCancelStatus()}async getPrivateSet(){return await this.setting.getPrivateSet()}async getUserAddress(e,n){return await this.setting.getUserAddress(e,n)}async getUserBlackList(e,n){return await this.setting.getUserBlackList(e,n)}async msgListDetail(e,n,t){return await this.setting.msgListDetail(e,n,t)}async postListDetail(e,n,t){return await this.setting.postListDetail(e,n,t)}async privateSet(e,n){return await this.setting.privateSet(e,n)}async sendSms(e,n,t){return await this.setting.sendSms(e,n,t)}async setDefaultAddress(e){return await this.setting.setDefaultAddress(e)}async setNotifySwitch(e,n){return await this.setting.setNotifySwitch(e,n)}async uploadFeedBack(e){return await this.setting.uploadFeedBack(e)}async draftSave(e,n,t,r,i,s,a){return await this.trend.draftSave(e,n,t,r,i,s,a)}async getConfigTopicByGameId(e,n){return await this.trend.getConfigTopicByGameId(e,n)}async getPostPublishPage(){return await this.trend.getPostPublishPage()}async getRecommend(e,n){return await this.trend.getRecommend(e,n)}async getVodToken(e,n){return await this.trend.getVodToken(e,n)}async trendList(e,n,t){return await this.trend.list(e,n,t)}async parseLink(e){return await this.trend.parseLink(e)}async posAdminEdit(e,n,t,r,i,s,a,o,d){return await this.trend.posAdminEdit(e,n,t,r,i,s,a,o,d)}async postEdit(e,n,t,r,i,s,a,o){return await this.trend.postEdit(e,n,t,r,i,s,a,o)}async postPublish(e,n,t,r,i,s,a,o){return await this.trend.postPublish(e,n,t,r,i,s,a,o)}async safeCheck(e){return await this.trend.safeCheck(e)}async uploadImage(e){return await this.trend.uploadImage(e)}async videoPostPublish(e,n,t,r,i,s,a,o){return await this.trend.videoPostPublish(e,n,t,r,i,s,a,o)}async apply(e,n,t,r,i,s,a,o){return await this.userGrowing.apply(e,n,t,r,i,s,a,o)}async awardList(e){return await this.userGrowing.awardList(e)}async awardWin(e,n,t,r){return await this.userGrowing.awardWin(e,n,t,r)}async buyGold(e,n){return await this.userGrowing.buyGold(e,n)}async buyProduct(e,n,t,r){return await this.userGrowing.buyProduct(e,n,t,r)}async drawDetail(e){return await this.userGrowing.drawDetail(e)}async getAliProductConfig(){return await this.userGrowing.getAliProductConfig()}async getAliProductList(e,n,t){return await this.userGrowing.getAliProductList(e,n,t)}async getApplyPage(){return await this.userGrowing.getApplyPage()}async getExpLogsList(e,n,t){return await this.userGrowing.getExpLogsList(e,n,t)}async getGameCreator(){return await this.userGrowing.getGameCreator()}async getGoldDetailList(e,n,t,r){return await this.userGrowing.getGoldDetailList(e,n,t,r)}async getProductList(e,n,t,r){return await this.userGrowing.getProductList(e,n,t,r)}async getTotalGold(e){return await this.userGrowing.getTotalGold(e)}async getUserGameLevel(e,n,t){return await this.userGrowing.getUserGameLevel(e,n,t)}async getUserGameTaskProcess(e,n){return await this.userGrowing.getUserGameTaskProcess(e,n)}async list(e,n,t,r){return await this.userGrowing.list(e,n,t,r)}async page(){return await this.userGrowing.page()}async productDetail(e){return await this.userGrowing.productDetail(e)}}export{J as swapForUploadImgApp,$ as signature_hash,M as rsa_encrypt,O as rand_str,Y as md5_upper,K as build_upload_signature,j as build_signature,Z as aesDecryptImageUrl,k as UserGrowingAPI,q as UserAPI,T as TrendAPI,p as TimeBasicResponse,P as SettingAPI,F as RespCode,I as ProfileAPI,ne as PostContentType,v as KFAPI,R as HomeAPI,V as H5API,x as GameAPI,b as DNA_GAME_ID,m as DNASubModule,L as DNABaseAPI,te as DNAAPI};
|
|
5
5
|
|
|
6
|
-
//# debugId=
|
|
6
|
+
//# debugId=6436B09F5C2381ED64756E2164756E21
|
package/dist/index.js.map
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["..\\src\\TimeBasicResponse.ts", "..\\src\\modules\\utils.ts", "..\\src\\modules\\base.ts", "..\\src\\modules\\game.ts", "..\\src\\modules\\home.ts", "..\\src\\modules\\profile.ts", "..\\src\\modules\\setting.ts", "..\\src\\modules\\trend.ts", "..\\src\\modules\\types.ts", "..\\src\\modules\\user.ts", "..\\src\\modules\\usergrowing.ts", "..\\src\\modules\\
|
|
3
|
+
"sources": ["..\\src\\TimeBasicResponse.ts", "..\\src\\modules\\utils.ts", "..\\src\\modules\\base.ts", "..\\src\\modules\\game.ts", "..\\src\\modules\\h5.ts", "..\\src\\modules\\home.ts", "..\\src\\modules\\profile.ts", "..\\src\\modules\\setting.ts", "..\\src\\modules\\trend.ts", "..\\src\\modules\\types.ts", "..\\src\\modules\\user.ts", "..\\src\\modules\\usergrowing.ts", "..\\src\\modules\\kf.ts", "..\\src\\index.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"export enum RespCode {\n ERROR = -999,\n OK_ZERO = 0,\n OK_HTTP = 200,\n BAD_REQUEST = 400,\n SERVER_ERROR = 500,\n}\n\nexport class TimeBasicResponse<T = any> {\n code: number = 0\n msg: string = \"\"\n data?: T\n\n constructor(raw_data: any) {\n this.code = raw_data.code || 0\n this.msg = raw_data.msg || \"\"\n this.data = raw_data.data\n }\n\n get is_success(): boolean {\n return this.code === RespCode.OK_HTTP || this.code === RespCode.OK_ZERO\n }\n\n get success(): boolean {\n return this.is_success\n }\n\n static err<T = undefined>(msg: string, code: number = RespCode.ERROR): TimeBasicResponse<T> {\n return new TimeBasicResponse<T>({ code, msg, data: undefined })\n }\n}\n",
|
|
6
|
-
"import * as forge from \"node-forge\"\n\nexport interface RequestOptions {\n method?: \"GET\" | \"POST\"\n sign?: boolean\n file?: File\n tokenSig?: boolean\n h5?: boolean\n token?: boolean\n refer?: boolean\n params?: Record<string, any>\n max_retries?: number\n retry_delay?: number\n timeout?: number\n}\n\nexport interface HeadersPayload {\n headers: Record<string, any>\n payload: string | FormData | undefined\n}\n\nexport function rsa_encrypt(text: string, public_key_b64: string): string {\n try {\n const lines: string[] = []\n for (let i = 0; i < public_key_b64.length; i += 64) {\n lines.push(public_key_b64.slice(i, i + 64))\n }\n const pem = `-----BEGIN PUBLIC KEY-----\\n${lines.join(\"\\n\")}\\n-----END PUBLIC KEY-----`\n\n const publicKey = forge.pki.publicKeyFromPem(pem)\n const textBytes = forge.util.encodeUtf8(text)\n const encrypted = publicKey.encrypt(textBytes)\n\n return forge.util.encode64(encrypted)\n } catch (e) {\n throw new Error(`[DNA] RSA 加密失败: ${(e as Error).message}`)\n }\n}\n\nexport function rand_str(length: number = 16): string {\n const chars = \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\"\n let result = \"\"\n for (let i = 0; i < length; i++) {\n result += chars.charAt(Math.floor(Math.random() * chars.length))\n }\n return result\n}\n\nexport function md5_upper(text: string): string {\n const md = forge.md.md5.create()\n md.update(text)\n return md.digest().toHex().toUpperCase()\n}\n\nexport function signature_hash(text: string): string {\n function swap_positions(text: string, positions: number[]): string {\n const chars = text.split(\"\")\n for (let i = 1; i < positions.length; i += 2) {\n const p1 = positions[i - 1]\n const p2 = positions[i]\n if (p1 >= 0 && p1 < chars.length && p2 >= 0 && p2 < chars.length) {\n ;[chars[p1], chars[p2]] = [chars[p2], chars[p1]]\n }\n }\n return chars.join(\"\")\n }\n return swap_positions(md5_upper(text), [1, 13, 5, 17, 7, 23])\n}\n\nfunction sign_fI(data: Record<string, any>, secret: string): string {\n const pairs: string[] = []\n const sortedKeys = Object.keys(data).sort()\n for (const k of sortedKeys) {\n const v = data[k]\n if (v !== null && v !== undefined && v !== \"\") {\n pairs.push(`${k}=${v}`)\n }\n }\n const qs = pairs.join(\"&\")\n return signature_hash(`${qs}&${secret}`)\n}\n\nexport function build_signature(data: Record<string, any>, token?: string): Record<string, any> {\n const ts = Date.now()\n const sign_data = { ...data, timestamp: ts, token }\n const sec = rand_str(16)\n const sig = sign_fI(sign_data, sec)\n const enc = xor_encode(sig, sec)\n return { s: enc, t: ts, k: sec }\n}\n// 构建上传图片签名(返回签名和密钥)\nexport function build_upload_signature(public_key: string): { signature: string; key: string } {\n const key = rand_str(16)\n const encrypted = rsa_encrypt(key, public_key)\n const signature = swapForUploadImgApp(encrypted)\n return { signature, key }\n}\n\n// 上传图片签名 - 字符交换\nexport function swapForUploadImgApp(text: string): string {\n const chars = text.split(\"\")\n const swaps = [\n [3, 23],\n [11, 32],\n [22, 42],\n [25, 48],\n ]\n for (const [p1, p2] of swaps) {\n if (p1 < chars.length && p2 < chars.length) {\n ;[chars[p1], chars[p2]] = [chars[p2], chars[p1]]\n }\n }\n return chars.join(\"\")\n}\n\n// AES 解密图片 URL\nexport function aesDecryptImageUrl(encryptedUrl: string, key: string): string {\n const swapped = swapForUploadImgApp(encryptedUrl)\n\n const encryptedData = forge.util.decode64(swapped)\n\n const decipher = forge.cipher.createDecipher(\"AES-CBC\", key)\n decipher.start({ iv: \"A-16-Byte-String\" })\n decipher.update(forge.util.createBuffer(encryptedData))\n decipher.finish()\n\n return decipher.output.getBytes()\n}\n\n// XOR编码函数\nfunction xor_encode(text: string, key: string): string {\n const encoder = new TextEncoder()\n const tb = encoder.encode(text)\n const kb = encoder.encode(key)\n const out: string[] = []\n for (let i = 0; i < tb.length; i++) {\n const b = tb[i]\n const e = (b & 255) + (kb[i % kb.length] & 255)\n out.push(`@${e}`)\n }\n return out.join(\"\")\n}\n",
|
|
7
|
-
"import { RespCode, TimeBasicResponse } from \"../TimeBasicResponse\"\nimport type { DNACommonConfigEntity } from \"../type-generated\"\nimport { aesDecryptImageUrl, build_signature, build_upload_signature, type HeadersPayload, type RequestOptions, rsa_encrypt } from \"./utils\"\n\nexport class DNABaseAPI {\n public fetchFn?: typeof fetch\n public is_h5 = false\n public RSA_PUBLIC_KEY =\n \"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDGpdbezK+eknQZQzPOjp8mr/dP+QHwk8CRkQh6C6qFnfLH3tiyl0pnt3dePuFDnM1PUXGhCkQ157ePJCQgkDU2+mimDmXh0oLFn9zuWSp+U8uLSLX3t3PpJ8TmNCROfUDWvzdbnShqg7JfDmnrOJz49qd234W84nrfTHbzdqeigQIDAQAB\"\n public BASE_URL = \"https://dnabbs-api.yingxiong.com/\"\n public uploadKey: string = \"\"\n public sign_api_urls = new Set<string>()\n\n constructor(\n public dev_code: string,\n public token = \"\",\n options: { fetchFn?: typeof fetch; is_h5?: boolean; rsa_public_key?: string } = {}\n ) {\n this.fetchFn = options.fetchFn\n if (options.is_h5 !== undefined) this.is_h5 = options.is_h5\n if (options.rsa_public_key !== undefined) this.RSA_PUBLIC_KEY = options.rsa_public_key\n }\n\n async fileUpload(url: string, data: FormData) {\n const res = await this._dna_request<string[]>(url, data, { sign: true })\n if (res.is_success && res.data) {\n res.data = res.data.map(url => aesDecryptImageUrl(url, this.uploadKey))\n }\n return res\n }\n\n async getRsaPublicKey() {\n if (this.RSA_PUBLIC_KEY) {\n return this.RSA_PUBLIC_KEY\n }\n const res = await this._dna_request<{ key: string }>(\"config/getRsaPublicKey\")\n\n if (res.is_success && res.data) {\n const key = res.data.key\n if (typeof key === \"string\") {\n this.RSA_PUBLIC_KEY = key\n }\n }\n return this.RSA_PUBLIC_KEY\n }\n\n public async getHeaders(options?: {\n payload?: Record<string, any> | string | FormData\n exparams?: Record<string, any>\n dev_code?: string\n refer?: boolean\n token?: string\n tokenSig?: boolean\n h5?: boolean\n }): Promise<HeadersPayload> {\n let { payload, exparams, dev_code = this.dev_code, refer, token = this.token, tokenSig, h5 } = options || {}\n\n const CONTENT_TYPE = \"application/x-www-form-urlencoded; charset=utf-8\"\n const iosBaseHeader = {\n version: \"1.1.3\",\n source: \"ios\",\n \"Content-Type\": CONTENT_TYPE,\n \"User-Agent\": \"DoubleHelix/4 CFNetwork/3860.100.1 Darwin/25.0.0\",\n }\n const h5BaseHeader = {\n version: \"3.11.0\",\n source: \"h5\",\n \"Content-Type\": CONTENT_TYPE,\n \"User-Agent\":\n \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36\",\n }\n const is_h5 = this.is_h5 || h5 || false\n const headers = { ...(is_h5 ? h5BaseHeader : iosBaseHeader) } as Record<string, any>\n if (dev_code) {\n headers.devCode = dev_code\n }\n if (refer || is_h5) {\n headers.origin = \"https://dnabbs.yingxiong.com\"\n headers.refer = \"https://dnabbs.yingxiong.com/\"\n }\n if (token) {\n headers.token = token\n }\n if (payload instanceof FormData) {\n const pk = await this.getRsaPublicKey()\n const { signature, key } = build_upload_signature(pk)\n headers.t = signature\n this.uploadKey = key\n\n if (exparams) {\n for (const [key, value] of Object.entries(exparams)) {\n payload.append(key, String(value))\n }\n }\n\n delete headers[\"Content-Type\"]\n } else if (typeof payload === \"object\") {\n const si = build_signature(payload, tokenSig ? token : \"\")\n Object.assign(payload, { sign: si.s, timestamp: si.t })\n if (exparams) {\n Object.assign(payload, exparams)\n }\n\n const params = new URLSearchParams()\n Object.entries(payload).forEach(([key, value]) => {\n params.append(key, String(value))\n })\n payload = params.toString()\n\n const rk = si.k\n const pk = await this.getRsaPublicKey()\n const ek = rsa_encrypt(rk, pk)\n if (this.is_h5) {\n headers.k = ek\n } else {\n headers.rk = rk\n headers.key = ek\n }\n }\n return { headers, payload }\n }\n\n async needSign(url: string): Promise<boolean> {\n if (this.sign_api_urls.size === 0) {\n try {\n await this.initializeSignConfig()\n } catch (error) {\n console.error(\"初始化签名配置失败:\", error)\n this.sign_api_urls = new Set(\n [\n \"/user/sdkLogin\",\n \"/forum/postPublish\",\n \"/forum/comment/createComment\",\n \"/forum/comment/createReply\",\n \"/user/getSmsCode\",\n \"/role/defaultRoleForTool\",\n \"/media/av/cfg/getVideos\",\n \"/media/av/cfg/getAudios\",\n \"/media/av/cfg/getImages\",\n \"/encourage/signin/signin\",\n ].map(item => item.replace(/^\\/+/, \"\"))\n )\n }\n }\n return this.sign_api_urls.has(url)\n }\n\n async initializeSignConfig(): Promise<void> {\n try {\n const configRes = await this._dna_request<DNACommonConfigEntity>(\"config/getCommonConfig\", undefined, { sign: false })\n if (configRes.is_success && configRes.data?.signApiConfigVo?.signApiList) {\n this.sign_api_urls = new Set(configRes.data.signApiConfigVo.signApiList.map(item => item.replace(/^\\/+/, \"\")))\n }\n } catch (error) {\n console.error(\"初始化签名配置失败:\", error)\n }\n }\n\n public async _dna_request_h5<T = any>(url: string, data?: any, options?: RequestOptions): Promise<TimeBasicResponse<T>> {\n return await this._dna_request(url, data, { ...options, h5: true })\n }\n\n public async _dna_request<T = any>(url: string, data?: any, options?: RequestOptions): Promise<TimeBasicResponse<T>> {\n let { method = \"POST\", sign, h5, refer, params, max_retries = 3, retry_delay = 1, timeout = 10000, token, tokenSig } = options || {}\n\n // 如果未明确指定 sign,则根据 URL 自动判断\n if (sign === undefined && (await this.needSign(url))) {\n sign = true\n }\n let headers: Record<string, any>\n if (sign) {\n const { payload: p, headers: h } = await this.getHeaders({\n payload: data,\n refer,\n exparams: params,\n token: token ? this.token : undefined,\n tokenSig,\n h5,\n })\n data = p\n headers = h\n } else {\n const { headers: h } = await this.getHeaders({ token: token ? this.token : undefined, refer, h5 })\n headers = h\n }\n\n for (let attempt = 0; attempt < max_retries; attempt++) {\n try {\n let body: string | FormData | undefined = data\n if (data && typeof data === \"object\" && !(data instanceof FormData)) {\n const p = new URLSearchParams()\n Object.entries(data).forEach(([key, value]) => {\n if (value !== undefined) p.append(key, String(value))\n })\n body = p.toString()\n }\n const fetchOptions: RequestInit = {\n method,\n headers,\n body,\n }\n\n const controller = new AbortController()\n const timeoutId = setTimeout(() => controller.abort(), timeout)\n\n const initOptions = {\n ...fetchOptions,\n signal: controller.signal,\n }\n const response = this.fetchFn\n ? await this.fetchFn(`${this.BASE_URL}${url}`, initOptions)\n : await fetch(`${this.BASE_URL}${url}`, initOptions)\n clearTimeout(timeoutId)\n\n const contentType = response.headers.get(\"content-type\") || \"\"\n let raw_res: any\n\n if (contentType.includes(\"text/\")) {\n const textData = await response.text()\n raw_res = {\n code: RespCode.ERROR,\n data: textData,\n }\n } else {\n raw_res = await response.json()\n }\n\n if (typeof raw_res === \"object\" && raw_res !== null) {\n try {\n if (typeof raw_res.data === \"string\") {\n raw_res.data = JSON.parse(raw_res.data)\n }\n } catch {}\n }\n\n return new TimeBasicResponse<T>(raw_res)\n } catch (e) {\n console.error(`请求失败: ${(e as Error).message}`)\n if (attempt < max_retries - 1) {\n await new Promise(resolve => setTimeout(resolve, retry_delay * 2 ** attempt))\n }\n }\n }\n\n return TimeBasicResponse.err(\"请求服务器失败,已达最大重试次数\")\n }\n}\n\n/**\n * 子模块基类,代理 DNABaseAPI 的方法和属性\n * 所有子模块都通过这个类代理到共享的 BaseAPI 实例\n */\nexport abstract class DNASubModule {\n protected _base: DNABaseAPI\n\n constructor(base: DNABaseAPI) {\n this._base = base\n }\n\n // 代理属性访问\n get dev_code(): string {\n return this._base.dev_code\n }\n\n get token(): string {\n return this._base.token\n }\n set token(value: string) {\n this._base.token = value\n }\n\n get fetchFn(): typeof fetch | undefined {\n return this._base.fetchFn\n }\n\n get is_h5(): boolean {\n return this._base.is_h5\n }\n\n get RSA_PUBLIC_KEY(): string {\n return this._base.RSA_PUBLIC_KEY\n }\n\n get BASE_URL(): string {\n return this._base.BASE_URL\n }\n\n get uploadKey(): string {\n return this._base.uploadKey\n }\n\n // 代理方法\n async getRsaPublicKey(): Promise<string> {\n return this._base.getRsaPublicKey()\n }\n\n /**\n * 图片上传\n */\n async fileUpload(url: string, data: FormData) {\n return await this._base.fileUpload(url, data)\n }\n\n public async _dna_request<T = any>(url: string, data?: any, options?: RequestOptions): Promise<TimeBasicResponse<T>> {\n return this._base._dna_request(url, data, options)\n }\n\n public async _dna_request_h5<T = any>(url: string, data?: any, options?: RequestOptions): Promise<TimeBasicResponse<T>> {\n return this._base._dna_request_h5(url, data, options)\n }\n\n public async getHeaders(options?: {\n payload?: Record<string, any> | string | FormData\n exparams?: Record<string, any>\n dev_code?: string\n refer?: boolean\n token?: string\n tokenSig?: boolean\n h5?: boolean\n }): Promise<HeadersPayload> {\n return this._base.getHeaders(options)\n }\n}\n",
|
|
6
|
+
"import * as forge from \"node-forge\"\n\nexport interface RequestOptions {\n method?: \"GET\" | \"POST\"\n sign?: boolean\n file?: File\n tokenSig?: boolean\n kf?: boolean\n h5?: boolean\n token?: boolean\n refer?: boolean\n params?: Record<string, any>\n max_retries?: number\n retry_delay?: number\n timeout?: number\n}\n\nexport interface HeadersPayload {\n headers: Record<string, any>\n payload: string | FormData | undefined\n}\n\nexport function rsa_encrypt(text: string, public_key_b64: string): string {\n try {\n const lines: string[] = []\n for (let i = 0; i < public_key_b64.length; i += 64) {\n lines.push(public_key_b64.slice(i, i + 64))\n }\n const pem = `-----BEGIN PUBLIC KEY-----\\n${lines.join(\"\\n\")}\\n-----END PUBLIC KEY-----`\n\n const publicKey = forge.pki.publicKeyFromPem(pem)\n const textBytes = forge.util.encodeUtf8(text)\n const encrypted = publicKey.encrypt(textBytes)\n\n return forge.util.encode64(encrypted)\n } catch (e) {\n throw new Error(`[DNA] RSA 加密失败: ${(e as Error).message}`)\n }\n}\n\nexport function rand_str(length: number = 16): string {\n const chars = \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\"\n let result = \"\"\n for (let i = 0; i < length; i++) {\n result += chars.charAt(Math.floor(Math.random() * chars.length))\n }\n return result\n}\n\nexport function md5_upper(text: string): string {\n const md = forge.md.md5.create()\n md.update(text)\n return md.digest().toHex().toUpperCase()\n}\n\nexport function signature_hash(text: string): string {\n function swap_positions(text: string, positions: number[]): string {\n const chars = text.split(\"\")\n for (let i = 1; i < positions.length; i += 2) {\n const p1 = positions[i - 1]\n const p2 = positions[i]\n if (p1 >= 0 && p1 < chars.length && p2 >= 0 && p2 < chars.length) {\n ;[chars[p1], chars[p2]] = [chars[p2], chars[p1]]\n }\n }\n return chars.join(\"\")\n }\n return swap_positions(md5_upper(text), [1, 13, 5, 17, 7, 23])\n}\n\nfunction sign_fI(data: Record<string, any>, secret: string): string {\n const pairs: string[] = []\n const sortedKeys = Object.keys(data).sort()\n for (const k of sortedKeys) {\n const v = data[k]\n if (v !== null && v !== undefined && v !== \"\") {\n pairs.push(`${k}=${v}`)\n }\n }\n const qs = pairs.join(\"&\")\n return signature_hash(`${qs}&${secret}`)\n}\n\nexport function build_signature(data: Record<string, any>, token?: string): Record<string, any> {\n const ts = Date.now()\n const sign_data = { ...data, timestamp: ts, token }\n const sec = rand_str(16)\n const sig = sign_fI(sign_data, sec)\n const enc = xor_encode(sig, sec)\n return { s: enc, t: ts, k: sec }\n}\n// 构建上传图片签名(返回签名和密钥)\nexport function build_upload_signature(public_key: string): { signature: string; key: string } {\n const key = rand_str(16)\n const encrypted = rsa_encrypt(key, public_key)\n const signature = swapForUploadImgApp(encrypted)\n return { signature, key }\n}\n\n// 上传图片签名 - 字符交换\nexport function swapForUploadImgApp(text: string): string {\n const chars = text.split(\"\")\n const swaps = [\n [3, 23],\n [11, 32],\n [22, 42],\n [25, 48],\n ]\n for (const [p1, p2] of swaps) {\n if (p1 < chars.length && p2 < chars.length) {\n ;[chars[p1], chars[p2]] = [chars[p2], chars[p1]]\n }\n }\n return chars.join(\"\")\n}\n\n// AES 解密图片 URL\nexport function aesDecryptImageUrl(encryptedUrl: string, key: string): string {\n const swapped = swapForUploadImgApp(encryptedUrl)\n\n const encryptedData = forge.util.decode64(swapped)\n\n const decipher = forge.cipher.createDecipher(\"AES-CBC\", key)\n decipher.start({ iv: \"A-16-Byte-String\" })\n decipher.update(forge.util.createBuffer(encryptedData))\n decipher.finish()\n\n return decipher.output.getBytes()\n}\n\n// XOR编码函数\nfunction xor_encode(text: string, key: string): string {\n const encoder = new TextEncoder()\n const tb = encoder.encode(text)\n const kb = encoder.encode(key)\n const out: string[] = []\n for (let i = 0; i < tb.length; i++) {\n const b = tb[i]\n const e = (b & 255) + (kb[i % kb.length] & 255)\n out.push(`@${e}`)\n }\n return out.join(\"\")\n}\n",
|
|
7
|
+
"import { RespCode, TimeBasicResponse } from \"../TimeBasicResponse\"\nimport type { DNACommonConfigEntity } from \"../type-generated\"\nimport { aesDecryptImageUrl, build_signature, build_upload_signature, type HeadersPayload, type RequestOptions, rsa_encrypt } from \"./utils\"\n\nexport class DNABaseAPI {\n public fetchFn?: typeof fetch\n public is_h5 = false\n public RSA_PUBLIC_KEY =\n \"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDGpdbezK+eknQZQzPOjp8mr/dP+QHwk8CRkQh6C6qFnfLH3tiyl0pnt3dePuFDnM1PUXGhCkQ157ePJCQgkDU2+mimDmXh0oLFn9zuWSp+U8uLSLX3t3PpJ8TmNCROfUDWvzdbnShqg7JfDmnrOJz49qd234W84nrfTHbzdqeigQIDAQAB\"\n public BASE_URL = \"https://dnabbs-api.yingxiong.com/\"\n public KF_BASE_URL = \"https://kf.yingxiong.com/\"\n public uploadKey: string = \"\"\n public sign_api_urls = new Set<string>()\n\n constructor(\n public dev_code: string,\n public token = \"\",\n options: { fetchFn?: typeof fetch; is_h5?: boolean; rsa_public_key?: string } = {}\n ) {\n this.fetchFn = options.fetchFn\n if (options.is_h5 !== undefined) this.is_h5 = options.is_h5\n if (options.rsa_public_key !== undefined) this.RSA_PUBLIC_KEY = options.rsa_public_key\n }\n\n async fileUpload(url: string, data: FormData) {\n const res = await this._dna_request<string[]>(url, data, { sign: true })\n if (res.is_success && res.data) {\n res.data = res.data.map(url => aesDecryptImageUrl(url, this.uploadKey))\n }\n return res\n }\n\n async getRsaPublicKey() {\n if (this.RSA_PUBLIC_KEY) {\n return this.RSA_PUBLIC_KEY\n }\n const res = await this._dna_request<{ key: string }>(\"config/getRsaPublicKey\")\n\n if (res.is_success && res.data) {\n const key = res.data.key\n if (typeof key === \"string\") {\n this.RSA_PUBLIC_KEY = key\n }\n }\n return this.RSA_PUBLIC_KEY\n }\n\n public async getHeaders(options?: {\n payload?: Record<string, any> | string | FormData\n exparams?: Record<string, any>\n dev_code?: string\n refer?: boolean\n token?: string\n tokenSig?: boolean\n h5?: boolean\n kf?: boolean\n }): Promise<HeadersPayload> {\n let { payload, exparams, dev_code = this.dev_code, refer, token = this.token, tokenSig, h5, kf } = options || {}\n\n const CONTENT_TYPE = \"application/x-www-form-urlencoded; charset=utf-8\"\n const iosBaseHeader = {\n version: \"1.1.3\",\n source: \"ios\",\n \"Content-Type\": CONTENT_TYPE,\n \"User-Agent\": \"DoubleHelix/4 CFNetwork/3860.100.1 Darwin/25.0.0\",\n }\n const h5BaseHeader = {\n version: \"3.11.0\",\n source: \"h5\",\n \"Content-Type\": CONTENT_TYPE,\n \"User-Agent\":\n \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36\",\n }\n const kfBaseHeader = {\n version: \"3.11.0\",\n Referer: `https://kf.yingxiong.com/kf2.0/user-center?game_id=2277&herot=${Date.now()}`,\n \"User-Agent\":\n \"Mozilla/5.0 (Linux; Android 16; PLQ110 Build/BP2A.250605.015; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/143.0.7499.192 Mobile Safari/537.36CP6.TgzO Hero/1.1.4\",\n }\n const is_h5 = this.is_h5 || h5 || false\n const headers = (kf ? kfBaseHeader : is_h5 ? h5BaseHeader : iosBaseHeader) as Record<string, any>\n if (dev_code) {\n headers.devCode = dev_code\n }\n if (refer || is_h5) {\n headers.origin = \"https://dnabbs.yingxiong.com\"\n headers.refer = \"https://dnabbs.yingxiong.com/\"\n }\n if (token) {\n headers.token = token\n }\n if (payload instanceof FormData) {\n const pk = await this.getRsaPublicKey()\n const { signature, key } = build_upload_signature(pk)\n headers.t = signature\n this.uploadKey = key\n\n if (exparams) {\n for (const [key, value] of Object.entries(exparams)) {\n payload.append(key, String(value))\n }\n }\n\n delete headers[\"Content-Type\"]\n } else if (typeof payload === \"object\") {\n const si = build_signature(payload, tokenSig ? token : \"\")\n Object.assign(payload, { sign: si.s, timestamp: si.t })\n if (exparams) {\n Object.assign(payload, exparams)\n }\n\n const params = new URLSearchParams()\n Object.entries(payload).forEach(([key, value]) => {\n params.append(key, String(value))\n })\n payload = params.toString()\n\n const rk = si.k\n const pk = await this.getRsaPublicKey()\n const ek = rsa_encrypt(rk, pk)\n if (this.is_h5) {\n headers.k = ek\n } else {\n headers.rk = rk\n headers.key = ek\n }\n }\n return { headers, payload }\n }\n\n async needSign(url: string): Promise<boolean> {\n if (this.sign_api_urls.size === 0) {\n try {\n await this.initializeSignConfig()\n } catch (error) {\n console.error(\"初始化签名配置失败:\", error)\n this.sign_api_urls = new Set(\n [\n \"/user/sdkLogin\",\n \"/forum/postPublish\",\n \"/forum/comment/createComment\",\n \"/forum/comment/createReply\",\n \"/user/getSmsCode\",\n \"/role/defaultRoleForTool\",\n \"/media/av/cfg/getVideos\",\n \"/media/av/cfg/getAudios\",\n \"/media/av/cfg/getImages\",\n \"/encourage/signin/signin\",\n ].map(item => item.replace(/^\\/+/, \"\"))\n )\n }\n }\n return this.sign_api_urls.has(url)\n }\n\n async initializeSignConfig(): Promise<void> {\n try {\n const configRes = await this._dna_request<DNACommonConfigEntity>(\"config/getCommonConfig\", undefined, { sign: false })\n if (configRes.is_success && configRes.data?.signApiConfigVo?.signApiList) {\n this.sign_api_urls = new Set(configRes.data.signApiConfigVo.signApiList.map(item => item.replace(/^\\/+/, \"\")))\n }\n } catch (error) {\n console.error(\"初始化签名配置失败:\", error)\n }\n }\n\n public async _dna_request_h5<T = any>(url: string, data?: any, options?: RequestOptions): Promise<TimeBasicResponse<T>> {\n return await this._dna_request(url, data, { ...options, h5: true })\n }\n\n public async _dna_request_kf<T = any>(url: string, data?: any, options?: RequestOptions): Promise<TimeBasicResponse<T>> {\n return await this._dna_request(url, data, { ...options, kf: true })\n }\n\n public async _dna_request<T = any>(url: string, data?: any, options?: RequestOptions): Promise<TimeBasicResponse<T>> {\n let {\n method = \"POST\",\n sign,\n h5,\n kf,\n refer,\n params,\n max_retries = 3,\n retry_delay = 1,\n timeout = 10000,\n token,\n tokenSig,\n } = options || {}\n if (url.startsWith(\"/\")) url = url.slice(1)\n\n // 如果未明确指定 sign,则根据 URL 自动判断\n if (sign === undefined && (await this.needSign(url))) {\n sign = true\n }\n let headers: Record<string, any>\n if (sign) {\n const { payload: p, headers: h } = await this.getHeaders({\n payload: data,\n refer,\n exparams: params,\n token: token ? this.token : undefined,\n tokenSig,\n h5,\n })\n data = p\n headers = h\n } else {\n const { headers: h } = await this.getHeaders({ token: token ? this.token : undefined, refer, h5, kf })\n headers = h\n }\n\n for (let attempt = 0; attempt < max_retries; attempt++) {\n try {\n let body: string | FormData | undefined = data\n if (data && typeof data === \"object\" && !(data instanceof FormData)) {\n const p = new URLSearchParams()\n Object.entries(data).forEach(([key, value]) => {\n if (value !== undefined) p.append(key, String(value))\n })\n body = p.toString()\n }\n const fetchOptions: RequestInit = method === \"GET\" ? {\n method,\n headers,\n } : {\n method,\n headers,\n body,\n }\n\n const controller = new AbortController()\n const timeoutId = setTimeout(() => controller.abort(), timeout)\n\n const initOptions = {\n ...fetchOptions,\n signal: controller.signal,\n }\n const base = kf ? this.KF_BASE_URL : this.BASE_URL\n const fullUrl = method === \"GET\" ? `${base}${url}${body ? `?${body}` : \"\"}` : `${base}${url}`\n const response = this.fetchFn ? await this.fetchFn(fullUrl, initOptions) : await fetch(fullUrl, initOptions)\n clearTimeout(timeoutId)\n\n const contentType = response.headers.get(\"content-type\") || \"\"\n let raw_res: any\n\n if (contentType.includes(\"text/\")) {\n const textData = await response.text()\n raw_res = {\n code: RespCode.ERROR,\n data: textData,\n }\n } else {\n raw_res = await response.json()\n }\n\n if (typeof raw_res === \"object\" && raw_res !== null) {\n try {\n if (typeof raw_res.data === \"string\") {\n raw_res.data = JSON.parse(raw_res.data)\n }\n } catch {}\n }\n\n return new TimeBasicResponse<T>(raw_res)\n } catch (e) {\n console.error(`请求失败: ${(e as Error).message}`)\n if (attempt < max_retries - 1) {\n await new Promise(resolve => setTimeout(resolve, retry_delay * 2 ** attempt))\n }\n }\n }\n\n return TimeBasicResponse.err(\"请求服务器失败,已达最大重试次数\")\n }\n}\n\n/**\n * 子模块基类,代理 DNABaseAPI 的方法和属性\n * 所有子模块都通过这个类代理到共享的 BaseAPI 实例\n */\nexport abstract class DNASubModule {\n protected _base: DNABaseAPI\n\n constructor(base: DNABaseAPI) {\n this._base = base\n }\n\n // 代理属性访问\n get dev_code(): string {\n return this._base.dev_code\n }\n\n get token(): string {\n return this._base.token\n }\n set token(value: string) {\n this._base.token = value\n }\n\n get fetchFn(): typeof fetch | undefined {\n return this._base.fetchFn\n }\n\n get is_h5(): boolean {\n return this._base.is_h5\n }\n\n get RSA_PUBLIC_KEY(): string {\n return this._base.RSA_PUBLIC_KEY\n }\n\n get BASE_URL(): string {\n return this._base.BASE_URL\n }\n\n get uploadKey(): string {\n return this._base.uploadKey\n }\n\n // 代理方法\n async getRsaPublicKey(): Promise<string> {\n return this._base.getRsaPublicKey()\n }\n\n /**\n * 图片上传\n */\n async fileUpload(url: string, data: FormData) {\n return await this._base.fileUpload(url, data)\n }\n\n public async _dna_request<T = any>(url: string, data?: any, options?: RequestOptions): Promise<TimeBasicResponse<T>> {\n return this._base._dna_request(url, data, options)\n }\n\n public async _dna_request_h5<T = any>(url: string, data?: any, options?: RequestOptions): Promise<TimeBasicResponse<T>> {\n return this._base._dna_request_h5(url, data, options)\n }\n\n public async _dna_request_kf<T = any>(url: string, data?: any, options?: RequestOptions): Promise<TimeBasicResponse<T>> {\n return this._base._dna_request_kf(url, data, options)\n }\n\n public async getHeaders(options?: {\n payload?: Record<string, any> | string | FormData\n exparams?: Record<string, any>\n dev_code?: string\n refer?: boolean\n token?: string\n tokenSig?: boolean\n h5?: boolean\n }): Promise<HeadersPayload> {\n return this._base.getHeaders(options)\n }\n}\n",
|
|
8
8
|
"import type {\n DNACharDetailEntity,\n DNAPushStringBean,\n DNARoleEntity,\n DNAShortNoteEntity,\n DNASoulTaskBean,\n DNAWeaponDetailEntity,\n} from \"../type-generated\"\nimport { DNASubModule } from \"./base\"\n\nexport class GameAPI extends DNASubModule {\n async defaultRoleForTool(type: number = 1, otherUserId?: string) {\n const data = { otherUserId, type }\n if (!otherUserId) {\n delete data.otherUserId\n }\n return await this._dna_request<DNARoleEntity>(\"role/defaultRoleForTool\", data, { sign: true, token: true, tokenSig: true })\n }\n\n async getMhSwitchStatus() {\n return await this._dna_request<DNAPushStringBean>(\"user/push/getMhSwitchStatus\")\n }\n\n async getRoleDetail(char_id: number | string, char_eid: string, otherUserId?: string) {\n const data = { charId: char_id, charEid: char_eid, type: 1, otherUserId }\n return await this._dna_request<DNACharDetailEntity>(\"role/getCharDetail\", data)\n }\n\n async getShortNoteInfo() {\n return await this._dna_request<DNAShortNoteEntity>(\"role/getShortNoteInfo\")\n }\n\n async getWeaponDetail(weapon_id: number | string, weapon_eid: string, otherUserId?: string) {\n const data = { weaponId: weapon_id, weaponEid: weapon_eid, type: 1, otherUserId }\n return await this._dna_request<DNAWeaponDetailEntity>(\"role/getWeaponDetail\", data)\n }\n\n async updateMhSwitchStatus(config: string) {\n return await this._dna_request(\"user/push/updateMhSwitchStatus\", { config })\n }\n\n async soulTask() {\n return await this._dna_request<DNASoulTaskBean>(\"role/soul/task\")\n }\n}\n",
|
|
9
|
+
"import { DNASubModule } from \"./base\"\n\nexport interface DNAMapMatterCategorizeOption {\n icon: string\n id: number\n matters: DNAMapMatter[]\n name: string\n sort?: number\n}\n\nexport interface DNAMatterCategorizeDetail {\n icon: string\n id: number\n matters: DNAMapMatterDetail[]\n name: string\n sort?: number\n}\n\nexport interface DNAMapMatter {\n icon: string\n id: number\n mapMatterCategorizeId: number\n name: string\n sort: number\n}\n\nexport interface DNAMapCategorizeListRes {\n list: DNAMatterCategorizeList[]\n}\n\nexport interface DNAMatterCategorizeList {\n id: number\n maps: DNAMap[]\n name: string\n}\n\nexport interface DNAMapDetailRes {\n floors: DNAMapFloor[]\n matterCategorizes: DNAMatterCategorizeDetail[]\n map: DNAMap\n userSites: DNAMapSite[]\n}\n\nexport interface DNAMap {\n id: number\n name: string\n pid?: number\n}\n\nexport interface DNAMapMatterDetail extends DNAMapMatter {\n sites: DNAMapSite[]\n}\n\nexport interface DNAMapSite {\n id: number\n isHide: number\n mapFloorId: number\n mapId: number\n mapMatterId: number\n x: number\n y: number\n}\n\nexport interface DNAMapFloor {\n floor: number\n id: number\n name: string\n pic: string\n}\n\nexport interface DNAMapSiteDetailRes {\n contributes: DNAMapContribute[]\n description: string\n id: number\n isDel: number\n isHide: number\n mapFloorId: number\n mapId: number\n mapMatterCategorizeId: number\n mapMatterId: number\n pic: string\n script: string\n url: string\n urlDesc: string\n urlIcon: string\n x: number\n y: number\n}\n\ninterface DNAMapContribute {\n userHeadUrl: string\n userId: string\n userName: string\n}\n\nexport interface DNAEmoji {\n content: string[]\n gameId: number\n icon: string\n size: number\n title: string\n url: string\n}\n\nexport class H5API extends DNASubModule {\n async getMapMatterCategorizeOptions() {\n return await this._dna_request_h5<DNAMapMatterCategorizeOption[]>(\"map/matter/categorize/getOptions\")\n }\n\n async getMapCategorizeList() {\n return await this._dna_request_h5<DNAMapCategorizeListRes>(\"map/categorize/list\")\n }\n\n async getMapDetail(id: number) {\n return await this._dna_request_h5<DNAMapDetailRes>(\"map/detail\", { id })\n }\n\n async getMapSiteDetail(id: number) {\n return await this._dna_request_h5<DNAMapSiteDetailRes>(\"map/site/detail\", { id })\n }\n\n async getEmojiList() {\n return await this._dna_request_h5<DNAEmoji[]>(\"config/getEmoji\")\n }\n}\n",
|
|
9
10
|
"import type {\n DNABlockBean,\n DNACommentListResponse,\n DNACreateCommentResponse,\n DNADiscussAreaResponse,\n DNAFollowBean,\n DNAFraternityResponse,\n DNAGameBannerBean,\n DNAGameSignInResultBean,\n DNAGameSignInShowDataBean,\n DNAHomeOffWaterResponse,\n DNAIsRedPointBean,\n DNAPostDetailResponse,\n DNAPostListBean,\n DNAReceiveRecord,\n DNARecommendBean,\n DNAReplayCommentResponse,\n DNAReplyListResponse,\n DNASearchPostBean,\n DNASearchTopicBean,\n DNASearchUserBean,\n DNASignInBean,\n DNASoulTaskBean,\n DNAStatisticsBean,\n DNATipsBean,\n DNATopicListResponse,\n DNAUserTaskProcessEntity,\n} from \"../type-generated\"\nimport { DNASubModule } from \"./base\"\n\nconst DNA_GAME_ID = 268\n\nexport class HomeAPI extends DNASubModule {\n async adminAdjustScore(postId: number, gameForumId: number, weight: string, gameId: number = DNA_GAME_ID) {\n const data = { postId, gameId: gameId ?? DNA_GAME_ID, gameForumId, weight }\n return await this._dna_request(\"forum/moderator/setPostWeight\", data)\n }\n\n async adminDelete(post: { postId: number; gameId?: number; gameForumId: number }, content: string, reasonCode: number) {\n const data = {\n postId: post.postId,\n gameId: post.gameId ?? DNA_GAME_ID,\n gameForumId: post.gameForumId,\n content: content,\n reasonCode: reasonCode,\n }\n return await this._dna_request(\"forum/moderator/postDelete\", data)\n }\n\n async adminMovePost(\n post: { postId: number; gameId?: number; gameForumId: number },\n newGameId: number,\n newForumId: number,\n newTopicIdStr: string\n ) {\n const data = {\n postId: post.postId,\n gameId: post.gameId ?? DNA_GAME_ID,\n gameForumId: post.gameForumId,\n newGameId,\n newForumId,\n newTopicIdStr,\n }\n return await this._dna_request(\"forum/moderator/postMove\", data)\n }\n\n async adminRefreshTime(post: { postId: number; gameId?: number; gameForumId: number }, refresh: number) {\n const data = {\n postId: post.postId,\n gameId: post.gameId ?? DNA_GAME_ID,\n gameForumId: post.gameForumId,\n refresh,\n }\n return await this._dna_request(\"forum/moderator/setRefresh\", data)\n }\n\n async blockList() {\n return await this._dna_request<DNABlockBean>(\"user/block/list\")\n }\n\n async blockOther(blockPostId: number, blockUserId: string, type: number) {\n return await this._dna_request(\"user/block/other\", { blockPostId, blockUserId, type })\n }\n\n async collect(postId: number, toUserId: string, operateType = 1) {\n const data = { operateType, postId, toUserId }\n return await this._dna_request(\"forum/collect\", data)\n }\n\n async commentDelete(\n comment: { id: number; gameId: number; gameForumId: number },\n entityType: number,\n content: string,\n reasonCode: number\n ) {\n const data = { id: comment.id, gameId: comment.gameId, gameForumId: comment.gameForumId, entityType, content, reasonCode }\n return await this._dna_request(\"forum/commentReplyDelete\", data)\n }\n\n async createComment(post: { userId: string; postId: string; gameForumId: number }, content: string) {\n const content_json = JSON.stringify([\n {\n content,\n contentType: \"1\",\n },\n ])\n const data = { postId: post.postId, forumId: post.gameForumId, postType: \"1\", content: content_json }\n return await this._dna_request<DNACreateCommentResponse>(\"forum/comment/createComment\", data, {\n sign: true,\n params: { toUserId: post.userId },\n })\n }\n\n async createReply(post: { userId: string; postId: string; postCommentId: string; gameForumId: number }, content: string) {\n const content_json = JSON.stringify([\n {\n content,\n contentType: \"1\",\n imgHeight: 0,\n imgWidth: 0,\n url: \"\",\n },\n ])\n const data = {\n content: content_json,\n forumId: post.gameForumId,\n postCommentId: post.postCommentId,\n postId: post.postId,\n postType: \"1\",\n toUserId: post.userId,\n }\n return await this._dna_request<DNAReplayCommentResponse>(\"forum/comment/createReply\", data, {\n sign: true,\n params: { toUserId: post.userId },\n })\n }\n\n async createReplyList(\n post: { userId: string; postId: string; postCommentId: string; postCommentReplyId: string; gameForumId: number },\n content: string\n ) {\n const content_json = JSON.stringify([\n {\n content,\n contentType: \"1\",\n imgHeight: 0,\n imgWidth: 0,\n url: \"\",\n },\n ])\n const data = {\n content: content_json,\n forumId: post.gameForumId,\n postCommentId: post.postCommentId,\n postCommentReplyId: post.postCommentReplyId,\n postId: post.postId,\n postType: \"1\",\n toUserId: post.userId,\n }\n return await this._dna_request<DNAReplayCommentResponse>(\"forum/comment/createReply\", data, {\n sign: true,\n params: { toUserId: post.userId },\n })\n }\n\n async deletePost(deleteType: number, id: number) {\n return await this._dna_request(\"forum/more/delete\", { deleteType, id }, { sign: true, refer: true })\n }\n\n async followUser(followUserId: string, unfollow?: boolean) {\n const data = { followUserId, operateType: unfollow ? 0 : 1 }\n return await this._dna_request(\"user/followUser\", data, { sign: true })\n }\n\n async getFollowState(followUserId: string) {\n const data = { followUserId }\n return await this._dna_request<DNAFollowBean>(\"user/isFollow\", data)\n }\n\n async gameSignIn(dayAwardId: number, period: number) {\n const data = { dayAwardId, periodId: period, signinType: 1 }\n return await this._dna_request<DNAGameSignInResultBean>(\"encourage/signin/signin\", data, { sign: true, tokenSig: true })\n }\n\n async getDoujin(forumId: number) {\n return await this._dna_request<DNADiscussAreaResponse>(\"forum/discuss/getDoujin\", { forumId })\n }\n\n async getExchange(forumId: number) {\n return await this._dna_request<DNADiscussAreaResponse>(\"forum/discuss/getExchange\", { forumId })\n }\n\n async getGameBanner(gameId = DNA_GAME_ID) {\n return await this._dna_request<DNAGameBannerBean>(\"forum/gameBanner\", { gameId })\n }\n\n async getPostByTopic(\n topicId: number = 177,\n pageIndex: number = 1,\n pageSize: number = 20,\n searchType: number = 1,\n timeType: number = 0\n ) {\n const data = {\n topicId,\n gameId: DNA_GAME_ID,\n pageIndex,\n pageSize,\n searchType,\n timeType,\n }\n return await this._dna_request<DNATopicListResponse>(\"forum/getPostByTopic\", data)\n }\n\n async getPostCommentList(postId: number, pageIndex: number = 1, pageSize: number = 20, isOnlyPublisher: number = 0) {\n return await this._dna_request<DNACommentListResponse>(\"forum/comment/getPostCommentList\", {\n postId,\n pageIndex,\n pageSize,\n isOnlyPublisher,\n })\n }\n\n async getPostDetail(postId: string | number) {\n return await this._dna_request<DNAPostDetailResponse>(\"forum/getPostDetail\", { postId })\n }\n\n async getPostList(forumId: number = 48, pageIndex: number = 1, pageSize: number = 20, searchType: number = 1, timeType: number = 0) {\n const data = {\n forumId: forumId,\n gameId: DNA_GAME_ID,\n pageIndex: pageIndex,\n pageSize: pageSize,\n searchType: searchType,\n timeType: timeType,\n }\n return await this._dna_request<DNADiscussAreaResponse>(\"forum/list\", data)\n }\n\n async getRankList(forumId: number) {\n return await this._dna_request<DNAFraternityResponse>(\"forum/discuss/getRank\", { forumId })\n }\n\n async getRecommendPosts(gameId = DNA_GAME_ID, pageIndex: number = 1, pageSize: number = 20) {\n return await this._dna_request<DNAHomeOffWaterResponse>(\"forum/getRecommendPosts\", { gameId, pageIndex, pageSize })\n }\n\n async getReplyList(postId: number, postCommentId: number, pageIndex: number = 1, pageSize: number = 20) {\n return await this._dna_request<DNAReplyListResponse>(\"forum/comment/getReplyList\", { postId, postCommentId, pageIndex, pageSize })\n }\n\n async getStatistics(gameId = DNA_GAME_ID) {\n return await this._dna_request<DNAStatisticsBean>(\"forum/statistics\", { gameId })\n }\n\n async getTips() {\n return await this._dna_request<DNATipsBean>(\"config/getTips\")\n }\n\n async getWalkthrough(forumId: number) {\n return await this._dna_request<DNADiscussAreaResponse>(\"forum/discuss/getWalkthrough\", { forumId })\n }\n\n async hotList(type: number = 1, gameId = DNA_GAME_ID) {\n return await this._dna_request<DNAPostListBean[]>(\"forum/hot/ranking/list\", { gameId, type })\n }\n\n async haveSignIn() {\n const data = { gameId: DNA_GAME_ID }\n return await this._dna_request<DNASignInBean>(\"user/haveSignInNew\", data)\n }\n\n async isRedPoint() {\n return await this._dna_request<DNAIsRedPointBean>(\"forum/dynamic/isRedPoint\")\n }\n\n async signCalendar() {\n const data = { gameId: DNA_GAME_ID }\n return await this._dna_request<DNAGameSignInShowDataBean>(\"encourage/signin/show\", data)\n }\n\n async like(post: { gameForumId: string; postId: string; postType: string; userId: string }) {\n const data = {\n forumId: post.gameForumId,\n gameId: DNA_GAME_ID,\n likeType: \"1\",\n operateType: \"1\",\n postCommentId: \"\",\n postCommentReplyId: \"\",\n postId: post.postId,\n postType: post.postType,\n toUserId: post.userId,\n }\n return await this._dna_request(\"forum/like\", data)\n }\n\n async lockPost(post: { postId: number; gameId?: number; gameForumId: number }, operateType: number) {\n const data = { postId: post.postId, gameId: post.gameId ?? DNA_GAME_ID, gameForumId: post.gameForumId, operateType }\n return await this._dna_request(\"forum/moderator/postLock\", data)\n }\n\n async postDownOrUp(post: { postId: number; gameId?: number; gameForumId: number }, operateType: number) {\n const data = { postId: post.postId, gameId: post.gameId ?? DNA_GAME_ID, gameForumId: post.gameForumId, operateType }\n return await this._dna_request(\"forum/moderator/postDownOrUp\", data)\n }\n\n async postElite(post: { postId: number; gameId?: number; gameForumId: number }, operateType: number) {\n const data = { postId: post.postId, gameId: post.gameId ?? DNA_GAME_ID, gameForumId: post.gameForumId, operateType }\n return await this._dna_request(\"forum/moderator/postElite\", data)\n }\n\n async postHide(post: { postId: number; gameId?: number; gameForumId: number }, operateType: number) {\n const data = { postId: post.postId, gameId: post.gameId ?? DNA_GAME_ID, gameForumId: post.gameForumId, operateType }\n return await this._dna_request(\"forum/moderator/postHide\", data)\n }\n\n async reRank(post: { postId: number; gameId?: number; gameForumId: number }, weight: number) {\n const data = { postId: post.postId, gameId: post.gameId ?? DNA_GAME_ID, gameForumId: post.gameForumId, weight }\n return await this._dna_request(\"forum/moderator/reRank\", data)\n }\n\n async receiveLog(periodId: number, pageIndex: number, pageSize: number) {\n const data = { periodId, pageIndex, pageSize }\n return await this._dna_request<DNAReceiveRecord>(\"encourage/signin/receiveLog\", data)\n }\n\n async recommendList(recIndex: number, newIndex: number, size: number, history: string, gameId = DNA_GAME_ID) {\n const data = { gameId, recIndex, newIndex, size, history }\n return await this._dna_request<DNARecommendBean>(\"forum/recommend/list\", data)\n }\n\n async report(\n { commentId = 0, postId = 0, replyId = 0 }: { commentId?: number; postId?: number; replyId?: number },\n reportReason = 1,\n reportType = 1\n ) {\n const data = { commentId, postId, replyId, reportReason, reportType }\n return await this._dna_request(\"forum/more/report\", data)\n }\n\n async searchPost(keyword: string, pageIndex: number, pageSize: number, gameId = DNA_GAME_ID, searchType = 1) {\n const data = { gameId, keyword, pageIndex, pageSize, searchType }\n return await this._dna_request<DNASearchPostBean>(\"forum/searchPost\", data)\n }\n\n async searchTopic(keyword: string, pageIndex: number, pageSize = 20, gameId = DNA_GAME_ID) {\n const data = { gameId, keyword, pageIndex, pageSize }\n return await this._dna_request<DNASearchTopicBean>(\"forum/searchPost\", data)\n }\n\n async searchUser(keyword: string, pageIndex: number, pageSize: number) {\n const data = { keyword, pageIndex, pageSize }\n return await this._dna_request<DNASearchUserBean>(\"forum/searchPost\", data)\n }\n\n async shareTask() {\n const data = { gameId: DNA_GAME_ID }\n return await this._dna_request(\"encourage/level/shareTask\", data)\n }\n\n async bbsSign() {\n const data = { gameId: DNA_GAME_ID }\n return await this._dna_request<DNASignInBean>(\"user/signIn\", data)\n }\n\n async strongRecommend(post: { postId: number; gameId?: number; gameForumId: number }, operateType = 1) {\n const data = {\n postId: post.postId,\n gameId: post.gameId ?? DNA_GAME_ID,\n gameForumId: post.gameForumId,\n operateType: operateType,\n }\n return await this._dna_request(\"forum/moderator/setForceRecommend\", data)\n }\n\n async viewCommunity() {\n return await this._dna_request(\"encourage/level/viewCommunity\")\n }\n\n async viewCount(postId: number, gameId = DNA_GAME_ID) {\n return await this._dna_request(\"forum/viewCount\", { gameId, postId })\n }\n\n async getTaskProcess() {\n const data = { gameId: DNA_GAME_ID }\n return await this._dna_request<DNAUserTaskProcessEntity>(\"encourage/level/getTaskProcess\", data)\n }\n\n async soulTask() {\n return await this._dna_request<DNASoulTaskBean>(\"role/soul/task\")\n }\n}\n",
|
|
10
11
|
"import type {\n DNAAcewarBean,\n DNABindStatus,\n DNADraftBean,\n DNAFastBindResultBean,\n DNAHistoryBean,\n DNAMineFansBean,\n DNAMineFollowBean,\n DNAModeratorByGame,\n DNANotifySwitchEntity,\n DNAProfileLoadResponse,\n DNAProfileResponse,\n DNARoleEntityForTrend,\n DNARoleListBean,\n} from \"../type-generated\"\nimport { DNASubModule } from \"./base\"\n\nexport class ProfileAPI extends DNASubModule {\n async blackUser(toUserId: string, type: number) {\n return await this._dna_request(\"user/blackUser\", { toUserId, type })\n }\n\n async cleanFansNew(type: number, userFollowId: string) {\n return await this._dna_request(\"user/cleanFansNew\", { type, userFollowId })\n }\n\n async collect(postId: number, toUserId: string, operateType = 1) {\n return await this._dna_request(\"forum/collect\", { operateType, postId, toUserId })\n }\n\n async defaultRole(otherUserId?: string, type: number = 1) {\n return await this._dna_request<DNARoleEntityForTrend>(\"user/defaultRole\", { otherUserId, type })\n }\n\n async deleteRole(roleBoundId: string) {\n return await this._dna_request<DNARoleListBean>(\"role/remove\", { roleBoundId })\n }\n\n async draftDelete(draftId: string) {\n return await this._dna_request(\"forum/more/draftDelete\", { draftId })\n }\n\n async fans(otherUserId: string, pageNo: number, pageSize: number, type: number) {\n return await this._dna_request<DNAMineFansBean>(\"user/fans\", { otherUserId, pageNo, pageSize, type })\n }\n\n async fastBind() {\n return await this._dna_request<DNAFastBindResultBean>(\"role/quickBound\")\n }\n\n async follow(otherUserId: string, pageNo: number, pageSize: number, type: number) {\n return await this._dna_request<DNAMineFollowBean>(\"user/follow\", { otherUserId, pageNo, pageSize, type })\n }\n\n async followUser(followUserId: string, unfollow?: boolean) {\n return await this._dna_request(\"user/followUser\", { followUserId, operateType: unfollow ? 0 : 1 })\n }\n\n async getApplyStatus() {\n return await this._dna_request<DNABindStatus>(\"user/creator/getApplyStatus\")\n }\n\n async getDraftList(pageIndex: number, pageSize: number) {\n return await this._dna_request<DNADraftBean>(\"forum/getDraftList\", { pageIndex, pageSize })\n }\n\n async getMineComment(otherUserId: string, pageIndex: number, pageSize: number, type: number) {\n return await this._dna_request<DNAProfileResponse>(\"user/notice/mine\", { otherUserId, pageIndex, pageSize, type })\n }\n\n async getMinePost(otherUserId: string, pageIndex: number, pageSize: number, searchType: number, type: number, postType?: number) {\n return await this._dna_request<DNAProfileLoadResponse>(\"forum/getMinePost\", {\n otherUserId,\n pageIndex,\n pageSize,\n searchType,\n type,\n postType,\n })\n }\n\n async getNotifySwitch() {\n return await this._dna_request<DNANotifySwitchEntity>(\"user/push/getSwitchStatus\")\n }\n\n async historyView(pageIndex: number, pageSize: number) {\n return await this._dna_request<DNAHistoryBean>(\"forum/historyView\", { pageIndex, pageSize })\n }\n\n async like(data: {\n forumId: number\n gameId: number\n likeType: number\n operateType: number\n postCommentId: number\n postCommentReplyId: number\n postId: number\n postType: number\n toUserId: string\n }) {\n return await this._dna_request(\"forum/like\", data)\n }\n\n async manualBound(roleId: string, type: number, code: string) {\n return await this._dna_request<DNAAcewarBean>(\"role/manualBound\", { roleId, type, code })\n }\n\n async mine(otherUserId: string, searchType: number, type: number, postType?: number) {\n const data: Record<string, any> = { otherUserId, searchType, type, postType }\n if (!otherUserId) {\n delete data.otherUserId\n }\n return await this._dna_request<DNAProfileResponse>(\"user/mine\", data)\n }\n\n async mineV2(otherUserId: string) {\n return await this._dna_request<DNAProfileResponse>(\"user/mineV2\", { otherUserId })\n }\n\n async moderatorByGame(gameId: number) {\n return await this._dna_request<DNAModeratorByGame>(\"user/moderator/getModeratorByGame\", { gameId })\n }\n\n async muteCancel(toUserId: string) {\n return await this._dna_request(\"forum/moderator/muteCancel\", { toUserId })\n }\n\n async muteUser(toUserId: string, gameIdStr: string, type: number, reason: number, content: string) {\n return await this._dna_request(\"forum/moderator/muteUser\", { toUserId, gameIdStr, type, reason, content })\n }\n\n async resetDefault(roleBoundId: string) {\n return await this._dna_request<DNARoleListBean>(\"role/resetDefault\", { roleBoundId })\n }\n\n async roleManager() {\n return await this._dna_request<DNARoleListBean>(\"role/list\")\n }\n}\n",
|
|
11
12
|
"import type {\n DNACancleStatus,\n DNACommonBooleanBean,\n DNANotifySwitchEntity,\n DNAPrivateSetBean,\n DNAsettingBlackBean,\n DNAsettingMsgShiledBean,\n DNAsettingPostShiledBean,\n DNAUserAddressBean,\n} from \"../type-generated\"\nimport { DNASubModule } from \"./base\"\n\nexport class SettingAPI extends DNASubModule {\n async addAddress(receiverName: string, receiverMobile: string, receiverAddress: string) {\n return await this._dna_request(\"user/more/userAddressAdd\", { receiverName, receiverMobile, receiverAddress })\n }\n\n async blackUser(toUserId: string, type: number) {\n return await this._dna_request(\"user/blackUser\", { toUserId, type })\n }\n\n async cancelCode(code: string) {\n return await this._dna_request(\"user/more/cancelCode\", { code })\n }\n\n async cancel(cancelType: number, operateType: number, position: string, cancelReason: number | null, reasonDetail: string) {\n return await this._dna_request(\"user/more/cancel\", { cancelType, operateType, position, cancelReason, reasonDetail })\n }\n\n async deleteAddress(addressId: number) {\n return await this._dna_request<DNACommonBooleanBean>(\"user/more/deleteUserAddress\", { addressId })\n }\n\n async editAddress(addressId: number, receiverName: string, receiverMobile: string, receiverAddress: string) {\n return await this._dna_request<DNACommonBooleanBean>(\"user/more/userAddressEdit\", {\n addressId,\n receiverName,\n receiverMobile,\n receiverAddress,\n })\n }\n\n async feedback(listPic: string, proDesc: string, mobile: string, isLogin: number) {\n return await this._dna_request(\"user/more/feedback\", { listPic, proDesc, mobile, isLogin })\n }\n\n async getCancelStatus() {\n return await this._dna_request<DNACancleStatus>(\"user/more/getCancelStatus\")\n }\n\n async getNotifySwitch() {\n return await this._dna_request<DNANotifySwitchEntity>(\"user/push/getSwitchStatus\")\n }\n\n async getPrivateSet() {\n return await this._dna_request<DNAPrivateSetBean>(\"user/getPrivateSet\")\n }\n\n async getUserAddress(userId: number, type: number) {\n return await this._dna_request<DNAUserAddressBean>(\"user/more/getUserAddress\", { userId, type })\n }\n\n async getUserBlackList(pageIndex: number, pageSize: number) {\n return await this._dna_request<DNAsettingBlackBean>(\"user/getUserBlackList\", { pageIndex, pageSize })\n }\n\n async msgListDetail(pageNo: number, pageSize: number, type: number) {\n return await this._dna_request<DNAsettingMsgShiledBean>(\"user/block/listDetail\", { pageNo, pageSize, type })\n }\n\n async postListDetail(pageNo: number, pageSize: number, type: number) {\n return await this._dna_request<DNAsettingPostShiledBean>(\"user/block/listDetail\", { pageNo, pageSize, type })\n }\n\n async privateSet(operateType: number, option: number) {\n return await this._dna_request(\"user/privateSet\", { operateType, option })\n }\n\n async sendSms(mobile: string, timeStamp: string, type: number) {\n return await this._dna_request(\"user/sms/sendSms\", { mobile, timeStamp, type })\n }\n\n async setDefaultAddress(addressId: number) {\n return await this._dna_request<DNACommonBooleanBean>(\"user/more/setDefaultAddress\", { addressId })\n }\n\n async setNotifySwitch(operateType: number, switchType: number) {\n return await this._dna_request(\"user/push/updateSwitchStatus\", { operateType, switchType })\n }\n\n async uploadFeedBack(file: File) {\n const data = new FormData()\n data.append(\"parts\", file)\n return await this.fileUpload(\"user/img/uploadFeedBack\", data)\n }\n}\n",
|
|
@@ -13,10 +14,10 @@
|
|
|
13
14
|
"export interface DNARoleForToolInstance {\n id: number\n name: string\n code: string\n on: number\n}\n\nexport interface DNARoleForToolInstanceInfo {\n instances: DNARoleForToolInstance[]\n}\n\nexport enum PostContentType {\n TEXT = 1,\n IMAGE = 2,\n VIDEO = 5,\n}\n\nexport const DNA_GAME_ID = 268\n",
|
|
14
15
|
"import type {\n DNABlockBean,\n DNACanEditNickNameBean,\n DNACommonConfigEntity,\n DNAConfigSwitchBean,\n DNAEmojiConfigBean,\n DNAFollowGameIdBean,\n DNAGameConfigResponse,\n DNAGameNewHeadBean,\n DNAHaveOfficialRoleBean,\n DNAIsRedPointBean,\n DNAModeratorPermission,\n DNARecommendConfig,\n DNAScreenResponse,\n DNASplashResponse,\n DNATokenBean,\n DNAUserDataBean,\n DNAUserHeadResponse,\n DNAWikiVoEntity,\n} from \"../type-generated\"\nimport { DNASubModule } from \"./base\"\nimport { DNA_GAME_ID } from \"./types\"\n\nexport class UserAPI extends DNASubModule {\n // 检查登录\n async loginLog() {\n return await this._dna_request(\"user/login/log\")\n }\n\n async blockList() {\n return await this._dna_request<DNABlockBean>(\"user/block/list\")\n }\n\n async canEditNickName() {\n return await this._dna_request<DNACanEditNickNameBean>(\"user/canUpdateNameTimes\")\n }\n\n async cancel(cancelType: number, operateType: number, position: string, cancelReason: number | null, reasonDetail: string) {\n return await this._dna_request(\"user/more/cancel\", { cancelType, operateType, position, cancelReason, reasonDetail })\n }\n\n async cleanToken() {\n return await this._dna_request(\"user/cleanToken\")\n }\n\n async editGender(gender: number) {\n return await this._dna_request(\"user/editGender\", { gender })\n }\n\n async editNickName(userName: string) {\n return await this._dna_request<DNACanEditNickNameBean>(\"user/updateName\", { userName })\n }\n\n async getCommonConfig() {\n return await this._dna_request<DNACommonConfigEntity>(\"config/getCommonConfig\")\n }\n\n async getConfig() {\n return await this._dna_request<DNASplashResponse>(\"config/getConfig\")\n }\n\n async getConfigSwitch() {\n return await this._dna_request<DNAConfigSwitchBean>(\"config/switchAll\")\n }\n\n async getModeratorPermission() {\n return await this._dna_request<DNAModeratorPermission>(\"user/moderator/getModeratorPermission\")\n }\n\n async getOpenScreen() {\n return await this._dna_request<DNAScreenResponse>(\"config/getOpenScreen\")\n }\n\n async getPublicKey() {\n return await this._dna_request<{ key: string }>(\"config/getRsaPublicKey\")\n }\n\n async getUserGame() {\n return await this._dna_request<DNAFollowGameIdBean>(\"user/getUserGame\")\n }\n\n async getWikiData() {\n return await this._dna_request<DNAWikiVoEntity>(\"config/getGameWiki\")\n }\n\n async haveOfficialRole() {\n return await this._dna_request<DNAHaveOfficialRoleBean>(\"role/haveOfficialRole\")\n }\n\n async isRedPoint() {\n return await this._dna_request<DNAIsRedPointBean>(\"forum/dynamic/isRedPoint\")\n }\n\n async login(mobile: string, code: string) {\n const data = { code: code, devCode: this.dev_code, gameList: DNA_GAME_ID, loginType: 1, mobile: mobile }\n const res = await this._dna_request<DNAUserDataBean>(\"user/sdkLogin\", data, { sign: true })\n if (res.is_success && res.data) {\n const data = res.data\n if (typeof data.token === \"string\") {\n this.token = data.token\n }\n }\n return res\n }\n\n async oneTapLoginRestriction() {\n return await this._dna_request(\"user/oneTapLoginRestriction\")\n }\n\n async recommendConfig() {\n return await this._dna_request<DNARecommendConfig>(\"forum/recommend/config\")\n }\n\n async refreshToken(refreshToken: string) {\n return await this._dna_request<DNATokenBean>(\"user/refreshToken\", { refreshToken })\n }\n\n async register(code: string, devCode: string, gameList: string, mobile: string, password: string) {\n return await this._dna_request<DNAUserDataBean>(\"user/register\", { code, devCode, gameList, mobile, password })\n }\n\n async saveUserInfo(gender: number | null, headCode: string, headUrl: string, userName: string) {\n return await this._dna_request<DNAUserHeadResponse>(\"user/saveUserInfo\", { gender, headCode, headUrl, userName })\n }\n\n async sendSms(mobile: string, vJson: string, isCaptcha: number | null) {\n return await this._dna_request(\"user/getSmsCode\", { mobile, isCaptcha, vJson })\n }\n\n async signature(newSignature: string) {\n return await this._dna_request(\"user/edit/signature\", { newSignature })\n }\n\n async updateHeadCode(headCode: string) {\n return await this._dna_request<DNAUserHeadResponse>(\"user/updateHeadCode\", { headCode })\n }\n\n async updateHeadUrl(headUrl: string) {\n return await this._dna_request(\"user/updateHeadUrl\", { headUrl })\n }\n\n async updateProfileBg(bgUrl: string) {\n return await this._dna_request(\"user/updateBg\", { bgUrl })\n }\n\n async uploadHead(file: File) {\n const data = new FormData()\n data.append(\"parts\", file)\n return await this.fileUpload(\"user/img/uploadHead\", data)\n }\n\n async uploadProfileBg(file: File) {\n const data = new FormData()\n data.append(\"parts\", file)\n return await this.fileUpload(\"user/img/uploadMineBg\", data)\n }\n\n async getEmoji() {\n return await this._dna_request<DNAEmojiConfigBean[]>(\"config/getEmoji\")\n }\n\n async getGameConfig() {\n return await this._dna_request<DNAGameConfigResponse[]>(\"config/getGameConfig\")\n }\n\n async getGameHeadCode() {\n return await this._dna_request<DNAGameNewHeadBean[]>(\"user/getGameHeadCode\")\n }\n}\n",
|
|
15
16
|
"import type {\n DNAAliProductConfigBean,\n DNAAliProductListBean,\n DNAApplyStatusBean,\n DNACommonBooleanBean,\n DNACreatorDescriptionBean,\n DNACustomCreativeDesc,\n DNAGoldBuyBean,\n DNAGoldDrawBean,\n DNAGoldGoodsEntity,\n DNAGoldRealBean,\n DNAGoldRecordEntity,\n DNAGoldTotalBean,\n DNALookPageBean,\n DNALuckyDrawBean,\n DNAUserAddressBean,\n DNAUserExperienceRecordEntity,\n DNAUserGameLevelEntity,\n DNAUserTaskProcessEntity,\n DNAWinListBean,\n} from \"../type-generated\"\nimport { DNASubModule } from \"./base\"\n\nexport class UserGrowingAPI extends DNASubModule {\n async addAddress(receiverName: string, receiverMobile: string, receiverAddress: string) {\n return await this._dna_request(\"user/more/userAddressAdd\", { receiverName, receiverMobile, receiverAddress })\n }\n\n async apply(\n type: number,\n id: number | null,\n concatWay: string,\n otherPlatform: string,\n otherPlatformUrl: string,\n otherPlatformFans: string,\n materialUrl: string,\n gameId: number | null\n ) {\n return await this._dna_request<DNAApplyStatusBean>(\"user/creator/apply\", {\n type,\n id,\n concatWay,\n otherPlatform,\n otherPlatformUrl,\n otherPlatformFans,\n materialUrl,\n gameId,\n })\n }\n\n async awardList(drawId: number) {\n return await this._dna_request<DNAWinListBean>(\"encourage/draw/awardList\", { drawId })\n }\n\n async awardWin(drawId: number, fullName: string, mobile: string, address: string) {\n return await this._dna_request(\"/encourage/draw/awardWin\", { drawId, fullName, mobile, address })\n }\n\n async buyGold(drawId: number, count: number) {\n return await this._dna_request<DNAGoldBuyBean>(\"encourage/draw/buy\", { drawId, count })\n }\n\n async buyProduct(address: string, fullName: string, mobile: string, productId: number) {\n return await this._dna_request(\"/encourage/store/buyProduct\", { address, fullName, mobile, productId })\n }\n\n async deleteAddress(addressId: number) {\n return await this._dna_request<DNACommonBooleanBean>(\"user/more/deleteUserAddress\", { addressId })\n }\n\n async drawDetail(drawId: number) {\n return await this._dna_request<DNAGoldDrawBean>(\"encourage/draw/detail\", { drawId })\n }\n\n async editAddress(addressId: number, receiverName: string, receiverMobile: string, receiverAddress: string) {\n return await this._dna_request<DNACommonBooleanBean>(\"user/more/userAddressEdit\", {\n addressId,\n receiverName,\n receiverMobile,\n receiverAddress,\n })\n }\n\n async getAliProductConfig() {\n return await this._dna_request<DNAAliProductConfigBean>(\"encourage/store/ali/getAliStoreConfigAndBanner\")\n }\n\n async getAliProductList(gameId: number | null, pageIndex: number, pageSize: number) {\n return await this._dna_request<DNAAliProductListBean>(\"encourage/store/ali/productList\", { gameId, pageIndex, pageSize })\n }\n\n async getApplyPage() {\n return await this._dna_request<DNACustomCreativeDesc>(\"user/creator/getApplyPage\")\n }\n\n async getExpLogsList(gameId: number, pageIndex: number, pageSize: number) {\n return await this._dna_request<DNAUserExperienceRecordEntity>(\"encourage/level/getExpLogs\", { gameId, pageIndex, pageSize })\n }\n\n async getGameCreator() {\n return await this._dna_request<DNACreatorDescriptionBean>(\"config/identification/getGameCreator\")\n }\n\n async getGoldDetailList(pageIndex: number, pageSize: number, type: number, storeType: number) {\n return await this._dna_request<DNAGoldRecordEntity>(\"encourage/gold/getGoldLogs\", { pageIndex, pageSize, type, storeType })\n }\n\n async getProductList(gameId: number | null, pageIndex: number, pageSize: number, storeType: number) {\n return await this._dna_request<DNAGoldGoodsEntity>(\"encourage/store/productList\", { gameId, pageIndex, pageSize, storeType })\n }\n\n async getTotalGold(type?: number) {\n if (type !== undefined) {\n return await this._dna_request<DNAGoldTotalBean>(\"encourage/gold/getTotalGold\", { type })\n }\n return await this._dna_request<DNAGoldTotalBean>(\"encourage/gold/getTotalGold\")\n }\n\n async getUserAddress(userId: number, type: number) {\n return await this._dna_request<DNAUserAddressBean>(\"user/more/getUserAddress\", { userId, type })\n }\n\n async getUserGameLevel(gameId: number | null, ifProcess: number, otherUserId: number | null) {\n return await this._dna_request<DNAUserGameLevelEntity>(\"encourage/level/getUserGameLevelDetail\", {\n gameId,\n ifProcess,\n otherUserId,\n })\n }\n\n async getUserGameTaskProcess(gameId: number, userId: number) {\n return await this._dna_request<DNAUserTaskProcessEntity>(\"encourage/level/getTaskProcess\", { gameId, userId })\n }\n\n async list(pageIndex: number, pageSize: number, queryType: number | null, gameId: number | null) {\n return await this._dna_request<DNALuckyDrawBean>(\"encourage/draw/list\", { pageIndex, pageSize, queryType, gameId })\n }\n\n async page() {\n return await this._dna_request<DNALookPageBean>(\"user/creator/page\")\n }\n\n async productDetail(productId: number) {\n return await this._dna_request<DNAGoldRealBean>(\"encourage/store/productDetail\", { productId })\n }\n\n async setDefaultAddress(addressId: number) {\n return await this._dna_request<DNACommonBooleanBean>(\"user/more/setDefaultAddress\", { addressId })\n }\n\n async uploadImage(file: File) {\n const data = new FormData()\n data.append(\"parts\", file)\n return await this.fileUpload(\"user/img/uploadHead\", data)\n }\n}\n",
|
|
16
|
-
"import { DNASubModule } from \"./base\"\n\nexport interface
|
|
17
|
-
"export { TimeBasicResponse, RespCode } from \"./TimeBasicResponse\"\nexport { DNABaseAPI, DNASubModule } from \"./modules/base\"\nexport { GameAPI } from \"./modules/game\"\nexport { HomeAPI } from \"./modules/home\"\nexport { ProfileAPI } from \"./modules/profile\"\nexport { SettingAPI } from \"./modules/setting\"\nexport { TrendAPI } from \"./modules/trend\"\nexport { UserAPI } from \"./modules/user\"\nexport { UserGrowingAPI } from \"./modules/usergrowing\"\nexport * from \"./modules/h5\"\nexport * from \"./modules/types\"\nexport * from \"./type-generated\"\nexport * from \"./modules/utils\"\n\nimport { DNABaseAPI } from \"./modules/base\"\nimport { GameAPI } from \"./modules/game\"\nimport { HomeAPI } from \"./modules/home\"\nimport { ProfileAPI } from \"./modules/profile\"\nimport { SettingAPI } from \"./modules/setting\"\nimport { TrendAPI } from \"./modules/trend\"\nimport { UserAPI } from \"./modules/user\"\nimport { UserGrowingAPI } from \"./modules/usergrowing\"\nimport { H5API } from \"./modules/h5\"\nimport { DNA_GAME_ID } from \"./modules/types\"\n\n/**\n * DNA API类,用于与DNA游戏服务器交互\n */\nexport class DNAAPI extends DNABaseAPI {\n game: GameAPI\n home: HomeAPI\n profile: ProfileAPI\n setting: SettingAPI\n trend: TrendAPI\n user: UserAPI\n userGrowing: UserGrowingAPI\n h5: H5API\n\n constructor({\n dev_code = \"\",\n token = \"\",\n ...options\n }: { dev_code?: string; token?: string; fetchFn?: typeof fetch; is_h5?: boolean; rsa_public_key?: string } = {}) {\n super(dev_code, token, options)\n\n this.game = new GameAPI(this)\n this.home = new HomeAPI(this)\n this.profile = new ProfileAPI(this)\n this.setting = new SettingAPI(this)\n this.trend = new TrendAPI(this)\n this.user = new UserAPI(this)\n this.userGrowing = new UserGrowingAPI(this)\n this.h5 = new H5API(this)\n }\n\n /**\n * 手动初始化 API 配置(获取签名配置等)\n */\n async initialize(): Promise<void> {\n await this.initializeSignConfig()\n }\n\n get GAME_ID() {\n return DNA_GAME_ID\n }\n //#region Game 模块便捷方法\n async getMhSwitchStatus() {\n return await this.game.getMhSwitchStatus()\n }\n\n async updateMhSwitchStatus(config: string) {\n return await this.game.updateMhSwitchStatus(config)\n }\n\n async soulTask() {\n return await this.game.soulTask()\n }\n\n async defaultRoleForTool(type: number = 1, otherUserId?: string) {\n return await this.game.defaultRoleForTool(type, otherUserId)\n }\n\n async getRoleDetail(char_id: string | number, char_eid: string, otherUserId?: string) {\n return await this.game.getRoleDetail(char_id, char_eid, otherUserId)\n }\n\n async getWeaponDetail(weapon_id: string | number, weapon_eid: string, otherUserId?: string) {\n return await this.game.getWeaponDetail(weapon_id, weapon_eid, otherUserId)\n }\n\n async getShortNoteInfo() {\n return await this.game.getShortNoteInfo()\n }\n //#endregion\n //#region Home 模块便捷方法\n /**\n * 获取帖子列表\n * @param forumId 论坛ID,默认48(主论坛)46 全部\n * @param pageIndex 页码,默认1\n * @param pageSize 每页数量,默认20\n * @param searchType 搜索类型,默认1:最新 2:热门\n * @param timeType 时间类型,默认0(全部时间)\n * @returns 帖子列表响应\n */\n async getPostList(forumId: number = 48, pageIndex: number = 1, pageSize: number = 20, searchType: number = 1, timeType: number = 0) {\n return await this.home.getPostList(forumId, pageIndex, pageSize, searchType, timeType)\n }\n\n async getPostDetail(postId: string | number) {\n return await this.home.getPostDetail(postId)\n }\n\n async getPostByTopic(\n topicId: number = 177,\n pageIndex: number = 1,\n pageSize: number = 20,\n searchType: number = 1,\n timeType: number = 0\n ) {\n return await this.home.getPostByTopic(topicId, pageIndex, pageSize, searchType, timeType)\n }\n\n async getTaskProcess() {\n return await this.home.getTaskProcess()\n }\n\n async haveSignIn() {\n return await this.home.haveSignIn()\n }\n\n async signCalendar() {\n return await this.home.signCalendar()\n }\n\n async gameSign(dayAwardId: number, period: number) {\n return await this.home.gameSignIn(dayAwardId, period)\n }\n\n async bbsSign() {\n return await this.home.bbsSign()\n }\n\n async getRoleList() {\n return await this.profile.roleManager()\n }\n\n async adminAdjustScore(postId: number, gameForumId: number, weight: string) {\n return await this.home.adminAdjustScore(postId, gameForumId, weight)\n }\n\n async adminDelete(post: { postId: number; gameId?: number; gameForumId: number }, content: string, reasonCode: number) {\n return await this.home.adminDelete(post, content, reasonCode)\n }\n\n async adminMovePost(\n post: { postId: number; gameId?: number; gameForumId: number },\n newGameId: number,\n newForumId: number,\n newTopicIdStr: string\n ) {\n return await this.home.adminMovePost(post, newGameId, newForumId, newTopicIdStr)\n }\n\n async adminRefreshTime(post: { postId: number; gameId?: number; gameForumId: number }, refresh: number) {\n return await this.home.adminRefreshTime(post, refresh)\n }\n\n async blockList() {\n return await this.home.blockList()\n }\n\n async blockOther(blockPostId: number, blockUserId: string, type: number) {\n return await this.home.blockOther(blockPostId, blockUserId, type)\n }\n\n async collect(postId: number, toUserId: string, operateType = 1) {\n return await this.home.collect(postId, toUserId, operateType)\n }\n\n async commentDelete(\n comment: { id: number; gameId: number; gameForumId: number },\n entityType: number,\n content: string,\n reasonCode: number\n ) {\n return await this.home.commentDelete(comment, entityType, content, reasonCode)\n }\n\n async createComment(post: { userId: string; postId: string; gameForumId: number }, content: string) {\n return await this.home.createComment(post, content)\n }\n\n async createReply(post: { userId: string; postId: string; postCommentId: string; gameForumId: number }, content: string) {\n return await this.home.createReply(post, content)\n }\n\n async createReplyList(\n post: { userId: string; postId: string; postCommentId: string; postCommentReplyId: string; gameForumId: number },\n content: string\n ) {\n return await this.home.createReplyList(post, content)\n }\n\n async deletePost(deleteType: number, id: number) {\n return await this.home.deletePost(deleteType, id)\n }\n\n async followUser(followUserId: string, unfollow?: boolean) {\n return await this.home.followUser(followUserId, unfollow)\n }\n\n async getFollowState(followUserId: string) {\n return await this.home.getFollowState(followUserId)\n }\n\n async getDoujin(forumId: number) {\n return await this.home.getDoujin(forumId)\n }\n\n async getExchange(forumId: number) {\n return await this.home.getExchange(forumId)\n }\n\n async getGameBanner(gameId = DNA_GAME_ID) {\n return await this.home.getGameBanner(gameId)\n }\n\n async getPostCommentList(postId: number, pageIndex = 1, pageSize = 20, isOnlyPublisher = 0) {\n return await this.home.getPostCommentList(postId, pageIndex, pageSize, isOnlyPublisher)\n }\n\n async getRankList(forumId: number) {\n return await this.home.getRankList(forumId)\n }\n\n async getRecommendPosts(gameId = DNA_GAME_ID, pageIndex = 1, pageSize = 20) {\n return await this.home.getRecommendPosts(gameId, pageIndex, pageSize)\n }\n\n async getReplyList(postId: number, postCommentId: number, pageIndex = 1, pageSize = 20) {\n return await this.home.getReplyList(postId, postCommentId, pageIndex, pageSize)\n }\n\n async getStatistics(gameId = DNA_GAME_ID) {\n return await this.home.getStatistics(gameId)\n }\n\n async getTips() {\n return await this.home.getTips()\n }\n\n async getWalkthrough(forumId: number) {\n return await this.home.getWalkthrough(forumId)\n }\n\n async hotList(type = 1, gameId = DNA_GAME_ID) {\n return await this.home.hotList(type, gameId)\n }\n\n async isRedPoint() {\n return await this.home.isRedPoint()\n }\n\n async likePost(post: { gameForumId: string; postId: string; postType: string; userId: string }) {\n return await this.home.like(post)\n }\n\n async lockPost(post: { postId: number; gameId?: number; gameForumId: number }, operateType: number) {\n return await this.home.lockPost(post, operateType)\n }\n\n async postDownOrUp(post: { postId: number; gameId?: number; gameForumId: number }, operateType: number) {\n return await this.home.postDownOrUp(post, operateType)\n }\n\n async postElite(post: { postId: number; gameId?: number; gameForumId: number }, operateType: number) {\n return await this.home.postElite(post, operateType)\n }\n\n async postHide(post: { postId: number; gameId?: number; gameForumId: number }, operateType: number) {\n return await this.home.postHide(post, operateType)\n }\n\n async reRank(post: { postId: number; gameId?: number; gameForumId: number }, weight: number) {\n return await this.home.reRank(post, weight)\n }\n\n async receiveLog(periodId: number, pageIndex: number, pageSize: number) {\n return await this.home.receiveLog(periodId, pageIndex, pageSize)\n }\n\n async recommendList(recIndex: number, newIndex: number, size: number, history: string, gameId = DNA_GAME_ID) {\n return await this.home.recommendList(recIndex, newIndex, size, history, gameId)\n }\n\n async report(\n { commentId = 0, postId = 0, replyId = 0 }: { commentId?: number; postId?: number; replyId?: number },\n reportReason = 1,\n reportType = 1\n ) {\n return await this.home.report({ commentId, postId, replyId }, reportReason, reportType)\n }\n\n async searchPost(keyword: string, pageIndex: number, pageSize: number, gameId = DNA_GAME_ID, searchType = 1) {\n return await this.home.searchPost(keyword, pageIndex, pageSize, gameId, searchType)\n }\n\n async searchTopic(keyword: string, pageIndex: number, pageSize = 20, gameId = DNA_GAME_ID) {\n return await this.home.searchTopic(keyword, pageIndex, pageSize, gameId)\n }\n\n async searchUser(keyword: string, pageIndex: number, pageSize: number) {\n return await this.home.searchUser(keyword, pageIndex, pageSize)\n }\n\n async shareTask() {\n return await this.home.shareTask()\n }\n\n async strongRecommend(post: { postId: number; gameId?: number; gameForumId: number }, operateType = 1) {\n return await this.home.strongRecommend(post, operateType)\n }\n\n async viewCommunity() {\n return await this.home.viewCommunity()\n }\n\n async viewCount(postId: number, gameId = DNA_GAME_ID) {\n return await this.home.viewCount(postId, gameId)\n }\n //#endregion\n //#region User 模块便捷方法\n async loginLog() {\n return await this.user.loginLog()\n }\n\n async login(mobile: string, code: string) {\n return await this.user.login(mobile, code)\n }\n\n async getSmsCode(mobile: string, vJson: string) {\n return await this.user.sendSms(mobile, vJson, 1)\n }\n\n async getMine(userId = \"\", searchType = 1, type = 0) {\n return await this.profile.mine(userId, searchType, type)\n }\n\n async getOtherMine(userId = \"709542994134436647\", searchType = 1, type = 2) {\n return await this.profile.mine(userId, searchType, type)\n }\n\n async canEditNickName() {\n return await this.user.canEditNickName()\n }\n\n async cleanToken() {\n return await this.user.cleanToken()\n }\n\n async editGender(gender: number) {\n return await this.user.editGender(gender)\n }\n\n async editNickName(userName: string) {\n return await this.user.editNickName(userName)\n }\n\n async getCommonConfig() {\n return await this.user.getCommonConfig()\n }\n\n async getConfig() {\n return await this.user.getConfig()\n }\n\n async getConfigSwitch() {\n return await this.user.getConfigSwitch()\n }\n\n async getModeratorPermission() {\n return await this.user.getModeratorPermission()\n }\n\n async getOpenScreen() {\n return await this.user.getOpenScreen()\n }\n\n async getPublicKey() {\n return await this.user.getPublicKey()\n }\n\n async getUserGame() {\n return await this.user.getUserGame()\n }\n\n async getWikiData() {\n return await this.user.getWikiData()\n }\n\n async haveOfficialRole() {\n return await this.user.haveOfficialRole()\n }\n\n async oneTapLoginRestriction() {\n return await this.user.oneTapLoginRestriction()\n }\n\n async recommendConfig() {\n return await this.user.recommendConfig()\n }\n\n async refreshToken(refreshToken: string) {\n return await this.user.refreshToken(refreshToken)\n }\n\n async register(code: string, devCode: string, gameList: string, mobile: string, password: string) {\n return await this.user.register(code, devCode, gameList, mobile, password)\n }\n\n async saveUserInfo(gender: number | null, headCode: string, headUrl: string, userName: string) {\n return await this.user.saveUserInfo(gender, headCode, headUrl, userName)\n }\n\n async signature(newSignature: string) {\n return await this.user.signature(newSignature)\n }\n\n async updateHeadCode(headCode: string) {\n return await this.user.updateHeadCode(headCode)\n }\n\n async updateHeadUrl(headUrl: string) {\n return await this.user.updateHeadUrl(headUrl)\n }\n\n async updateProfileBg(bgUrl: string) {\n return await this.user.updateProfileBg(bgUrl)\n }\n\n async uploadHead(file: File) {\n return await this.user.uploadHead(file)\n }\n\n async uploadProfileBg(file: File) {\n return await this.user.uploadProfileBg(file)\n }\n\n async getEmoji() {\n return await this.user.getEmoji()\n }\n\n async getGameConfig() {\n return await this.user.getGameConfig()\n }\n\n async getGameHeadCode() {\n return await this.user.getGameHeadCode()\n }\n\n //#endregion\n //#region H5 模块便捷方法\n async getMapCategorizeList() {\n return await this.h5.getMapCategorizeList()\n }\n\n async getMapDetail(id: number) {\n return await this.h5.getMapDetail(id)\n }\n\n async getMapSiteDetail(id: number) {\n return await this.h5.getMapSiteDetail(id)\n }\n\n async getEmojiList() {\n return await this.h5.getEmojiList()\n }\n\n async getMapMatterCategorizeOptions() {\n return await this.h5.getMapMatterCategorizeOptions()\n }\n //#endregion\n //#region Profile 模块便捷方法\n async blackUser(toUserId: string, type: number) {\n return await this.profile.blackUser(toUserId, type)\n }\n\n async cleanFansNew(type: number, userFollowId: string) {\n return await this.profile.cleanFansNew(type, userFollowId)\n }\n\n async defaultRole(otherUserId?: string, type = 1) {\n return await this.profile.defaultRole(otherUserId, type)\n }\n\n async deleteRole(roleBoundId: string) {\n return await this.profile.deleteRole(roleBoundId)\n }\n\n async draftDelete(draftId: string) {\n return await this.profile.draftDelete(draftId)\n }\n\n async fans(otherUserId: string, pageNo: number, pageSize: number, type: number) {\n return await this.profile.fans(otherUserId, pageNo, pageSize, type)\n }\n\n async fastBind() {\n return await this.profile.fastBind()\n }\n\n async follow(otherUserId: string, pageNo: number, pageSize: number, type: number) {\n return await this.profile.follow(otherUserId, pageNo, pageSize, type)\n }\n\n async getApplyStatus() {\n return await this.profile.getApplyStatus()\n }\n\n async getDraftList(pageIndex: number, pageSize: number) {\n return await this.profile.getDraftList(pageIndex, pageSize)\n }\n\n async getMineComment(otherUserId: string, pageIndex: number, pageSize: number, type: number) {\n return await this.profile.getMineComment(otherUserId, pageIndex, pageSize, type)\n }\n\n async getMinePost(otherUserId: string, pageIndex: number, pageSize: number, searchType: number, type: number, postType?: number) {\n return await this.profile.getMinePost(otherUserId, pageIndex, pageSize, searchType, type, postType)\n }\n\n async getProfileNotifySwitch() {\n return await this.profile.getNotifySwitch()\n }\n\n async historyView(pageIndex: number, pageSize: number) {\n return await this.profile.historyView(pageIndex, pageSize)\n }\n\n async likeProfilePost(data: {\n forumId: number\n gameId: number\n likeType: number\n operateType: number\n postCommentId: number\n postCommentReplyId: number\n postId: number\n postType: number\n toUserId: string\n }) {\n return await this.profile.like(data)\n }\n\n async manualBound(roleId: string, type: number, code: string) {\n return await this.profile.manualBound(roleId, type, code)\n }\n\n async mine(otherUserId: string, searchType: number, type: number, postType?: number) {\n return await this.profile.mine(otherUserId, searchType, type, postType)\n }\n\n async mineV2(otherUserId: string) {\n return await this.profile.mineV2(otherUserId)\n }\n\n async moderatorByGame(gameId: number) {\n return await this.profile.moderatorByGame(gameId)\n }\n\n async muteCancel(toUserId: string) {\n return await this.profile.muteCancel(toUserId)\n }\n\n async muteUser(toUserId: string, gameIdStr: string, type: number, reason: number, content: string) {\n return await this.profile.muteUser(toUserId, gameIdStr, type, reason, content)\n }\n\n async resetDefault(roleBoundId: string) {\n return await this.profile.resetDefault(roleBoundId)\n }\n\n //#endregion\n //#region Setting 模块便捷方法\n async addAddress(receiverName: string, receiverMobile: string, receiverAddress: string) {\n return await this.setting.addAddress(receiverName, receiverMobile, receiverAddress)\n }\n\n async cancelCode(code: string) {\n return await this.setting.cancelCode(code)\n }\n\n async cancel(cancelType: number, operateType: number, position: string, cancelReason: number | null, reasonDetail: string) {\n return await this.setting.cancel(cancelType, operateType, position, cancelReason, reasonDetail)\n }\n\n async deleteAddress(addressId: number) {\n return await this.setting.deleteAddress(addressId)\n }\n\n async editAddress(addressId: number, receiverName: string, receiverMobile: string, receiverAddress: string) {\n return await this.setting.editAddress(addressId, receiverName, receiverMobile, receiverAddress)\n }\n\n async feedback(listPic: string, proDesc: string, mobile: string, isLogin: number) {\n return await this.setting.feedback(listPic, proDesc, mobile, isLogin)\n }\n\n async getCancelStatus() {\n return await this.setting.getCancelStatus()\n }\n\n async getPrivateSet() {\n return await this.setting.getPrivateSet()\n }\n\n async getUserAddress(userId: number, type: number) {\n return await this.setting.getUserAddress(userId, type)\n }\n\n async getUserBlackList(pageIndex: number, pageSize: number) {\n return await this.setting.getUserBlackList(pageIndex, pageSize)\n }\n\n async msgListDetail(pageNo: number, pageSize: number, type: number) {\n return await this.setting.msgListDetail(pageNo, pageSize, type)\n }\n\n async postListDetail(pageNo: number, pageSize: number, type: number) {\n return await this.setting.postListDetail(pageNo, pageSize, type)\n }\n\n async privateSet(operateType: number, option: number) {\n return await this.setting.privateSet(operateType, option)\n }\n\n async sendSms(mobile: string, timeStamp: string, type: number) {\n return await this.setting.sendSms(mobile, timeStamp, type)\n }\n\n async setDefaultAddress(addressId: number) {\n return await this.setting.setDefaultAddress(addressId)\n }\n\n async setNotifySwitch(operateType: number, switchType: number) {\n return await this.setting.setNotifySwitch(operateType, switchType)\n }\n\n async uploadFeedBack(file: File) {\n return await this.setting.uploadFeedBack(file)\n }\n\n //#endregion\n //#region Trend 模块便捷方法\n async draftSave(\n content: string,\n draftId: string,\n h5Content: string,\n postTitle: string,\n postType: number,\n gameId: number,\n videoReUpload: number\n ) {\n return await this.trend.draftSave(content, draftId, h5Content, postTitle, postType, gameId, videoReUpload)\n }\n\n async getConfigTopicByGameId(name: string, showType: number) {\n return await this.trend.getConfigTopicByGameId(name, showType)\n }\n\n async getPostPublishPage() {\n return await this.trend.getPostPublishPage()\n }\n\n async getRecommend(history: string, pageSize: number) {\n return await this.trend.getRecommend(history, pageSize)\n }\n\n async getVodToken(fileName: string, title: string) {\n return await this.trend.getVodToken(fileName, title)\n }\n\n async trendList(pageIndex: number, pageSize: number, userId: string) {\n return await this.trend.list(pageIndex, pageSize, userId)\n }\n\n async parseLink(link: string) {\n return await this.trend.parseLink(link)\n }\n\n async posAdminEdit(\n content: string,\n gameForumId: number,\n h5Content: string,\n postId: string,\n postTitle: string,\n topics: string,\n postType: number,\n gameId: number,\n videoReUpload: number\n ) {\n return await this.trend.posAdminEdit(content, gameForumId, h5Content, postId, postTitle, topics, postType, gameId, videoReUpload)\n }\n\n async postEdit(\n content: string,\n gameForumId: number,\n h5Content: string,\n postId: string,\n postTitle: string,\n topics: string,\n postType: number,\n videoReUpload: number\n ) {\n return await this.trend.postEdit(content, gameForumId, h5Content, postId, postTitle, topics, postType, videoReUpload)\n }\n\n async postPublish(\n content: string,\n draftId: string,\n gameForumId: number,\n gameId: number,\n h5Content: string,\n postTitle: string,\n postType: number,\n topics: string\n ) {\n return await this.trend.postPublish(content, draftId, gameForumId, gameId, h5Content, postTitle, postType, topics)\n }\n\n async safeCheck(url: string) {\n return await this.trend.safeCheck(url)\n }\n\n async uploadImage(file: File) {\n return await this.trend.uploadImage(file)\n }\n\n async videoPostPublish(\n content: string,\n draftId: string,\n gameForumId: number,\n gameId: number,\n h5Content: string,\n postTitle: string,\n postType: number,\n topics: string\n ) {\n return await this.trend.videoPostPublish(content, draftId, gameForumId, gameId, h5Content, postTitle, postType, topics)\n }\n\n //#endregion\n //#region UserGrowing 模块便捷方法\n async apply(\n type: number,\n id: number | null,\n concatWay: string,\n otherPlatform: string,\n otherPlatformUrl: string,\n otherPlatformFans: string,\n materialUrl: string,\n gameId: number | null\n ) {\n return await this.userGrowing.apply(type, id, concatWay, otherPlatform, otherPlatformUrl, otherPlatformFans, materialUrl, gameId)\n }\n\n async awardList(drawId: number) {\n return await this.userGrowing.awardList(drawId)\n }\n\n async awardWin(drawId: number, fullName: string, mobile: string, address: string) {\n return await this.userGrowing.awardWin(drawId, fullName, mobile, address)\n }\n\n async buyGold(drawId: number, count: number) {\n return await this.userGrowing.buyGold(drawId, count)\n }\n\n async buyProduct(address: string, fullName: string, mobile: string, productId: number) {\n return await this.userGrowing.buyProduct(address, fullName, mobile, productId)\n }\n\n async drawDetail(drawId: number) {\n return await this.userGrowing.drawDetail(drawId)\n }\n\n async getAliProductConfig() {\n return await this.userGrowing.getAliProductConfig()\n }\n\n async getAliProductList(gameId: number | null, pageIndex: number, pageSize: number) {\n return await this.userGrowing.getAliProductList(gameId, pageIndex, pageSize)\n }\n\n async getApplyPage() {\n return await this.userGrowing.getApplyPage()\n }\n\n async getExpLogsList(gameId: number, pageIndex: number, pageSize: number) {\n return await this.userGrowing.getExpLogsList(gameId, pageIndex, pageSize)\n }\n\n async getGameCreator() {\n return await this.userGrowing.getGameCreator()\n }\n\n async getGoldDetailList(pageIndex: number, pageSize: number, type: number, storeType: number) {\n return await this.userGrowing.getGoldDetailList(pageIndex, pageSize, type, storeType)\n }\n\n async getProductList(gameId: number | null, pageIndex: number, pageSize: number, storeType: number) {\n return await this.userGrowing.getProductList(gameId, pageIndex, pageSize, storeType)\n }\n\n async getTotalGold(type?: number) {\n return await this.userGrowing.getTotalGold(type)\n }\n\n async getUserGameLevel(gameId: number | null, ifProcess: number, otherUserId: number | null) {\n return await this.userGrowing.getUserGameLevel(gameId, ifProcess, otherUserId)\n }\n\n async getUserGameTaskProcess(gameId: number, userId: number) {\n return await this.userGrowing.getUserGameTaskProcess(gameId, userId)\n }\n\n async list(pageIndex: number, pageSize: number, queryType: number | null, gameId: number | null) {\n return await this.userGrowing.list(pageIndex, pageSize, queryType, gameId)\n }\n\n async page() {\n return await this.userGrowing.page()\n }\n\n async productDetail(productId: number) {\n return await this.userGrowing.productDetail(productId)\n }\n\n //#endregion\n}\n"
|
|
17
|
+
"import { DNASubModule } from \"./base\"\r\n\r\n// 类型定义\r\n\r\nexport interface ServerType {\r\n id: number\r\n game_id: number\r\n name: string\r\n add_time: number\r\n add_admin: number\r\n is_del: number\r\n del_time: number\r\n del_admin: number\r\n is_allow: number\r\n}\r\nexport interface ServerInfo {\r\n id: number // 29046\r\n gameId: number // 2277\r\n qId: number\r\n name: string\r\n addTime: number\r\n addAdmin: number\r\n isDel: number\r\n delTime: number\r\n delAdmin: number\r\n isAllow: number\r\n sync: number\r\n tbsttype3: number\r\n serverId: string // 10001\r\n banServiceId: number\r\n upAdmin: number\r\n upTime: number\r\n platform: number\r\n isTest: number\r\n lang: string\r\n CreatedUserName: string\r\n ServerName: string\r\n GameName: string\r\n}\r\n\r\nexport interface RoleInfo {\r\n id: string\r\n role_id: string\r\n role_name: string\r\n totalpay: number\r\n q_id: number\r\n channel: string\r\n vip: string\r\n level: string\r\n f_id: number\r\n im_user_id: string\r\n game_id: number\r\n created_at: number\r\n is_del: number\r\n server_name: string\r\n server_type_name: string\r\n is_default: number\r\n from_sdk: number\r\n is_guest: number\r\n /** 重要:是否已游戏内邮件验证 */\r\n is_verified: number\r\n}\r\n\r\nexport interface PropInfo {\r\n category_id: string\r\n category_name: string\r\n change: string\r\n name: string\r\n next_cursor: string\r\n product_id: string\r\n prop_name: string\r\n reason_id: string\r\n remark: string\r\n time: number\r\n}\r\n\r\nexport interface PropCategory {\r\n id: string\r\n name: string\r\n}\r\n\r\n/**\r\n * 角色绑定和道具流模块\r\n * 实现bindRoles.js和propsFlow.js的功能\r\n */\r\nexport class KFAPI extends DNASubModule {\r\n base_param = {\r\n game_id: 2277,\r\n lang: \"zh\",\r\n }\r\n /**\r\n * 获取用户信息\r\n */\r\n async getUserInfo() {\r\n return this._dna_request_kf<{\r\n id: string\r\n phone: string\r\n email: string\r\n login_type: number\r\n }>(\"/v1/frontend/login/getUserInfo\", this.base_param, { method: \"GET\" })\r\n }\r\n //#region 流水查询\r\n\r\n /*\r\n 流水查询流程说明:\r\n 1. 调用getRole获取角色ID 并检查is_verified是否为1\r\n 2. 如果is_verified为0, 则调用发送游戏内邮件验证码接口发送验证码\r\n 3. 调用验证角色邮箱接口验证角色邮箱\r\n 4. 调用查询道具流接口查询道具流\r\n */\r\n\r\n /**\r\n * 获取角色信息\r\n */\r\n async getRole() {\r\n return this._dna_request_kf<RoleInfo[]>(\"/v1/frontend/role/getRole\", this.base_param, { method: \"GET\" })\r\n }\r\n\r\n /**\r\n * 发送游戏内邮件验证码\r\n * @param serverId 区服ID\r\n * @param roleId 角色ID\r\n */\r\n async sendGameMail(roleId: string | number, serverId: string | number = 29046) {\r\n return this._dna_request_kf(\"/v1/public/role/sendGameMail\", {\r\n ...this.base_param,\r\n server_id: serverId,\r\n role: roleId,\r\n })\r\n }\r\n\r\n /**\r\n * 验证角色邮箱\r\n */\r\n async verifyRoleMailCode(mail_code: string) {\r\n return this._dna_request_kf(\"/v1/frontend/role/verify\", { ...this.base_param, mail_code })\r\n }\r\n\r\n /**\r\n * 获取区服类型列表\r\n */\r\n async getServerType(game_id: string | number = 2277) {\r\n return this._dna_request_kf<ServerType[]>(\"/v1/public/select/serverType\", { ...this.base_param, game_id }, { method: \"GET\" })\r\n }\r\n\r\n /**\r\n * 获取区服列表\r\n * @param type_id 区服类型ID\r\n */\r\n async getServerList(type_id: string | number = 230) {\r\n return this._dna_request_kf<ServerInfo[]>(\"/v1/public/select/getServerList\", { ...this.base_param, type_id }, { method: \"GET\" })\r\n }\r\n\r\n /**\r\n * 获取道具分类\r\n */\r\n async getPropCategory() {\r\n return this._dna_request_kf<PropCategory[]>(\"/v1/public/selfService/getPropCategory\", this.base_param, { method: \"GET\" })\r\n }\r\n\r\n /**\r\n * 查询道具流\r\n * @param date 日期 \"2026-01-19\"\r\n * @param name 道具名称\r\n * @param role 角色ID\r\n * @param category_id 道具分类ID\r\n * @param server_id 区服ID\r\n * @access 访问限制 1分钟一次\r\n */\r\n async queryFlow(date: string, name: string, role: string, category_id: string = \"Resource\", server_id: string | number = 29046) {\r\n return this._dna_request_kf<PropInfo[]>(\"/v1/frontend/selfService/queryFlow\", {\r\n date,\r\n name,\r\n role,\r\n server_id,\r\n category_id,\r\n })\r\n }\r\n //#endregion\r\n //#region 其他\r\n /**\r\n * 绑定角色\r\n * @param serverId 区服ID\r\n * @param roleName 角色名称\r\n * @param mailCode 邮件验证码\r\n */\r\n async bindRole(serverId: string, roleName: string, mailCode?: string) {\r\n return this._dna_request_kf<RoleInfo>(\"/v1/frontend/role/bindRole\", {\r\n server_id: serverId,\r\n role: roleName,\r\n mail_code: mailCode,\r\n })\r\n }\r\n\r\n /**\r\n * 绑定默认角色\r\n */\r\n async bindDefaultRole() {\r\n return this._dna_request_kf<RoleInfo>(\"/v1/public/role/default\", this.base_param)\r\n }\r\n\r\n /**\r\n * 获取验证码\r\n */\r\n async getCode() {\r\n return this._dna_request_kf<any>(\"/v1/frontend/selfService/getCode\")\r\n }\r\n\r\n /**\r\n * 获取手机验证码\r\n */\r\n async sendVerifyCode() {\r\n return this._dna_request_kf<any>(\"/v1/frontend/selfService/sendVerifyCode\")\r\n }\r\n\r\n /**\r\n * 变更手机\r\n */\r\n async changePhone() {\r\n return this._dna_request_kf<any>(\"/v1/frontend/selfService/changePhone\")\r\n }\r\n\r\n /**\r\n * 选择角色\r\n */\r\n async chooseRole() {\r\n return this._dna_request_kf<any>(\"/v1/frontend/role/chooseRole\")\r\n }\r\n\r\n /**\r\n * 解码手机验证码\r\n * @param verifyCode 手机验证码\r\n */\r\n async decodePhone(verifyCode: string) {\r\n return this._dna_request_kf<any>(\"/v1/public/kf/decode\", { verify_code: verifyCode })\r\n }\r\n\r\n /**\r\n * 获取登录验证码\r\n */\r\n async captcha() {\r\n return this._dna_request_kf(\"/v1/public/login/captcha\", undefined, { method: \"GET\" })\r\n }\r\n //#endregion\r\n}\r\n",
|
|
18
|
+
"export { DNABaseAPI, DNASubModule } from \"./modules/base\"\nexport { GameAPI } from \"./modules/game\"\nexport * from \"./modules/h5\"\nexport { HomeAPI } from \"./modules/home\"\nexport { ProfileAPI } from \"./modules/profile\"\nexport { SettingAPI } from \"./modules/setting\"\nexport { TrendAPI } from \"./modules/trend\"\nexport * from \"./modules/types\"\nexport { UserAPI } from \"./modules/user\"\nexport { UserGrowingAPI } from \"./modules/usergrowing\"\nexport * from \"./modules/utils\"\nexport { RespCode, TimeBasicResponse } from \"./TimeBasicResponse\"\nexport * from \"./type-generated\"\n\nimport { DNABaseAPI } from \"./modules/base\"\nimport { GameAPI } from \"./modules/game\"\nimport { H5API } from \"./modules/h5\"\nimport { HomeAPI } from \"./modules/home\"\nimport { KFAPI } from \"./modules/kf\"\nimport { ProfileAPI } from \"./modules/profile\"\nimport { SettingAPI } from \"./modules/setting\"\nimport { TrendAPI } from \"./modules/trend\"\nimport { DNA_GAME_ID } from \"./modules/types\"\nimport { UserAPI } from \"./modules/user\"\nimport { UserGrowingAPI } from \"./modules/usergrowing\"\n\nexport * from \"./modules/kf\"\n\n/**\n * DNA API类,用于与DNA游戏服务器交互\n */\nexport class DNAAPI extends DNABaseAPI {\n game: GameAPI\n home: HomeAPI\n profile: ProfileAPI\n setting: SettingAPI\n trend: TrendAPI\n user: UserAPI\n kf: KFAPI\n userGrowing: UserGrowingAPI\n h5: H5API\n\n constructor({\n dev_code = \"\",\n token = \"\",\n ...options\n }: { dev_code?: string; token?: string; fetchFn?: typeof fetch; is_h5?: boolean; rsa_public_key?: string } = {}) {\n super(dev_code, token, options)\n\n this.game = new GameAPI(this)\n this.home = new HomeAPI(this)\n this.profile = new ProfileAPI(this)\n this.setting = new SettingAPI(this)\n this.trend = new TrendAPI(this)\n this.user = new UserAPI(this)\n this.userGrowing = new UserGrowingAPI(this)\n this.h5 = new H5API(this)\n this.kf = new KFAPI(this)\n }\n\n /**\n * 手动初始化 API 配置(获取签名配置等)\n */\n async initialize(): Promise<void> {\n await this.initializeSignConfig()\n }\n\n get GAME_ID() {\n return DNA_GAME_ID\n }\n //#region Game 模块便捷方法\n async getMhSwitchStatus() {\n return await this.game.getMhSwitchStatus()\n }\n\n async updateMhSwitchStatus(config: string) {\n return await this.game.updateMhSwitchStatus(config)\n }\n\n async soulTask() {\n return await this.game.soulTask()\n }\n\n async defaultRoleForTool(type: number = 1, otherUserId?: string) {\n return await this.game.defaultRoleForTool(type, otherUserId)\n }\n\n async getRoleDetail(char_id: string | number, char_eid: string, otherUserId?: string) {\n return await this.game.getRoleDetail(char_id, char_eid, otherUserId)\n }\n\n async getWeaponDetail(weapon_id: string | number, weapon_eid: string, otherUserId?: string) {\n return await this.game.getWeaponDetail(weapon_id, weapon_eid, otherUserId)\n }\n\n async getShortNoteInfo() {\n return await this.game.getShortNoteInfo()\n }\n //#endregion\n //#region Home 模块便捷方法\n /**\n * 获取帖子列表\n * @param forumId 论坛ID,默认48(主论坛)46 全部\n * @param pageIndex 页码,默认1\n * @param pageSize 每页数量,默认20\n * @param searchType 搜索类型,默认1:最新 2:热门\n * @param timeType 时间类型,默认0(全部时间)\n * @returns 帖子列表响应\n */\n async getPostList(forumId: number = 48, pageIndex: number = 1, pageSize: number = 20, searchType: number = 1, timeType: number = 0) {\n return await this.home.getPostList(forumId, pageIndex, pageSize, searchType, timeType)\n }\n\n async getPostDetail(postId: string | number) {\n return await this.home.getPostDetail(postId)\n }\n\n async getPostByTopic(\n topicId: number = 177,\n pageIndex: number = 1,\n pageSize: number = 20,\n searchType: number = 1,\n timeType: number = 0\n ) {\n return await this.home.getPostByTopic(topicId, pageIndex, pageSize, searchType, timeType)\n }\n\n async getTaskProcess() {\n return await this.home.getTaskProcess()\n }\n\n async haveSignIn() {\n return await this.home.haveSignIn()\n }\n\n async signCalendar() {\n return await this.home.signCalendar()\n }\n\n async gameSign(dayAwardId: number, period: number) {\n return await this.home.gameSignIn(dayAwardId, period)\n }\n\n async bbsSign() {\n return await this.home.bbsSign()\n }\n\n async getRoleList() {\n return await this.profile.roleManager()\n }\n\n async adminAdjustScore(postId: number, gameForumId: number, weight: string) {\n return await this.home.adminAdjustScore(postId, gameForumId, weight)\n }\n\n async adminDelete(post: { postId: number; gameId?: number; gameForumId: number }, content: string, reasonCode: number) {\n return await this.home.adminDelete(post, content, reasonCode)\n }\n\n async adminMovePost(\n post: { postId: number; gameId?: number; gameForumId: number },\n newGameId: number,\n newForumId: number,\n newTopicIdStr: string\n ) {\n return await this.home.adminMovePost(post, newGameId, newForumId, newTopicIdStr)\n }\n\n async adminRefreshTime(post: { postId: number; gameId?: number; gameForumId: number }, refresh: number) {\n return await this.home.adminRefreshTime(post, refresh)\n }\n\n async blockList() {\n return await this.home.blockList()\n }\n\n async blockOther(blockPostId: number, blockUserId: string, type: number) {\n return await this.home.blockOther(blockPostId, blockUserId, type)\n }\n\n async collect(postId: number, toUserId: string, operateType = 1) {\n return await this.home.collect(postId, toUserId, operateType)\n }\n\n async commentDelete(\n comment: { id: number; gameId: number; gameForumId: number },\n entityType: number,\n content: string,\n reasonCode: number\n ) {\n return await this.home.commentDelete(comment, entityType, content, reasonCode)\n }\n\n async createComment(post: { userId: string; postId: string; gameForumId: number }, content: string) {\n return await this.home.createComment(post, content)\n }\n\n async createReply(post: { userId: string; postId: string; postCommentId: string; gameForumId: number }, content: string) {\n return await this.home.createReply(post, content)\n }\n\n async createReplyList(\n post: { userId: string; postId: string; postCommentId: string; postCommentReplyId: string; gameForumId: number },\n content: string\n ) {\n return await this.home.createReplyList(post, content)\n }\n\n async deletePost(deleteType: number, id: number) {\n return await this.home.deletePost(deleteType, id)\n }\n\n async followUser(followUserId: string, unfollow?: boolean) {\n return await this.home.followUser(followUserId, unfollow)\n }\n\n async getFollowState(followUserId: string) {\n return await this.home.getFollowState(followUserId)\n }\n\n async getDoujin(forumId: number) {\n return await this.home.getDoujin(forumId)\n }\n\n async getExchange(forumId: number) {\n return await this.home.getExchange(forumId)\n }\n\n async getGameBanner(gameId = DNA_GAME_ID) {\n return await this.home.getGameBanner(gameId)\n }\n\n async getPostCommentList(postId: number, pageIndex = 1, pageSize = 20, isOnlyPublisher = 0) {\n return await this.home.getPostCommentList(postId, pageIndex, pageSize, isOnlyPublisher)\n }\n\n async getRankList(forumId: number) {\n return await this.home.getRankList(forumId)\n }\n\n async getRecommendPosts(gameId = DNA_GAME_ID, pageIndex = 1, pageSize = 20) {\n return await this.home.getRecommendPosts(gameId, pageIndex, pageSize)\n }\n\n async getReplyList(postId: number, postCommentId: number, pageIndex = 1, pageSize = 20) {\n return await this.home.getReplyList(postId, postCommentId, pageIndex, pageSize)\n }\n\n async getStatistics(gameId = DNA_GAME_ID) {\n return await this.home.getStatistics(gameId)\n }\n\n async getTips() {\n return await this.home.getTips()\n }\n\n async getWalkthrough(forumId: number) {\n return await this.home.getWalkthrough(forumId)\n }\n\n async hotList(type = 1, gameId = DNA_GAME_ID) {\n return await this.home.hotList(type, gameId)\n }\n\n async isRedPoint() {\n return await this.home.isRedPoint()\n }\n\n async likePost(post: { gameForumId: string; postId: string; postType: string; userId: string }) {\n return await this.home.like(post)\n }\n\n async lockPost(post: { postId: number; gameId?: number; gameForumId: number }, operateType: number) {\n return await this.home.lockPost(post, operateType)\n }\n\n async postDownOrUp(post: { postId: number; gameId?: number; gameForumId: number }, operateType: number) {\n return await this.home.postDownOrUp(post, operateType)\n }\n\n async postElite(post: { postId: number; gameId?: number; gameForumId: number }, operateType: number) {\n return await this.home.postElite(post, operateType)\n }\n\n async postHide(post: { postId: number; gameId?: number; gameForumId: number }, operateType: number) {\n return await this.home.postHide(post, operateType)\n }\n\n async reRank(post: { postId: number; gameId?: number; gameForumId: number }, weight: number) {\n return await this.home.reRank(post, weight)\n }\n\n async receiveLog(periodId: number, pageIndex: number, pageSize: number) {\n return await this.home.receiveLog(periodId, pageIndex, pageSize)\n }\n\n async recommendList(recIndex: number, newIndex: number, size: number, history: string, gameId = DNA_GAME_ID) {\n return await this.home.recommendList(recIndex, newIndex, size, history, gameId)\n }\n\n async report(\n { commentId = 0, postId = 0, replyId = 0 }: { commentId?: number; postId?: number; replyId?: number },\n reportReason = 1,\n reportType = 1\n ) {\n return await this.home.report({ commentId, postId, replyId }, reportReason, reportType)\n }\n\n async searchPost(keyword: string, pageIndex: number, pageSize: number, gameId = DNA_GAME_ID, searchType = 1) {\n return await this.home.searchPost(keyword, pageIndex, pageSize, gameId, searchType)\n }\n\n async searchTopic(keyword: string, pageIndex: number, pageSize = 20, gameId = DNA_GAME_ID) {\n return await this.home.searchTopic(keyword, pageIndex, pageSize, gameId)\n }\n\n async searchUser(keyword: string, pageIndex: number, pageSize: number) {\n return await this.home.searchUser(keyword, pageIndex, pageSize)\n }\n\n async shareTask() {\n return await this.home.shareTask()\n }\n\n async strongRecommend(post: { postId: number; gameId?: number; gameForumId: number }, operateType = 1) {\n return await this.home.strongRecommend(post, operateType)\n }\n\n async viewCommunity() {\n return await this.home.viewCommunity()\n }\n\n async viewCount(postId: number, gameId = DNA_GAME_ID) {\n return await this.home.viewCount(postId, gameId)\n }\n //#endregion\n //#region User 模块便捷方法\n async loginLog() {\n return await this.user.loginLog()\n }\n\n async login(mobile: string, code: string) {\n return await this.user.login(mobile, code)\n }\n\n async getSmsCode(mobile: string, vJson: string) {\n return await this.user.sendSms(mobile, vJson, 1)\n }\n\n async getMine(userId = \"\", searchType = 1, type = 0) {\n return await this.profile.mine(userId, searchType, type)\n }\n\n async getOtherMine(userId = \"709542994134436647\", searchType = 1, type = 2) {\n return await this.profile.mine(userId, searchType, type)\n }\n\n async canEditNickName() {\n return await this.user.canEditNickName()\n }\n\n async cleanToken() {\n return await this.user.cleanToken()\n }\n\n async editGender(gender: number) {\n return await this.user.editGender(gender)\n }\n\n async editNickName(userName: string) {\n return await this.user.editNickName(userName)\n }\n\n async getCommonConfig() {\n return await this.user.getCommonConfig()\n }\n\n async getConfig() {\n return await this.user.getConfig()\n }\n\n async getConfigSwitch() {\n return await this.user.getConfigSwitch()\n }\n\n async getModeratorPermission() {\n return await this.user.getModeratorPermission()\n }\n\n async getOpenScreen() {\n return await this.user.getOpenScreen()\n }\n\n async getPublicKey() {\n return await this.user.getPublicKey()\n }\n\n async getUserGame() {\n return await this.user.getUserGame()\n }\n\n async getWikiData() {\n return await this.user.getWikiData()\n }\n\n async haveOfficialRole() {\n return await this.user.haveOfficialRole()\n }\n\n async oneTapLoginRestriction() {\n return await this.user.oneTapLoginRestriction()\n }\n\n async recommendConfig() {\n return await this.user.recommendConfig()\n }\n\n async refreshToken(refreshToken: string) {\n return await this.user.refreshToken(refreshToken)\n }\n\n async register(code: string, devCode: string, gameList: string, mobile: string, password: string) {\n return await this.user.register(code, devCode, gameList, mobile, password)\n }\n\n async saveUserInfo(gender: number | null, headCode: string, headUrl: string, userName: string) {\n return await this.user.saveUserInfo(gender, headCode, headUrl, userName)\n }\n\n async signature(newSignature: string) {\n return await this.user.signature(newSignature)\n }\n\n async updateHeadCode(headCode: string) {\n return await this.user.updateHeadCode(headCode)\n }\n\n async updateHeadUrl(headUrl: string) {\n return await this.user.updateHeadUrl(headUrl)\n }\n\n async updateProfileBg(bgUrl: string) {\n return await this.user.updateProfileBg(bgUrl)\n }\n\n async uploadHead(file: File) {\n return await this.user.uploadHead(file)\n }\n\n async uploadProfileBg(file: File) {\n return await this.user.uploadProfileBg(file)\n }\n\n async getEmoji() {\n return await this.user.getEmoji()\n }\n\n async getGameConfig() {\n return await this.user.getGameConfig()\n }\n\n async getGameHeadCode() {\n return await this.user.getGameHeadCode()\n }\n\n //#endregion\n //#region H5 模块便捷方法\n async getMapCategorizeList() {\n return await this.h5.getMapCategorizeList()\n }\n\n async getMapDetail(id: number) {\n return await this.h5.getMapDetail(id)\n }\n\n async getMapSiteDetail(id: number) {\n return await this.h5.getMapSiteDetail(id)\n }\n\n async getEmojiList() {\n return await this.h5.getEmojiList()\n }\n\n async getMapMatterCategorizeOptions() {\n return await this.h5.getMapMatterCategorizeOptions()\n }\n //#endregion\n //#region Profile 模块便捷方法\n async blackUser(toUserId: string, type: number) {\n return await this.profile.blackUser(toUserId, type)\n }\n\n async cleanFansNew(type: number, userFollowId: string) {\n return await this.profile.cleanFansNew(type, userFollowId)\n }\n\n async defaultRole(otherUserId?: string, type = 1) {\n return await this.profile.defaultRole(otherUserId, type)\n }\n\n async deleteRole(roleBoundId: string) {\n return await this.profile.deleteRole(roleBoundId)\n }\n\n async draftDelete(draftId: string) {\n return await this.profile.draftDelete(draftId)\n }\n\n async fans(otherUserId: string, pageNo: number, pageSize: number, type: number) {\n return await this.profile.fans(otherUserId, pageNo, pageSize, type)\n }\n\n async fastBind() {\n return await this.profile.fastBind()\n }\n\n async follow(otherUserId: string, pageNo: number, pageSize: number, type: number) {\n return await this.profile.follow(otherUserId, pageNo, pageSize, type)\n }\n\n async getApplyStatus() {\n return await this.profile.getApplyStatus()\n }\n\n async getDraftList(pageIndex: number, pageSize: number) {\n return await this.profile.getDraftList(pageIndex, pageSize)\n }\n\n async getMineComment(otherUserId: string, pageIndex: number, pageSize: number, type: number) {\n return await this.profile.getMineComment(otherUserId, pageIndex, pageSize, type)\n }\n\n async getMinePost(otherUserId: string, pageIndex: number, pageSize: number, searchType: number, type: number, postType?: number) {\n return await this.profile.getMinePost(otherUserId, pageIndex, pageSize, searchType, type, postType)\n }\n\n async getProfileNotifySwitch() {\n return await this.profile.getNotifySwitch()\n }\n\n async historyView(pageIndex: number, pageSize: number) {\n return await this.profile.historyView(pageIndex, pageSize)\n }\n\n async likeProfilePost(data: {\n forumId: number\n gameId: number\n likeType: number\n operateType: number\n postCommentId: number\n postCommentReplyId: number\n postId: number\n postType: number\n toUserId: string\n }) {\n return await this.profile.like(data)\n }\n\n async manualBound(roleId: string, type: number, code: string) {\n return await this.profile.manualBound(roleId, type, code)\n }\n\n async mine(otherUserId: string, searchType: number, type: number, postType?: number) {\n return await this.profile.mine(otherUserId, searchType, type, postType)\n }\n\n async mineV2(otherUserId: string) {\n return await this.profile.mineV2(otherUserId)\n }\n\n async moderatorByGame(gameId: number) {\n return await this.profile.moderatorByGame(gameId)\n }\n\n async muteCancel(toUserId: string) {\n return await this.profile.muteCancel(toUserId)\n }\n\n async muteUser(toUserId: string, gameIdStr: string, type: number, reason: number, content: string) {\n return await this.profile.muteUser(toUserId, gameIdStr, type, reason, content)\n }\n\n async resetDefault(roleBoundId: string) {\n return await this.profile.resetDefault(roleBoundId)\n }\n\n //#endregion\n //#region Setting 模块便捷方法\n async addAddress(receiverName: string, receiverMobile: string, receiverAddress: string) {\n return await this.setting.addAddress(receiverName, receiverMobile, receiverAddress)\n }\n\n async cancelCode(code: string) {\n return await this.setting.cancelCode(code)\n }\n\n async cancel(cancelType: number, operateType: number, position: string, cancelReason: number | null, reasonDetail: string) {\n return await this.setting.cancel(cancelType, operateType, position, cancelReason, reasonDetail)\n }\n\n async deleteAddress(addressId: number) {\n return await this.setting.deleteAddress(addressId)\n }\n\n async editAddress(addressId: number, receiverName: string, receiverMobile: string, receiverAddress: string) {\n return await this.setting.editAddress(addressId, receiverName, receiverMobile, receiverAddress)\n }\n\n async feedback(listPic: string, proDesc: string, mobile: string, isLogin: number) {\n return await this.setting.feedback(listPic, proDesc, mobile, isLogin)\n }\n\n async getCancelStatus() {\n return await this.setting.getCancelStatus()\n }\n\n async getPrivateSet() {\n return await this.setting.getPrivateSet()\n }\n\n async getUserAddress(userId: number, type: number) {\n return await this.setting.getUserAddress(userId, type)\n }\n\n async getUserBlackList(pageIndex: number, pageSize: number) {\n return await this.setting.getUserBlackList(pageIndex, pageSize)\n }\n\n async msgListDetail(pageNo: number, pageSize: number, type: number) {\n return await this.setting.msgListDetail(pageNo, pageSize, type)\n }\n\n async postListDetail(pageNo: number, pageSize: number, type: number) {\n return await this.setting.postListDetail(pageNo, pageSize, type)\n }\n\n async privateSet(operateType: number, option: number) {\n return await this.setting.privateSet(operateType, option)\n }\n\n async sendSms(mobile: string, timeStamp: string, type: number) {\n return await this.setting.sendSms(mobile, timeStamp, type)\n }\n\n async setDefaultAddress(addressId: number) {\n return await this.setting.setDefaultAddress(addressId)\n }\n\n async setNotifySwitch(operateType: number, switchType: number) {\n return await this.setting.setNotifySwitch(operateType, switchType)\n }\n\n async uploadFeedBack(file: File) {\n return await this.setting.uploadFeedBack(file)\n }\n\n //#endregion\n //#region Trend 模块便捷方法\n async draftSave(\n content: string,\n draftId: string,\n h5Content: string,\n postTitle: string,\n postType: number,\n gameId: number,\n videoReUpload: number\n ) {\n return await this.trend.draftSave(content, draftId, h5Content, postTitle, postType, gameId, videoReUpload)\n }\n\n async getConfigTopicByGameId(name: string, showType: number) {\n return await this.trend.getConfigTopicByGameId(name, showType)\n }\n\n async getPostPublishPage() {\n return await this.trend.getPostPublishPage()\n }\n\n async getRecommend(history: string, pageSize: number) {\n return await this.trend.getRecommend(history, pageSize)\n }\n\n async getVodToken(fileName: string, title: string) {\n return await this.trend.getVodToken(fileName, title)\n }\n\n async trendList(pageIndex: number, pageSize: number, userId: string) {\n return await this.trend.list(pageIndex, pageSize, userId)\n }\n\n async parseLink(link: string) {\n return await this.trend.parseLink(link)\n }\n\n async posAdminEdit(\n content: string,\n gameForumId: number,\n h5Content: string,\n postId: string,\n postTitle: string,\n topics: string,\n postType: number,\n gameId: number,\n videoReUpload: number\n ) {\n return await this.trend.posAdminEdit(content, gameForumId, h5Content, postId, postTitle, topics, postType, gameId, videoReUpload)\n }\n\n async postEdit(\n content: string,\n gameForumId: number,\n h5Content: string,\n postId: string,\n postTitle: string,\n topics: string,\n postType: number,\n videoReUpload: number\n ) {\n return await this.trend.postEdit(content, gameForumId, h5Content, postId, postTitle, topics, postType, videoReUpload)\n }\n\n async postPublish(\n content: string,\n draftId: string,\n gameForumId: number,\n gameId: number,\n h5Content: string,\n postTitle: string,\n postType: number,\n topics: string\n ) {\n return await this.trend.postPublish(content, draftId, gameForumId, gameId, h5Content, postTitle, postType, topics)\n }\n\n async safeCheck(url: string) {\n return await this.trend.safeCheck(url)\n }\n\n async uploadImage(file: File) {\n return await this.trend.uploadImage(file)\n }\n\n async videoPostPublish(\n content: string,\n draftId: string,\n gameForumId: number,\n gameId: number,\n h5Content: string,\n postTitle: string,\n postType: number,\n topics: string\n ) {\n return await this.trend.videoPostPublish(content, draftId, gameForumId, gameId, h5Content, postTitle, postType, topics)\n }\n\n //#endregion\n //#region UserGrowing 模块便捷方法\n async apply(\n type: number,\n id: number | null,\n concatWay: string,\n otherPlatform: string,\n otherPlatformUrl: string,\n otherPlatformFans: string,\n materialUrl: string,\n gameId: number | null\n ) {\n return await this.userGrowing.apply(type, id, concatWay, otherPlatform, otherPlatformUrl, otherPlatformFans, materialUrl, gameId)\n }\n\n async awardList(drawId: number) {\n return await this.userGrowing.awardList(drawId)\n }\n\n async awardWin(drawId: number, fullName: string, mobile: string, address: string) {\n return await this.userGrowing.awardWin(drawId, fullName, mobile, address)\n }\n\n async buyGold(drawId: number, count: number) {\n return await this.userGrowing.buyGold(drawId, count)\n }\n\n async buyProduct(address: string, fullName: string, mobile: string, productId: number) {\n return await this.userGrowing.buyProduct(address, fullName, mobile, productId)\n }\n\n async drawDetail(drawId: number) {\n return await this.userGrowing.drawDetail(drawId)\n }\n\n async getAliProductConfig() {\n return await this.userGrowing.getAliProductConfig()\n }\n\n async getAliProductList(gameId: number | null, pageIndex: number, pageSize: number) {\n return await this.userGrowing.getAliProductList(gameId, pageIndex, pageSize)\n }\n\n async getApplyPage() {\n return await this.userGrowing.getApplyPage()\n }\n\n async getExpLogsList(gameId: number, pageIndex: number, pageSize: number) {\n return await this.userGrowing.getExpLogsList(gameId, pageIndex, pageSize)\n }\n\n async getGameCreator() {\n return await this.userGrowing.getGameCreator()\n }\n\n async getGoldDetailList(pageIndex: number, pageSize: number, type: number, storeType: number) {\n return await this.userGrowing.getGoldDetailList(pageIndex, pageSize, type, storeType)\n }\n\n async getProductList(gameId: number | null, pageIndex: number, pageSize: number, storeType: number) {\n return await this.userGrowing.getProductList(gameId, pageIndex, pageSize, storeType)\n }\n\n async getTotalGold(type?: number) {\n return await this.userGrowing.getTotalGold(type)\n }\n\n async getUserGameLevel(gameId: number | null, ifProcess: number, otherUserId: number | null) {\n return await this.userGrowing.getUserGameLevel(gameId, ifProcess, otherUserId)\n }\n\n async getUserGameTaskProcess(gameId: number, userId: number) {\n return await this.userGrowing.getUserGameTaskProcess(gameId, userId)\n }\n\n async list(pageIndex: number, pageSize: number, queryType: number | null, gameId: number | null) {\n return await this.userGrowing.list(pageIndex, pageSize, queryType, gameId)\n }\n\n async page() {\n return await this.userGrowing.page()\n }\n\n async productDetail(productId: number) {\n return await this.userGrowing.productDetail(productId)\n }\n\n //#endregion\n}\n"
|
|
18
19
|
],
|
|
19
|
-
"mappings": "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",
|
|
20
|
-
"debugId": "
|
|
20
|
+
"mappings": "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",
|
|
21
|
+
"debugId": "6436B09F5C2381ED64756E2164756E21",
|
|
21
22
|
"names": []
|
|
22
23
|
}
|
package/dist/modules/base.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export declare class DNABaseAPI {
|
|
|
7
7
|
is_h5: boolean;
|
|
8
8
|
RSA_PUBLIC_KEY: string;
|
|
9
9
|
BASE_URL: string;
|
|
10
|
+
KF_BASE_URL: string;
|
|
10
11
|
uploadKey: string;
|
|
11
12
|
sign_api_urls: Set<string>;
|
|
12
13
|
constructor(dev_code: string, token?: string, options?: {
|
|
@@ -24,10 +25,12 @@ export declare class DNABaseAPI {
|
|
|
24
25
|
token?: string;
|
|
25
26
|
tokenSig?: boolean;
|
|
26
27
|
h5?: boolean;
|
|
28
|
+
kf?: boolean;
|
|
27
29
|
}): Promise<HeadersPayload>;
|
|
28
30
|
needSign(url: string): Promise<boolean>;
|
|
29
31
|
initializeSignConfig(): Promise<void>;
|
|
30
32
|
_dna_request_h5<T = any>(url: string, data?: any, options?: RequestOptions): Promise<TimeBasicResponse<T>>;
|
|
33
|
+
_dna_request_kf<T = any>(url: string, data?: any, options?: RequestOptions): Promise<TimeBasicResponse<T>>;
|
|
31
34
|
_dna_request<T = any>(url: string, data?: any, options?: RequestOptions): Promise<TimeBasicResponse<T>>;
|
|
32
35
|
}
|
|
33
36
|
/**
|
|
@@ -52,6 +55,7 @@ export declare abstract class DNASubModule {
|
|
|
52
55
|
fileUpload(url: string, data: FormData): Promise<TimeBasicResponse<string[]>>;
|
|
53
56
|
_dna_request<T = any>(url: string, data?: any, options?: RequestOptions): Promise<TimeBasicResponse<T>>;
|
|
54
57
|
_dna_request_h5<T = any>(url: string, data?: any, options?: RequestOptions): Promise<TimeBasicResponse<T>>;
|
|
58
|
+
_dna_request_kf<T = any>(url: string, data?: any, options?: RequestOptions): Promise<TimeBasicResponse<T>>;
|
|
55
59
|
getHeaders(options?: {
|
|
56
60
|
payload?: Record<string, any> | string | FormData;
|
|
57
61
|
exparams?: Record<string, any>;
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { DNASubModule } from "./base";
|
|
2
|
+
export interface ServerType {
|
|
3
|
+
id: number;
|
|
4
|
+
game_id: number;
|
|
5
|
+
name: string;
|
|
6
|
+
add_time: number;
|
|
7
|
+
add_admin: number;
|
|
8
|
+
is_del: number;
|
|
9
|
+
del_time: number;
|
|
10
|
+
del_admin: number;
|
|
11
|
+
is_allow: number;
|
|
12
|
+
}
|
|
13
|
+
export interface ServerInfo {
|
|
14
|
+
id: number;
|
|
15
|
+
gameId: number;
|
|
16
|
+
qId: number;
|
|
17
|
+
name: string;
|
|
18
|
+
addTime: number;
|
|
19
|
+
addAdmin: number;
|
|
20
|
+
isDel: number;
|
|
21
|
+
delTime: number;
|
|
22
|
+
delAdmin: number;
|
|
23
|
+
isAllow: number;
|
|
24
|
+
sync: number;
|
|
25
|
+
tbsttype3: number;
|
|
26
|
+
serverId: string;
|
|
27
|
+
banServiceId: number;
|
|
28
|
+
upAdmin: number;
|
|
29
|
+
upTime: number;
|
|
30
|
+
platform: number;
|
|
31
|
+
isTest: number;
|
|
32
|
+
lang: string;
|
|
33
|
+
CreatedUserName: string;
|
|
34
|
+
ServerName: string;
|
|
35
|
+
GameName: string;
|
|
36
|
+
}
|
|
37
|
+
export interface RoleInfo {
|
|
38
|
+
id: string;
|
|
39
|
+
role_id: string;
|
|
40
|
+
role_name: string;
|
|
41
|
+
totalpay: number;
|
|
42
|
+
q_id: number;
|
|
43
|
+
channel: string;
|
|
44
|
+
vip: string;
|
|
45
|
+
level: string;
|
|
46
|
+
f_id: number;
|
|
47
|
+
im_user_id: string;
|
|
48
|
+
game_id: number;
|
|
49
|
+
created_at: number;
|
|
50
|
+
is_del: number;
|
|
51
|
+
server_name: string;
|
|
52
|
+
server_type_name: string;
|
|
53
|
+
is_default: number;
|
|
54
|
+
from_sdk: number;
|
|
55
|
+
is_guest: number;
|
|
56
|
+
/** 重要:是否已游戏内邮件验证 */
|
|
57
|
+
is_verified: number;
|
|
58
|
+
}
|
|
59
|
+
export interface PropInfo {
|
|
60
|
+
category_id: string;
|
|
61
|
+
category_name: string;
|
|
62
|
+
change: string;
|
|
63
|
+
name: string;
|
|
64
|
+
next_cursor: string;
|
|
65
|
+
product_id: string;
|
|
66
|
+
prop_name: string;
|
|
67
|
+
reason_id: string;
|
|
68
|
+
remark: string;
|
|
69
|
+
time: number;
|
|
70
|
+
}
|
|
71
|
+
export interface PropCategory {
|
|
72
|
+
id: string;
|
|
73
|
+
name: string;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* 角色绑定和道具流模块
|
|
77
|
+
* 实现bindRoles.js和propsFlow.js的功能
|
|
78
|
+
*/
|
|
79
|
+
export declare class KFAPI extends DNASubModule {
|
|
80
|
+
base_param: {
|
|
81
|
+
game_id: number;
|
|
82
|
+
lang: string;
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* 获取用户信息
|
|
86
|
+
*/
|
|
87
|
+
getUserInfo(): Promise<import("..").TimeBasicResponse<{
|
|
88
|
+
id: string;
|
|
89
|
+
phone: string;
|
|
90
|
+
email: string;
|
|
91
|
+
login_type: number;
|
|
92
|
+
}>>;
|
|
93
|
+
/**
|
|
94
|
+
* 获取角色信息
|
|
95
|
+
*/
|
|
96
|
+
getRole(): Promise<import("..").TimeBasicResponse<RoleInfo[]>>;
|
|
97
|
+
/**
|
|
98
|
+
* 发送游戏内邮件验证码
|
|
99
|
+
* @param serverId 区服ID
|
|
100
|
+
* @param roleId 角色ID
|
|
101
|
+
*/
|
|
102
|
+
sendGameMail(roleId: string | number, serverId?: string | number): Promise<import("..").TimeBasicResponse<any>>;
|
|
103
|
+
/**
|
|
104
|
+
* 验证角色邮箱
|
|
105
|
+
*/
|
|
106
|
+
verifyRoleMailCode(mail_code: string): Promise<import("..").TimeBasicResponse<any>>;
|
|
107
|
+
/**
|
|
108
|
+
* 获取区服类型列表
|
|
109
|
+
*/
|
|
110
|
+
getServerType(game_id?: string | number): Promise<import("..").TimeBasicResponse<ServerType[]>>;
|
|
111
|
+
/**
|
|
112
|
+
* 获取区服列表
|
|
113
|
+
* @param type_id 区服类型ID
|
|
114
|
+
*/
|
|
115
|
+
getServerList(type_id?: string | number): Promise<import("..").TimeBasicResponse<ServerInfo[]>>;
|
|
116
|
+
/**
|
|
117
|
+
* 获取道具分类
|
|
118
|
+
*/
|
|
119
|
+
getPropCategory(): Promise<import("..").TimeBasicResponse<PropCategory[]>>;
|
|
120
|
+
/**
|
|
121
|
+
* 查询道具流
|
|
122
|
+
* @param date 日期 "2026-01-19"
|
|
123
|
+
* @param name 道具名称
|
|
124
|
+
* @param role 角色ID
|
|
125
|
+
* @param category_id 道具分类ID
|
|
126
|
+
* @param server_id 区服ID
|
|
127
|
+
* @access 访问限制 1分钟一次
|
|
128
|
+
*/
|
|
129
|
+
queryFlow(date: string, name: string, role: string, category_id?: string, server_id?: string | number): Promise<import("..").TimeBasicResponse<PropInfo[]>>;
|
|
130
|
+
/**
|
|
131
|
+
* 绑定角色
|
|
132
|
+
* @param serverId 区服ID
|
|
133
|
+
* @param roleName 角色名称
|
|
134
|
+
* @param mailCode 邮件验证码
|
|
135
|
+
*/
|
|
136
|
+
bindRole(serverId: string, roleName: string, mailCode?: string): Promise<import("..").TimeBasicResponse<RoleInfo>>;
|
|
137
|
+
/**
|
|
138
|
+
* 绑定默认角色
|
|
139
|
+
*/
|
|
140
|
+
bindDefaultRole(): Promise<import("..").TimeBasicResponse<RoleInfo>>;
|
|
141
|
+
/**
|
|
142
|
+
* 获取验证码
|
|
143
|
+
*/
|
|
144
|
+
getCode(): Promise<import("..").TimeBasicResponse<any>>;
|
|
145
|
+
/**
|
|
146
|
+
* 获取手机验证码
|
|
147
|
+
*/
|
|
148
|
+
sendVerifyCode(): Promise<import("..").TimeBasicResponse<any>>;
|
|
149
|
+
/**
|
|
150
|
+
* 变更手机
|
|
151
|
+
*/
|
|
152
|
+
changePhone(): Promise<import("..").TimeBasicResponse<any>>;
|
|
153
|
+
/**
|
|
154
|
+
* 选择角色
|
|
155
|
+
*/
|
|
156
|
+
chooseRole(): Promise<import("..").TimeBasicResponse<any>>;
|
|
157
|
+
/**
|
|
158
|
+
* 解码手机验证码
|
|
159
|
+
* @param verifyCode 手机验证码
|
|
160
|
+
*/
|
|
161
|
+
decodePhone(verifyCode: string): Promise<import("..").TimeBasicResponse<any>>;
|
|
162
|
+
/**
|
|
163
|
+
* 获取登录验证码
|
|
164
|
+
*/
|
|
165
|
+
captcha(): Promise<import("..").TimeBasicResponse<any>>;
|
|
166
|
+
}
|
package/dist/modules/utils.d.ts
CHANGED
package/dist/type-generated.d.ts
CHANGED