add forum thread viewing and replying
parent
c46a573596
commit
d2180c8717
|
@ -1,5 +1,6 @@
|
||||||
import { AskModule } from "./ask";
|
import { AskModule } from "./ask";
|
||||||
import { MessagesModule } from "./messages";
|
import { MessagesModule } from "./messages";
|
||||||
|
import { ForumModule } from "./forum";
|
||||||
import { MethodCall, TCJSONResponse, TCResponse, TCResponseRaw } from "./types";
|
import { MethodCall, TCJSONResponse, TCResponse, TCResponseRaw } from "./types";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -11,6 +12,7 @@ export class Client {
|
||||||
|
|
||||||
#messages: MessagesModule;
|
#messages: MessagesModule;
|
||||||
#ask: AskModule;
|
#ask: AskModule;
|
||||||
|
#forum: ForumModule;
|
||||||
|
|
||||||
/** @internal */
|
/** @internal */
|
||||||
public _cache: { [key: string]: any; } = { };
|
public _cache: { [key: string]: any; } = { };
|
||||||
|
@ -27,12 +29,17 @@ export class Client {
|
||||||
return this.#ask;
|
return this.#ask;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public get forum(): ForumModule {
|
||||||
|
return this.#forum;
|
||||||
|
}
|
||||||
|
|
||||||
public constructor(auth?: string) {
|
public constructor(auth?: string) {
|
||||||
this.auth = auth;
|
this.auth = auth;
|
||||||
|
|
||||||
// init modules
|
// init modules
|
||||||
this.#messages = new MessagesModule(this);
|
this.#messages = new MessagesModule(this);
|
||||||
this.#ask = new AskModule(this);
|
this.#ask = new AskModule(this);
|
||||||
|
this.#forum = new ForumModule(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
//public login(username: string, password: string) {
|
//public login(username: string, password: string) {
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
import { Module } from "../module";
|
||||||
|
import { TCResponse } from "../types";
|
||||||
|
import { ViewPostsResponse } from "./types";
|
||||||
|
|
||||||
|
export class ForumModule extends Module {
|
||||||
|
public async viewPosts(
|
||||||
|
threadId: number,
|
||||||
|
fetchType: string,
|
||||||
|
postId = 0,
|
||||||
|
reverse = false,
|
||||||
|
includePost = true,
|
||||||
|
) {
|
||||||
|
return await this.client._call(
|
||||||
|
ViewPostsResponse,
|
||||||
|
"forum.viewposts",
|
||||||
|
{
|
||||||
|
getSomeBackscroll: reverse,
|
||||||
|
includePost,
|
||||||
|
threadId,
|
||||||
|
postId,
|
||||||
|
type: fetchType,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async replyThread(text: string, threadId: number) {
|
||||||
|
return await this.client._call(
|
||||||
|
TCResponse,
|
||||||
|
"forum.replythread",
|
||||||
|
{
|
||||||
|
text,
|
||||||
|
threadId,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
import { TCResponse, TCResponseRaw } from "../types";
|
||||||
|
|
||||||
|
export class ViewPostsResponse extends TCResponse {
|
||||||
|
posts: Post[];
|
||||||
|
numPostsBefore: number;
|
||||||
|
numPostsAfter: number;
|
||||||
|
jumpTo: number;
|
||||||
|
|
||||||
|
public constructor(response: TCResponseRaw) {
|
||||||
|
super(response);
|
||||||
|
this.posts = response["posts"] ?? [];
|
||||||
|
this.numPostsBefore = response["numPostsBefore"] ?? 0;
|
||||||
|
this.numPostsAfter = response["numPostsAfter"] ?? 0;
|
||||||
|
this.jumpTo = response["jumpTo"] ?? 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Post {
|
||||||
|
readonly id: number;
|
||||||
|
readonly user: string;
|
||||||
|
readonly text: string;
|
||||||
|
readonly time: number;
|
||||||
|
}
|
|
@ -5,3 +5,5 @@ export * from "./messages";
|
||||||
export * as messages from "./messages/types";
|
export * as messages from "./messages/types";
|
||||||
export * from "./ask";
|
export * from "./ask";
|
||||||
export * as ask from "./ask/types";
|
export * as ask from "./ask/types";
|
||||||
|
export * from "./forum";
|
||||||
|
export * as forum from "./forum/types";
|
||||||
|
|
Loading…
Reference in New Issue