onebots 0.0.1

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.
Files changed (46) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +59 -0
  3. package/lib/bin.d.ts +2 -0
  4. package/lib/bin.js +5 -0
  5. package/lib/config.sample.yaml +31 -0
  6. package/lib/db.d.ts +19 -0
  7. package/lib/db.js +91 -0
  8. package/lib/index.d.ts +5 -0
  9. package/lib/index.js +21 -0
  10. package/lib/onebot.d.ts +43 -0
  11. package/lib/onebot.js +85 -0
  12. package/lib/server/app.d.ts +52 -0
  13. package/lib/server/app.js +232 -0
  14. package/lib/server/router.d.ts +9 -0
  15. package/lib/server/router.js +32 -0
  16. package/lib/service/V11/action/common.d.ts +64 -0
  17. package/lib/service/V11/action/common.js +115 -0
  18. package/lib/service/V11/action/friend.d.ts +38 -0
  19. package/lib/service/V11/action/friend.js +44 -0
  20. package/lib/service/V11/action/group.d.ts +104 -0
  21. package/lib/service/V11/action/group.js +138 -0
  22. package/lib/service/V11/action/index.d.ts +9 -0
  23. package/lib/service/V11/action/index.js +10 -0
  24. package/lib/service/V11/config.d.ts +10 -0
  25. package/lib/service/V11/config.js +2 -0
  26. package/lib/service/V11/index.d.ts +95 -0
  27. package/lib/service/V11/index.js +481 -0
  28. package/lib/service/V12/action/common.d.ts +32 -0
  29. package/lib/service/V12/action/common.js +105 -0
  30. package/lib/service/V12/action/friend.d.ts +13 -0
  31. package/lib/service/V12/action/friend.js +15 -0
  32. package/lib/service/V12/action/group.d.ts +104 -0
  33. package/lib/service/V12/action/group.js +138 -0
  34. package/lib/service/V12/action/guild.d.ts +2 -0
  35. package/lib/service/V12/action/guild.js +6 -0
  36. package/lib/service/V12/action/index.d.ts +10 -0
  37. package/lib/service/V12/action/index.js +11 -0
  38. package/lib/service/V12/config.d.ts +17 -0
  39. package/lib/service/V12/config.js +2 -0
  40. package/lib/service/V12/index.d.ts +102 -0
  41. package/lib/service/V12/index.js +530 -0
  42. package/lib/types.d.ts +3 -0
  43. package/lib/types.js +2 -0
  44. package/lib/utils.d.ts +13 -0
  45. package/lib/utils.js +139 -0
  46. package/package.json +58 -0
