@mrlingxd/koishi-plugin-adapter-onebot 0.1.0

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.
@@ -0,0 +1,31 @@
1
+ import { Context, Universal } from "koishi";
2
+ import { BaseBot } from "./base";
3
+ import { OneBotBot } from ".";
4
+ import * as OneBot from "../utils";
5
+ export declare namespace QQGuildBot {
6
+ interface Config extends BaseBot.Config {
7
+ parent: OneBotBot<Context>;
8
+ profile: OneBot.GuildServiceProfile;
9
+ }
10
+ }
11
+ export declare class QQGuildBot<C extends Context> extends BaseBot<C> {
12
+ parent: OneBotBot<Context>;
13
+ hidden: boolean;
14
+ constructor(ctx: C, config: QQGuildBot.Config);
15
+ get status(): Universal.Status;
16
+ set status(status: Universal.Status);
17
+ start(): Promise<void>;
18
+ stop(): Promise<void>;
19
+ getChannel(channelId: string, guildId?: string): Promise<Universal.Channel>;
20
+ getChannelList(guildId: string): Promise<{
21
+ data: Universal.Channel[];
22
+ }>;
23
+ getGuild(guildId: string): Promise<Universal.Guild>;
24
+ getGuildList(): Promise<{
25
+ data: Universal.Guild[];
26
+ }>;
27
+ getGuildMember(guildId: string, userId: string): Promise<Universal.GuildMember>;
28
+ getGuildMemberList(guildId: string): Promise<{
29
+ data: Universal.GuildMember[];
30
+ }>;
31
+ }
@@ -0,0 +1,66 @@
1
+ import { BaseBot } from "./base";
2
+ import * as OneBot from "../utils";
3
+ export class QQGuildBot extends BaseBot {
4
+ hidden = true;
5
+ constructor(ctx, config) {
6
+ super(ctx, config, "qqguild");
7
+ this.platform = "qqguild";
8
+ this.selfId = config.profile.tiny_id;
9
+ this.parent = config.parent;
10
+ this.internal = config.parent.internal;
11
+ this.user.name = config.profile.nickname;
12
+ this.user.avatar = config.profile.avatar_url;
13
+ this.parent.guildBot = this;
14
+ }
15
+ get status() {
16
+ return this.parent.status;
17
+ }
18
+ set status(status) {
19
+ this.parent.status = status;
20
+ }
21
+ async start() {
22
+ await this.context.parallel("bot-connect", this);
23
+ }
24
+ async stop() {
25
+ // Don't stop this bot twice
26
+ if (!this.parent)
27
+ return;
28
+ // prevent circular reference and use this as already disposed
29
+ this.parent = undefined;
30
+ await this.context.parallel("bot-disconnect", this);
31
+ }
32
+ async getChannel(channelId, guildId) {
33
+ const { data } = await this.getChannelList(guildId);
34
+ return data.find((channel) => channel.id === channelId);
35
+ }
36
+ async getChannelList(guildId) {
37
+ const data = await this.internal.getGuildChannelList(guildId, false);
38
+ return { data: (data || []).map(OneBot.adaptChannel) };
39
+ }
40
+ async getGuild(guildId) {
41
+ const data = await this.internal.getGuildMetaByGuest(guildId);
42
+ return OneBot.adaptGuild(data);
43
+ }
44
+ async getGuildList() {
45
+ const data = await this.internal.getGuildList();
46
+ return { data: data.map(OneBot.adaptGuild) };
47
+ }
48
+ async getGuildMember(guildId, userId) {
49
+ const profile = await this.internal.getGuildMemberProfile(guildId, userId);
50
+ return OneBot.adaptQQGuildMemberProfile(profile);
51
+ }
52
+ async getGuildMemberList(guildId) {
53
+ let nextToken;
54
+ let list = [];
55
+ while (true) {
56
+ const data = await this.internal.getGuildMemberList(guildId, nextToken);
57
+ if (!data.members?.length)
58
+ break;
59
+ list = list.concat(data.members.map(OneBot.adaptQQGuildMemberInfo));
60
+ if (data.finished)
61
+ break;
62
+ nextToken = data.next_token;
63
+ }
64
+ return { data: list };
65
+ }
66
+ }
package/lib/http.d.ts ADDED
@@ -0,0 +1,17 @@
1
+ import { Adapter, Context, HTTP, Schema } from "koishi";
2
+ import { OneBotBot } from "./bot";
3
+ export declare class HttpServer<C extends Context = Context> extends Adapter<C, OneBotBot<C>> {
4
+ static inject: string[];
5
+ bots: OneBotBot<C>[];
6
+ fork(ctx: C, bot: OneBotBot<C, OneBotBot.Config & HttpServer.Options>): Promise<void>;
7
+ connect(bot: OneBotBot<C, OneBotBot.Config & HttpServer.Options>): Promise<void>;
8
+ disconnect(bot: OneBotBot<C>): Promise<void>;
9
+ }
10
+ export declare namespace HttpServer {
11
+ interface Options extends HTTP.Config {
12
+ protocol: "http";
13
+ path?: string;
14
+ secret?: string;
15
+ }
16
+ const Options: Schema<Options>;
17
+ }
package/lib/http.js ADDED
@@ -0,0 +1,61 @@
1
+ import { createHmac } from "crypto";
2
+ import { Adapter, HTTP, Schema } from "koishi";
3
+ import { dispatchSession } from "./utils";
4
+ export class HttpServer extends Adapter {
5
+ static inject = ["server"];
6
+ async fork(ctx, bot) {
7
+ super.fork(ctx, bot);
8
+ const config = bot.config;
9
+ const { endpoint, token } = config;
10
+ if (!endpoint)
11
+ return;
12
+ const http = ctx.http.extend({
13
+ ...config,
14
+ headers: {
15
+ Authorization: `Token ${token}`
16
+ }
17
+ });
18
+ bot.internal._request = async (action, params) => {
19
+ return http.post("/" + action, params);
20
+ };
21
+ return bot.initialize();
22
+ }
23
+ async connect(bot) {
24
+ const { secret, path = "/onebot" } = bot.config;
25
+ this.ctx.server.post(path, (ctx) => {
26
+ if (secret) {
27
+ // no signature
28
+ const signature = ctx.headers["x-signature"];
29
+ if (!signature)
30
+ return (ctx.status = 401);
31
+ // invalid signature
32
+ const sig = createHmac("sha1", secret)
33
+ .update(ctx.request.response.body[Symbol.for("unparsedBody")])
34
+ .digest("hex");
35
+ if (signature !== `sha1=${sig}`)
36
+ return (ctx.status = 403);
37
+ }
38
+ const selfId = ctx.headers["x-self-id"].toString();
39
+ const bot = this.bots.find((bot) => bot.selfId === selfId);
40
+ if (!bot)
41
+ return (ctx.status = 403);
42
+ bot.logger.debug("[receive] %o", ctx.request.response.body);
43
+ dispatchSession(bot, ctx.request.response.body);
44
+ });
45
+ }
46
+ async disconnect(bot) {
47
+ bot.status = 4 /* Universal.Status.RECONNECT */;
48
+ }
49
+ }
50
+ (function (HttpServer) {
51
+ HttpServer.Options = Schema.intersect([
52
+ Schema.object({
53
+ protocol: Schema.const("http").required(),
54
+ path: Schema.string().description("服务器监听的路径。").default("/onebot"),
55
+ secret: Schema.string()
56
+ .description("接收事件推送时用于验证的字段,应该与 OneBot 的 secret 配置保持一致。")
57
+ .role("secret")
58
+ }).description("连接设置"),
59
+ HTTP.createConfig(true)
60
+ ]);
61
+ })(HttpServer || (HttpServer = {}));
package/lib/index.d.ts ADDED
@@ -0,0 +1,21 @@
1
+ import { Session } from "koishi";
2
+ import { OneBotBot } from "./bot";
3
+ import * as OneBot from "./utils";
4
+ export { OneBot };
5
+ export * from "./bot";
6
+ export * from "./http";
7
+ export * from "./ws";
8
+ export default OneBotBot;
9
+ declare module "@satorijs/core" {
10
+ interface Session {
11
+ onebot?: OneBot.Payload & OneBot.Internal;
12
+ }
13
+ }
14
+ declare module "koishi" {
15
+ interface Events {
16
+ "onebot/message-reactions-updated"(session: Session): void;
17
+ "onebot/channel-updated"(session: Session): void;
18
+ "onebot/channel-created"(session: Session): void;
19
+ "onebot/channel-destroyed"(session: Session): void;
20
+ }
21
+ }
package/lib/index.js ADDED
@@ -0,0 +1,7 @@
1
+ import { OneBotBot } from "./bot";
2
+ import * as OneBot from "./utils";
3
+ export { OneBot };
4
+ export * from "./bot";
5
+ export * from "./http";
6
+ export * from "./ws";
7
+ export default OneBotBot;
package/lib/types.d.ts ADDED
@@ -0,0 +1,474 @@
1
+ import { Dict } from "koishi";
2
+ import { BaseBot, CQCode } from "./bot";
3
+ export interface Response {
4
+ status: string;
5
+ retcode: number;
6
+ data: any;
7
+ echo?: number;
8
+ }
9
+ export interface MessageId {
10
+ message_id: number;
11
+ }
12
+ export interface AccountInfo {
13
+ user_id: number;
14
+ tiny_id?: string;
15
+ nickname: string;
16
+ }
17
+ export interface QidianAccountInfo {
18
+ master_id: number;
19
+ ext_name: string;
20
+ create_time: number;
21
+ }
22
+ export interface StrangerInfo extends AccountInfo {
23
+ sex: "male" | "female" | "unknown";
24
+ age: number;
25
+ }
26
+ export interface TalkativeMemberInfo extends AccountInfo {
27
+ avatar: string;
28
+ day_count: number;
29
+ }
30
+ export type GroupRole = "member" | "admin" | "owner";
31
+ export type HonorType = "talkative" | "performer" | "legend" | "strong_newbie" | "emotion";
32
+ export interface HonoredMemberInfo {
33
+ avatar: string;
34
+ description: string;
35
+ }
36
+ export interface HonorInfo {
37
+ current_talkative: TalkativeMemberInfo;
38
+ talkative_list: HonoredMemberInfo[];
39
+ performer_list: HonoredMemberInfo[];
40
+ legend_list: HonoredMemberInfo[];
41
+ strong_newbie_list: HonoredMemberInfo[];
42
+ emotion_list: HonoredMemberInfo[];
43
+ }
44
+ export interface SenderInfo extends StrangerInfo {
45
+ area?: string;
46
+ level?: string;
47
+ title?: string;
48
+ role?: GroupRole;
49
+ card?: string;
50
+ }
51
+ export interface Message extends MessageId {
52
+ real_id?: number;
53
+ time: number;
54
+ message_seq: number;
55
+ message_type: "private" | "group" | "guild";
56
+ sender: SenderInfo;
57
+ group_id?: number;
58
+ guild_id?: string;
59
+ channel_id?: string;
60
+ message: string | CQCode[];
61
+ anonymous?: AnonymousInfo;
62
+ }
63
+ export interface AnonymousInfo {
64
+ id: number;
65
+ name: string;
66
+ flag: string;
67
+ }
68
+ export type RecordFormat = "mp3" | "amr" | "wma" | "m4a" | "spx" | "ogg" | "wav" | "flac";
69
+ export type DataDirectory = "image" | "record" | "show" | "bface";
70
+ export interface FriendInfo extends AccountInfo {
71
+ remark: string;
72
+ }
73
+ export interface UnidirectionalFriendInfo extends AccountInfo {
74
+ source: string;
75
+ }
76
+ export interface GroupBase {
77
+ group_id: number;
78
+ group_name: string;
79
+ }
80
+ export interface GroupInfo extends GroupBase {
81
+ member_count: number;
82
+ max_member_count: number;
83
+ }
84
+ export interface GroupMemberInfo extends SenderInfo {
85
+ card_changeable: boolean;
86
+ group_id: number;
87
+ join_time: number;
88
+ last_sent_time: number;
89
+ title_expire_time: number;
90
+ unfriendly: boolean;
91
+ }
92
+ export interface Credentials {
93
+ cookies: string;
94
+ csrf_token: number;
95
+ }
96
+ export interface ImageInfo {
97
+ file: string;
98
+ }
99
+ export interface RecordInfo {
100
+ file: string;
101
+ }
102
+ export interface VersionInfo {
103
+ app_name?: string;
104
+ app_version?: string;
105
+ app_full_name?: string;
106
+ protocol_version?: string;
107
+ coolq_edition?: "air" | "pro";
108
+ coolq_directory?: string;
109
+ plugin_version?: string;
110
+ plugin_build_number?: number;
111
+ plugin_build_configuration?: "debug" | "release";
112
+ version?: string;
113
+ go_cqhttp?: boolean;
114
+ runtime_version?: string;
115
+ runtime_os?: string;
116
+ protocol?: string;
117
+ }
118
+ export interface ImageInfo {
119
+ size?: number;
120
+ filename?: string;
121
+ url?: string;
122
+ }
123
+ export interface ForwardMessage {
124
+ sender: AccountInfo;
125
+ time: number;
126
+ content: string;
127
+ }
128
+ export interface EssenceMessage extends MessageId {
129
+ sender_id: number;
130
+ sender_nick: string;
131
+ sender_time: number;
132
+ operator_id: number;
133
+ operator_nick: string;
134
+ operator_time: number;
135
+ }
136
+ export interface VipInfo extends AccountInfo {
137
+ level: number;
138
+ level_speed: number;
139
+ vip_level: number;
140
+ vip_growth_speed: number;
141
+ vip_growth_total: string;
142
+ }
143
+ export interface GroupNotice {
144
+ notice_id: string;
145
+ sender_id: number;
146
+ publish_time: number;
147
+ message: {
148
+ text: string;
149
+ images: GroupNoticeImage[];
150
+ };
151
+ }
152
+ export interface GroupNoticeImage {
153
+ height: string;
154
+ width: string;
155
+ id: string;
156
+ }
157
+ export interface Statistics {
158
+ packet_received: number;
159
+ packet_sent: number;
160
+ packet_lost: number;
161
+ message_received: number;
162
+ message_sent: number;
163
+ disconnect_times: number;
164
+ lost_times: number;
165
+ }
166
+ export interface StatusInfo {
167
+ app_initialized: boolean;
168
+ app_enabled: boolean;
169
+ plugins_good: boolean;
170
+ app_good: boolean;
171
+ online: boolean;
172
+ good: boolean;
173
+ stat: Statistics;
174
+ }
175
+ export interface TextDetection {
176
+ text: string;
177
+ confidence: string;
178
+ coordinates: any;
179
+ }
180
+ export interface OcrResult {
181
+ language: string;
182
+ texts: TextDetection[];
183
+ }
184
+ export interface GroupRequest extends GroupBase {
185
+ request_id: number;
186
+ invitor_uin: number;
187
+ invitor_nick: string;
188
+ checked: boolean;
189
+ actor: number;
190
+ }
191
+ export interface InvitedRequest extends GroupRequest {
192
+ }
193
+ export interface JoinRequest extends GroupRequest {
194
+ message: string;
195
+ }
196
+ export interface GroupSystemMessageInfo {
197
+ invited_qequests: InvitedRequest[];
198
+ join_requests: JoinRequest[];
199
+ }
200
+ export interface GroupFileSystemInfo {
201
+ file_count: number;
202
+ limit_count: number;
203
+ used_space: number;
204
+ total_space: number;
205
+ }
206
+ export interface GroupFile {
207
+ file_id: string;
208
+ file_name: string;
209
+ busid: number;
210
+ file_size: number;
211
+ upload_time: number;
212
+ dead_time: number;
213
+ modify_time: number;
214
+ download_time: number;
215
+ uploader: number;
216
+ uploader_name: string;
217
+ }
218
+ export interface GroupFolder {
219
+ folder_id: string;
220
+ folder_name: string;
221
+ create_time: number;
222
+ creator: number;
223
+ creator_name: string;
224
+ total_file_count: number;
225
+ }
226
+ export interface GroupFileList {
227
+ files: GroupFile[];
228
+ folders: GroupFolder[];
229
+ }
230
+ export interface AtAllRemain {
231
+ can_at_all: boolean;
232
+ remain_at_all_count_for_group: number;
233
+ remain_at_all_count_for_uin: number;
234
+ }
235
+ export interface Device {
236
+ app_id: number;
237
+ device_name: string;
238
+ device_kind: string;
239
+ }
240
+ export interface ModelVariant {
241
+ model_show: string;
242
+ need_pay: boolean;
243
+ }
244
+ export declare enum SafetyLevel {
245
+ safe = 0,
246
+ unknown = 1,
247
+ danger = 2
248
+ }
249
+ export interface GuildServiceProfile {
250
+ nickname: string;
251
+ tiny_id: string;
252
+ avatar_url: string;
253
+ }
254
+ export interface GuildBaseInfo {
255
+ guild_id: string;
256
+ guild_name: string;
257
+ }
258
+ export interface GuildInfo extends GuildBaseInfo {
259
+ guild_display_id: string;
260
+ }
261
+ export interface GuildMeta extends GuildBaseInfo {
262
+ guild_profile: string;
263
+ create_time: number;
264
+ max_member_count: number;
265
+ max_robot_count: number;
266
+ max_admin_count: number;
267
+ member_count: number;
268
+ owner_id: string;
269
+ }
270
+ export interface ChannelInfo {
271
+ owner_guild_id: string;
272
+ channel_id: string;
273
+ channel_type: number;
274
+ channel_name: string;
275
+ create_time: number;
276
+ creator_id: string;
277
+ creator_tiny_id: string;
278
+ talk_permission: number;
279
+ visible_type: number;
280
+ current_slow_mode: number;
281
+ slow_modes: SlowModeInfo[];
282
+ }
283
+ export interface SlowModeInfo {
284
+ slow_mode_key: number;
285
+ slow_mode_text: string;
286
+ speak_frequency: number;
287
+ slow_mode_circle: number;
288
+ }
289
+ export interface GuildMemberListData {
290
+ members: GuildMemberInfo[];
291
+ finished: boolean;
292
+ next_token: string;
293
+ }
294
+ export interface GuildMemberRole {
295
+ role_id: string;
296
+ role_name: string;
297
+ }
298
+ export interface GuildMemberInfo extends GuildMemberRole {
299
+ tiny_id: string;
300
+ title: string;
301
+ nickname: string;
302
+ role: number;
303
+ }
304
+ export interface GuildMemberProfile {
305
+ tiny_id: string;
306
+ nickname: string;
307
+ avatar_url: string;
308
+ join_time: number;
309
+ roles: GuildMemberRole[];
310
+ }
311
+ export interface ReactionInfo {
312
+ emoji_id: string;
313
+ emoji_index: number;
314
+ emoji_type: number;
315
+ emoji_name: string;
316
+ count: number;
317
+ clicked: boolean;
318
+ }
319
+ export interface Payload extends Message {
320
+ time: number;
321
+ self_id: number;
322
+ self_tiny_id?: string;
323
+ post_type: string;
324
+ request_type: string;
325
+ notice_type: string;
326
+ meta_event_type: string;
327
+ honor_type: string;
328
+ sub_type: string;
329
+ message_id: number;
330
+ user_id: number;
331
+ target_id: number;
332
+ operator_id: number;
333
+ raw_message: string;
334
+ font: number;
335
+ comment: string;
336
+ flag: string;
337
+ old_info: ChannelInfo;
338
+ new_info: ChannelInfo;
339
+ channel_info: ChannelInfo;
340
+ current_reactions: ReactionInfo[];
341
+ file: File;
342
+ }
343
+ export interface File {
344
+ name: string;
345
+ size: number;
346
+ url: string;
347
+ }
348
+ type id = string | number;
349
+ export declare class TimeoutError extends Error {
350
+ constructor(args: Dict, url: string);
351
+ }
352
+ export declare class Internal {
353
+ readonly bot: BaseBot;
354
+ _request?(action: string, params: Dict): Promise<Response>;
355
+ constructor(bot: BaseBot);
356
+ private _get;
357
+ setGroupAnonymousBan(group_id: string, meta: string | object, duration?: number): Promise<void>;
358
+ setGroupAnonymousBanAsync(group_id: string, meta: string | object, duration?: number): Promise<void>;
359
+ sendPrivateMsg(user_id: id, message: string | readonly CQCode[], auto_escape?: boolean): Promise<number>;
360
+ sendPrivateMsgAsync(user_id: id, message: string | readonly CQCode[], auto_escape?: boolean): Promise<void>;
361
+ sendGroupMsg(group_id: id, message: string | readonly CQCode[], auto_escape?: boolean): Promise<number>;
362
+ sendGroupMsgAsync(group_id: id, message: string | readonly CQCode[], auto_escape?: boolean): Promise<void>;
363
+ sendGroupForwardMsg(group_id: id, messages: readonly CQCode[]): Promise<number>;
364
+ sendGroupForwardMsgAsync(group_id: id, messages: readonly CQCode[]): Promise<void>;
365
+ sendPrivateForwardMsg(user_id: id, messages: readonly CQCode[]): Promise<number>;
366
+ sendPrivateForwardMsgAsync(user_id: id, messages: readonly CQCode[]): Promise<void>;
367
+ deleteMsg(message_id: id): Promise<void>;
368
+ deleteMsgAsync(message_id: id): Promise<void>;
369
+ setEssenceMsg(message_id: id): Promise<void>;
370
+ setEssenceMsgAsync(message_id: id): Promise<void>;
371
+ deleteEssenceMsg(message_id: id): Promise<void>;
372
+ deleteEssenceMsgAsync(message_id: id): Promise<void>;
373
+ markMsgAsRead(message_id: id): Promise<void>;
374
+ sendLike(user_id: id, times?: number): Promise<void>;
375
+ sendLikeAsync(user_id: id, times?: number): Promise<void>;
376
+ sendGroupSign(group_id: id): Promise<void>;
377
+ sendGroupSignAsync(group_id: id): Promise<void>;
378
+ getMsg(message_id: id): Promise<Message>;
379
+ getForwardMsg(message_id: id): Promise<ForwardMessage[]>;
380
+ getEssenceMsgList(group_id: id): Promise<EssenceMessage[]>;
381
+ getWordSlices(content: string): Promise<string[]>;
382
+ ocrImage(image: string): Promise<OcrResult>;
383
+ getGroupMsgHistory(group_id: id, message_seq?: number): Promise<{
384
+ messages: Message[];
385
+ }>;
386
+ deleteFriend(user_id: id): Promise<void>;
387
+ deleteFriendAsync(user_id: id): Promise<void>;
388
+ deleteUnidirectionalFriend(user_id: id): Promise<void>;
389
+ deleteUnidirectionalFriendAsync(user_id: id): Promise<void>;
390
+ setFriendAddRequest(flag: string, approve: boolean, remark?: string): Promise<void>;
391
+ setFriendAddRequestAsync(flag: string, approve: boolean, remark?: string): Promise<void>;
392
+ setGroupAddRequest(flag: string, subType: "add" | "invite", approve: boolean, reason?: string): Promise<void>;
393
+ setGroupAddRequestAsync(flag: string, subType: "add" | "invite", approve: boolean, reason?: string): Promise<void>;
394
+ setGroupKick(group_id: id, user_id: id, reject_add_request?: boolean): Promise<void>;
395
+ setGroupKickAsync(group_id: id, user_id: id, reject_add_request?: boolean): Promise<void>;
396
+ setGroupBan(group_id: id, user_id: id, duration?: number): Promise<void>;
397
+ setGroupBanAsync(group_id: id, user_id: id, duration?: number): Promise<void>;
398
+ setGroupWholeBan(group_id: id, enable?: boolean): Promise<void>;
399
+ setGroupWholeBanAsync(group_id: id, enable?: boolean): Promise<void>;
400
+ setGroupAdmin(group_id: id, user_id: id, enable?: boolean): Promise<void>;
401
+ setGroupAdminAsync(group_id: id, user_id: id, enable?: boolean): Promise<void>;
402
+ setGroupAnonymous(group_id: id, enable?: boolean): Promise<void>;
403
+ setGroupAnonymousAsync(group_id: id, enable?: boolean): Promise<void>;
404
+ setGroupCard(group_id: id, user_id: id, card?: string): Promise<void>;
405
+ setGroupCardAsync(group_id: id, user_id: id, card?: string): Promise<void>;
406
+ setGroupLeave(group_id: id, is_dismiss?: boolean): Promise<void>;
407
+ setGroupLeaveAsync(group_id: id, is_dismiss?: boolean): Promise<void>;
408
+ setGroupSpecialTitle(group_id: id, user_id: id, special_title?: string, duration?: number): Promise<void>;
409
+ setGroupSpecialTitleAsync(group_id: id, user_id: id, special_title?: string, duration?: number): Promise<void>;
410
+ setGroupName(group_id: id, name: string): Promise<void>;
411
+ setGroupNameAsync(group_id: id, name: string): Promise<void>;
412
+ setGroupPortrait(group_id: id, file: string, cache?: boolean): Promise<void>;
413
+ setGroupPortraitAsync(group_id: id, file: string, cache?: boolean): Promise<void>;
414
+ getGroupAtAllRemain(group_id: id): Promise<AtAllRemain>;
415
+ sendGroupNotice(group_id: id, content: string, image?: string, pinned?: id, confirm_required?: id): Promise<void>;
416
+ sendGroupNoticeAsync(group_id: id, content: string, image?: string, pinned?: id, confirm_required?: id): Promise<void>;
417
+ getGroupNotice(group_id: id): Promise<GroupNotice[]>;
418
+ delGroupNotice(group_id: id, notice_id: id): Promise<void>;
419
+ getLoginInfo(): Promise<AccountInfo>;
420
+ qidianGetLoginInfo(): Promise<QidianAccountInfo>;
421
+ setQqProfile(nickname: string, company: string, email: string, college: string, personal_note: string): Promise<void>;
422
+ setQqProfileAsync(nickname: string, company: string, email: string, college: string, personal_note: string): Promise<void>;
423
+ setQqAvatar(file: string): Promise<void>;
424
+ setOnlineStatus(status: string, extStatus: string, batteryStatus: string): Promise<void>;
425
+ getVipInfo(): Promise<VipInfo>;
426
+ getStrangerInfo(user_id: id, no_cache?: boolean): Promise<StrangerInfo>;
427
+ getFriendList(): Promise<FriendInfo[]>;
428
+ getUnidirectionalFriendList(): Promise<UnidirectionalFriendInfo[]>;
429
+ getGroupInfo(group_id: id, no_cache?: boolean): Promise<GroupInfo>;
430
+ getGroupList(no_cache?: boolean): Promise<GroupInfo[]>;
431
+ getGroupMemberInfo(group_id: id, user_id: id, no_cache?: boolean): Promise<GroupMemberInfo>;
432
+ getGroupMemberList(group_id: id, no_cache?: boolean): Promise<GroupMemberInfo[]>;
433
+ getGroupHonorInfo(group_id: id, type: HonorType): Promise<HonorInfo>;
434
+ getGroupSystemMsg(): Promise<GroupSystemMessageInfo>;
435
+ getGroupFileSystemInfo(group_id: id): Promise<GroupFileSystemInfo>;
436
+ getGroupRootFiles(group_id: id): Promise<GroupFileList>;
437
+ getGroupFilesByFolder(group_id: id, folder_id: string): Promise<GroupFileList>;
438
+ getGroupFileUrl(group_id: id, file_id: string, busid: number): Promise<string>;
439
+ downloadFile(url: string, headers?: string | readonly string[], thread_count?: number): Promise<string>;
440
+ uploadPrivateFile(user_id: id, file: string, name: string): Promise<void>;
441
+ uploadGroupFile(group_id: id, file: string, name: string, folder?: string): Promise<void>;
442
+ createGroupFileFolder(group_id: id, folder_id: string, name: string): Promise<void>;
443
+ deleteGroupFolder(group_id: id, folder_id: string): Promise<void>;
444
+ deleteGroupFile(group_id: id, folder_id: string, file_id: string, busid: number): Promise<void>;
445
+ getOnlineClients(no_cache?: boolean): Promise<Device[]>;
446
+ checkUrlSafely(url: string): Promise<SafetyLevel>;
447
+ getModelShow(model: string): Promise<ModelVariant[]>;
448
+ setModelShow(model: string, model_show: string): Promise<void>;
449
+ getCookies(domain?: string): Promise<string>;
450
+ getCsrfToken(): Promise<number>;
451
+ getCredentials(domain?: string): Promise<Credentials>;
452
+ getRecord(file: string, out_format: RecordFormat, full_path?: boolean): Promise<RecordInfo>;
453
+ getImage(file: string): Promise<ImageInfo>;
454
+ canSendImage(): Promise<boolean>;
455
+ canSendRecord(): Promise<boolean>;
456
+ getStatus(): Promise<StatusInfo>;
457
+ getVersionInfo(): Promise<VersionInfo>;
458
+ setRestart(delay?: number): Promise<void>;
459
+ reloadEventFilter(): Promise<void>;
460
+ cleanCache(): Promise<void>;
461
+ getGuildServiceProfile(): Promise<GuildServiceProfile>;
462
+ getGuildList(): Promise<GuildInfo[]>;
463
+ getGuildMetaByGuest(guild_id: id): Promise<GuildMeta>;
464
+ getGuildChannelList(guild_id: id, no_cache: boolean): Promise<ChannelInfo[]>;
465
+ getGuildMemberList(guild_id: id, next_token?: string): Promise<GuildMemberListData>;
466
+ getGuildMemberProfile(guild_id: id, user_id: id): Promise<GuildMemberProfile>;
467
+ sendGuildChannelMsg(guild_id: id, channel_id: id, message: string | readonly CQCode[]): Promise<number>;
468
+ uploadImage(file: string): Promise<string>;
469
+ getPrivateFileUrl(user_id: id, file_id: string, file_hash?: string): Promise<string>;
470
+ moveGroupFile(group_id: id, file_id: string, parent_directory: string, target_directory: string): Promise<void>;
471
+ deleteGroupFileFolder(group_id: id, folder_id: string): Promise<void>;
472
+ renameGroupFileFolder(group_id: id, folder_id: string, new_folder_name: string): Promise<void>;
473
+ }
474
+ export {};