@ginstone/nga-api
Version:
95 lines (94 loc) • 2.5 kB
TypeScript
import { AxiosResponse } from "axios";
import { NgaPhpApi } from "../enums/NgaPhpApi";
import { ThreadBody } from "../response/body/ThreadBody";
import { ReadBody } from "../response/body/ReadBody";
export declare class NgaClient {
readonly baseUrl: string;
readonly cookie: string;
readonly userId: number;
readonly username: string;
readonly cid: string;
private instance;
/**
* 构造客户端
* @param baseUrl nginx代理到官方域名的前缀
* @param cookie 从浏览器F12中复制得到的cookie
*/
constructor(baseUrl: string, cookie: string);
/**
* 从cookie中解析userId,username,cid
* @param cookie 用户输入的cookie
*/
static parseCookie(cookie: string): {
userId: number;
username: string;
cid: string;
cookie: string;
};
/**
* get获取json数据
* @param api
* @param params queryString 参数
*/
getJson(api: NgaPhpApi, params: object): Promise<AxiosResponse<any, any>>;
/**
* get请求获取网页数据
* @param api api
* @param params queryString 参数
*/
getDoc(api: NgaPhpApi, params: object): Promise<AxiosResponse<any, any>>;
/**
* read.php
* @param params 参数
*/
read(params: object): Promise<ReadBody>;
/**
* read.php 网页
* @param params 参数
*/
readDoc(params: object): Promise<ReadBody>;
/**
* thread.php
* @param params 参数
*/
thread(params: object): Promise<ThreadBody>;
/**
* forum.php
* @param params 参数
*/
forum(params: object): Promise<any>;
/**
* nuke.php
* @param params 参数
*/
nuke(params: object): Promise<any>;
/**
* post.php
* @param params 参数
* @param data form-data
*/
post(params: object, data?: object): Promise<any>;
/**
* 请求一个回复Id的具体地址,使用to参数获取重定向地址
* @param replyId 回复id
*/
toReply(replyId: number): Promise<string>;
/**
* post请求
* @param api api
* @param params queryString 参数
* @param data form-data 参数
*/
private postJson;
/**
* get请求
* @param api api
* @param params queryString 参数
*/
private get;
/**
* 每次请求之前设置cookie,这样可以允许多个客户端同时存在互不干扰
* @private
*/
private setCookie;
}