@@ -0,0 +1,104 @@
1
+ import { V12 } from "../index";
2
+ import { Sendable } from "icqq";
3
+ export declare class GroupAction {
4
+ /**
5
+ * 发送群聊消息
6
+ * @param group_id {number} 群id
7
+ * @param message {import('icqq').Sendable} 消息
8
+ */
9
+ sendGroupMsg(this: V12, group_id: number, message: Sendable): Promise<import("icqq").MessageRet>;
10
+ /**
11
+ * 群组踢人
12
+ * @param group_id {number} 群id
13
+ * @param user_id {number} 成员id
14
+ * @param reject_add_request {boolean} 是否禁止此人加群请求
15
+ */
16
+ setGroupKick(this: V12, group_id: number, user_id: number, reject_add_request?: boolean): Promise<boolean>;
17
+ /**
18
+ * 群禁言指定人
19
+ * @param group_id {number} 群id
20
+ * @param user_id {number} 成员id
21
+ * @param duration {number} 禁言时长(单位:秒)
22
+ */
23
+ setGroupBan(this: V12, group_id: number, user_id: number, duration?: number): Promise<void>;
24
+ /**
25
+ * 群禁言匿名者
26
+ * @param group_id {number} 群id
27
+ * @param flag {string} 匿名者flag
28
+ * @param duration {number} 禁言时长(单位:秒)
29
+ */
30
+ setGroupAnonymousBan(this: V12, group_id: number, flag: string, duration?: number): Promise<void>;
31
+ /**
32
+ * 群全体禁言
33
+ * @param group_id {number} 群id
34
+ * @param enable {boolean} 是否禁言
35
+ */
36
+ setGroupWholeBan(this: V12, group_id: number, enable?: boolean): Promise<boolean>;
37
+ /**
38
+ * 群匿名聊天
39
+ * @param group_id {number} 群id
40
+ * @param enable {boolean} 是否开启
41
+ */
42
+ setGroupAnonymous(this: V12, group_id: number, enable?: boolean): Promise<boolean>;
43
+ /**
44
+ * 设置群管
45
+ * @param group_id {number} 群id
46
+ * @param user_id {number} 成员id
47
+ * @param enable {boolean} true 设为管理,false 取消管理
48
+ */
49
+ setGroupAdmin(this: V12, group_id: number, user_id: number, enable?: boolean): Promise<boolean>;
50
+ /**
51
+ * 设置群成员名片(成员备注)
52
+ * @param group_id {number} 群id
53
+ * @param user_id {number} 成员id
54
+ * @param card {string} 名片信息,不传或传空串则为 删除名片
55
+ */
56
+ setGroupCard(this: V12, group_id: number, user_id: number, card?: string): Promise<boolean>;
57
+ /**
58
+ * 设置群名
59
+ * @param group_id {number} 群id
60
+ * @param name {string} 新群名
61
+ */
62
+ setGroupName(this: V12, group_id: number, name: string): Promise<boolean>;
63
+ /**
64
+ * 退出指定群聊
65
+ * @param group_id {number} 群id
66
+ */
67
+ leaveGroup(this: V12, group_id: number): Promise<boolean>;
68
+ /**
69
+ * 设置群成员头衔
70
+ * @param group_id {number} 群id
71
+ * @param user_id {number} 成员id
72
+ * @param special_title {string} 头衔
73
+ * @param duration {number} 持有时长 不传则永久
74
+ */
75
+ setGroupSpecialTitle(this: V12, group_id: number, user_id: number, special_title: string, duration?: number): Promise<boolean>;
76
+ /**
77
+ * 处理加群请求
78
+ * @param flag {string} 加群flag
79
+ * @param approve {boolean} 是否同意(默认:true)
80
+ * @param reason {string} 拒绝理由,approve为false时有效(默认为空)
81
+ * @param block {boolean} 拒绝时是否加入黑名单,(默认:false)
82
+ */
83
+ setGroupAddRequest(this: V12, flag: string, approve?: boolean, reason?: string, block?: boolean): Promise<boolean>;
84
+ /**
85
+ * 获取群列表
86
+ */
87
+ getGroupList(this: V12): Promise<Map<number, import("icqq").GroupInfo>>;
88
+ /**
89
+ * 获取指定群信息
90
+ * @param group_id
91
+ */
92
+ getGroupInfo(this: V12, group_id: number): Promise<import("icqq").GroupInfo>;
93
+ /**
94
+ * 获取群成员列表
95
+ * @param group_id
96
+ */
97
+ getGroupMemberList(this: V12, group_id: number): Promise<Map<number, import("icqq").MemberInfo>>;
98
+ /**
99
+ * 获取指定群成员信息
100
+ * @param group_id
101
+ * @param user_id
102
+ */
103
+ getGroupMemberInfo(this: V12, group_id: number, user_id: number): Promise<import("icqq").MemberInfo>;
104
+ }
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GroupAction = void 0;
4
+ class GroupAction {
5
+ /**
6
+ * 发送群聊消息
7
+ * @param group_id {number} 群id
8
+ * @param message {import('icqq').Sendable} 消息
9
+ */
10
+ sendGroupMsg(group_id, message) {
11
+ return this.client.sendGroupMsg(group_id, message);
12
+ }
13
+ /**
14
+ * 群组踢人
15
+ * @param group_id {number} 群id
16
+ * @param user_id {number} 成员id
17
+ * @param reject_add_request {boolean} 是否禁止此人加群请求
18
+ */
19
+ setGroupKick(group_id, user_id, reject_add_request) {
20
+ return this.client.setGroupKick(group_id, user_id, reject_add_request);
21
+ }
22
+ /**
23
+ * 群禁言指定人
24
+ * @param group_id {number} 群id
25
+ * @param user_id {number} 成员id
26
+ * @param duration {number} 禁言时长(单位:秒)
27
+ */
28
+ setGroupBan(group_id, user_id, duration = 1800) {
29
+ return this.client.setGroupBan(group_id, user_id, duration);
30
+ }
31
+ /**
32
+ * 群禁言匿名者
33
+ * @param group_id {number} 群id
34
+ * @param flag {string} 匿名者flag
35
+ * @param duration {number} 禁言时长(单位:秒)
36
+ */
37
+ setGroupAnonymousBan(group_id, flag, duration = 1800) {
38
+ return this.client.setGroupAnonymousBan(group_id, flag, duration);
39
+ }
40
+ /**
41
+ * 群全体禁言
42
+ * @param group_id {number} 群id
43
+ * @param enable {boolean} 是否禁言
44
+ */
45
+ setGroupWholeBan(group_id, enable) {
46
+ return this.client.setGroupWholeBan(group_id, enable);
47
+ }
48
+ /**
49
+ * 群匿名聊天
50
+ * @param group_id {number} 群id
51
+ * @param enable {boolean} 是否开启
52
+ */
53
+ setGroupAnonymous(group_id, enable) {
54
+ return this.client.setGroupAnonymous(group_id, enable);
55
+ }
56
+ /**
57
+ * 设置群管
58
+ * @param group_id {number} 群id
59
+ * @param user_id {number} 成员id
60
+ * @param enable {boolean} true 设为管理,false 取消管理
61
+ */
62
+ setGroupAdmin(group_id, user_id, enable) {
63
+ return this.client.setGroupAdmin(group_id, user_id, enable);
64
+ }
65
+ /**
66
+ * 设置群成员名片(成员备注)
67
+ * @param group_id {number} 群id
68
+ * @param user_id {number} 成员id
69
+ * @param card {string} 名片信息,不传或传空串则为 删除名片
70
+ */
71
+ setGroupCard(group_id, user_id, card) {
72
+ return this.client.setGroupCard(group_id, user_id, card);
73
+ }
74
+ /**
75
+ * 设置群名
76
+ * @param group_id {number} 群id
77
+ * @param name {string} 新群名
78
+ */
79
+ setGroupName(group_id, name) {
80
+ return this.client.setGroupName(group_id, name);
81
+ }
82
+ /**
83
+ * 退出指定群聊
84
+ * @param group_id {number} 群id
85
+ */
86
+ leaveGroup(group_id) {
87
+ return this.client.setGroupLeave(group_id);
88
+ }
89
+ /**
90
+ * 设置群成员头衔
91
+ * @param group_id {number} 群id
92
+ * @param user_id {number} 成员id
93
+ * @param special_title {string} 头衔
94
+ * @param duration {number} 持有时长 不传则永久
95
+ */
96
+ setGroupSpecialTitle(group_id, user_id, special_title, duration = -1) {
97
+ return this.client.setGroupSpecialTitle(group_id, user_id, special_title, duration);
98
+ }
99
+ /**
100
+ * 处理加群请求
101
+ * @param flag {string} 加群flag
102
+ * @param approve {boolean} 是否同意(默认:true)
103
+ * @param reason {string} 拒绝理由,approve为false时有效(默认为空)
104
+ * @param block {boolean} 拒绝时是否加入黑名单,(默认:false)
105
+ */
106
+ setGroupAddRequest(flag, approve = true, reason = '', block = false) {
107
+ return this.client.setGroupAddRequest(flag, approve, reason, block);
108
+ }
109
+ /**
110
+ * 获取群列表
111
+ */
112
+ async getGroupList() {
113
+ return this.client.getGroupList();
114
+ }
115
+ /**
116
+ * 获取指定群信息
117
+ * @param group_id
118
+ */
119
+ getGroupInfo(group_id) {
120
+ return this.client.getGroupInfo(group_id);
121
+ }
122
+ /**
123
+ * 获取群成员列表
124
+ * @param group_id
125
+ */
126
+ async getGroupMemberList(group_id) {
127
+ return this.client.getGroupMemberList(group_id);
128
+ }
129
+ /**
130
+ * 获取指定群成员信息
131
+ * @param group_id
132
+ * @param user_id
133
+ */
134
+ getGroupMemberInfo(group_id, user_id) {
135
+ return this.client.getGroupMemberInfo(group_id, user_id);
136
+ }
137
+ }
138
+ exports.GroupAction = GroupAction;
@@ -0,0 +1,2 @@
1
+ export declare class GuildAction {
2
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GuildAction = void 0;
4
+ class GuildAction {
5
+ }
6
+ exports.GuildAction = GuildAction;
@@ -0,0 +1,10 @@
1
+ import { CommonAction } from "./common";
2
+ import { FriendAction } from "./friend";
3
+ import { GroupAction } from "./group";
4
+ import { GuildAction } from "./guild";
5
+ export interface Action extends CommonAction, FriendAction, GroupAction, GuildAction {
6
+ }
7
+ declare const Action_base: import("../../../utils").Class;
8
+ export declare class Action extends Action_base {
9
+ }
10
+ export {};
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Action = void 0;
4
+ const common_1 = require("./common");
5
+ const friend_1 = require("./friend");
6
+ const group_1 = require("./group");
7
+ const guild_1 = require("./guild");
8
+ const utils_1 = require("../../../utils");
9
+ class Action extends (0, utils_1.Mixin)(common_1.CommonAction, friend_1.FriendAction, group_1.GroupAction, guild_1.GuildAction) {
10
+ }
11
+ exports.Action = Action;
@@ -0,0 +1,17 @@
1
+ export declare namespace Config {
2
+ interface AuthInfo {
3
+ access_token?: string;
4
+ }
5
+ interface EventBufferConfig {
6
+ event_enabled?: boolean;
7
+ event_buffer_size?: number;
8
+ }
9
+ type WebhookConfig = string | ({
10
+ url: string;
11
+ timeout?: number;
12
+ } & AuthInfo);
13
+ type WsReverseConfig = string | ({
14
+ url: string;
15
+ reconnect_interval?: number;
16
+ } & AuthInfo);
17
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,102 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { Client } from "icqq";
4
+ import { Config } from './config';
5
+ import { OneBot } from "../../onebot";
6
+ import { Action } from "./action";
7
+ import { EventEmitter } from "events";
8
+ import { Logger } from "log4js";
9
+ import { WebSocket, WebSocketServer } from "ws";
10
+ import Payload = V12.Payload;
11
+ export declare class V12 extends EventEmitter implements OneBot.Base {
12
+ oneBot: OneBot<'V12'>;
13
+ client: Client;
14
+ config: V12.Config;
15
+ version: string;
16
+ action: Action;
17
+ protected timestamp: number;
18
+ protected heartbeat?: NodeJS.Timeout;
19
+ logger: Logger;
20
+ private path;
21
+ wss?: WebSocketServer;
22
+ wsr: Set<WebSocket>;
23
+ private db;
24
+ constructor(oneBot: OneBot<'V12'>, client: Client, config: V12.Config);
25
+ get history(): Payload<keyof Action>[];
26
+ start(path?: string): void;
27
+ private startHttp;
28
+ private startWebhook;
29
+ private startWs;
30
+ private startWsReverse;
31
+ stop(): Promise<void>;
32
+ dispatch<T extends Record<string, any>>(data?: T): void;
33
+ apply(req: any): Promise<string>;
34
+ private _httpRequestHandler;
35
+ /**
36
+ * 快速操作
37
+ */
38
+ protected _quickOperate(event: any, res: any): void;
39
+ /**
40
+ * 创建反向ws
41
+ */
42
+ protected _createWsr(url: string, config: V12.WsReverseConfig): import("ws");
43
+ /**
44
+ * 处理ws消息
45
+ */
46
+ protected _webSocketHandler(ws: WebSocket): void;
47
+ }
48
+ export declare namespace V12 {
49
+ interface Config {
50
+ heartbeat?: number;
51
+ access_token?: string;
52
+ request_timeout?: number;
53
+ reconnect_interval?: number;
54
+ enable_cors?: boolean;
55
+ use_http?: boolean | HttpConfig;
56
+ webhook?: (string | WebhookConfig)[];
57
+ use_ws?: boolean | WsConfig;
58
+ ws_reverse?: (string | WsReverseConfig)[];
59
+ }
60
+ interface HttpConfig extends Config.AuthInfo, Config.EventBufferConfig {
61
+ }
62
+ interface WebhookConfig extends Config.AuthInfo {
63
+ url: string;
64
+ }
65
+ interface WsConfig extends Config.AuthInfo {
66
+ }
67
+ interface WsReverseConfig extends Config.AuthInfo {
68
+ url: string;
69
+ }
70
+ interface Result<T extends any> {
71
+ status: 'ok' | 'failed';
72
+ retcode: 0 | 10001 | 10002 | 10003 | 10004 | 10005 | 10006 | 10007;
73
+ data: T;
74
+ message: string;
75
+ echo?: string;
76
+ }
77
+ const defaultConfig: Config;
78
+ type Payload<T extends any> = {
79
+ id: string;
80
+ impl: 'icqq_onebot';
81
+ platform: 'qq';
82
+ self_id: `${number}`;
83
+ time: number;
84
+ type: 'meta' | 'message' | 'notice' | 'request';
85
+ detail_type: string;
86
+ sub_type: string;
87
+ } & T;
88
+ interface Protocol {
89
+ action: string;
90
+ params: any;
91
+ echo?: string;
92
+ }
93
+ function success<T extends any>(data: T, retcode?: Result<T>['retcode'], echo?: string): Result<T>;
94
+ function error(message: string, retcode?: Result<null>['retcode'], echo?: string): Result<null>;
95
+ function genMetaEvent(uin: number, type: string): {
96
+ self_id: number;
97
+ time: number;
98
+ type: string;
99
+ detail_type: string;
100
+ sub_type: string;
101
+ };
102
+ }