@zhin.js/adapter-slack 2.0.0 → 2.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.
- package/CHANGELOG.md +9 -0
- package/README.md +5 -5
- package/lib/adapter.d.ts +9 -8
- package/lib/adapter.d.ts.map +1 -1
- package/lib/adapter.js +24 -23
- package/lib/adapter.js.map +1 -1
- package/lib/{bot.d.ts → endpoint.d.ts} +8 -6
- package/lib/endpoint.d.ts.map +1 -0
- package/lib/{bot.js → endpoint.js} +79 -34
- package/lib/endpoint.js.map +1 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +59 -49
- package/lib/index.js.map +1 -1
- package/lib/platform-permit.d.ts +17 -0
- package/lib/platform-permit.d.ts.map +1 -0
- package/lib/platform-permit.js +49 -0
- package/lib/platform-permit.js.map +1 -0
- package/lib/types.d.ts +1 -1
- package/lib/types.d.ts.map +1 -1
- package/package.json +4 -4
- package/skills/slack/PERMITS.md +24 -0
- package/src/adapter.ts +23 -21
- package/src/{bot.ts → endpoint.ts} +82 -36
- package/src/index.ts +62 -47
- package/src/platform-permit.ts +64 -0
- package/src/types.ts +1 -1
- package/lib/bot.d.ts.map +0 -1
- package/lib/bot.js.map +0 -1
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -22,7 +22,7 @@ pnpm add @zhin.js/adapter-slack
|
|
|
22
22
|
#### HTTP 模式前置条件
|
|
23
23
|
|
|
24
24
|
- Slack App 中配置 **Event Subscriptions** 的 Request URL(须公网 HTTPS 可达)
|
|
25
|
-
- 启用对应
|
|
25
|
+
- 启用对应 Endpoint Events(`message.*`、`app_mention` 等)
|
|
26
26
|
- 防火墙 / 反向代理放行 `port`
|
|
27
27
|
- **不需要** `@zhin.js/host-router`(由 `@slack/bolt` 自行监听)
|
|
28
28
|
|
|
@@ -32,7 +32,7 @@ pnpm add @zhin.js/adapter-slack
|
|
|
32
32
|
import { defineConfig } from 'zhin.js'
|
|
33
33
|
|
|
34
34
|
export default defineConfig({
|
|
35
|
-
|
|
35
|
+
endpoints: [
|
|
36
36
|
{
|
|
37
37
|
name: 'my-slack-bot',
|
|
38
38
|
context: 'slack',
|
|
@@ -51,7 +51,7 @@ export default defineConfig({
|
|
|
51
51
|
import { defineConfig } from 'zhin.js'
|
|
52
52
|
|
|
53
53
|
export default defineConfig({
|
|
54
|
-
|
|
54
|
+
endpoints: [
|
|
55
55
|
{
|
|
56
56
|
name: 'my-slack-bot',
|
|
57
57
|
context: 'slack',
|
|
@@ -79,7 +79,7 @@ export default defineConfig({
|
|
|
79
79
|
|
|
80
80
|
1. Go to [Slack API](https://api.slack.com/apps)
|
|
81
81
|
2. Create a new app
|
|
82
|
-
3. Add
|
|
82
|
+
3. Add Endpoint Token Scopes:
|
|
83
83
|
- `chat:write` - Send messages
|
|
84
84
|
- `chat:write.public` - Send messages to public channels
|
|
85
85
|
- `channels:read` - View basic channel info
|
|
@@ -104,7 +104,7 @@ export default defineConfig({
|
|
|
104
104
|
- `message.mpim` - Group direct messages
|
|
105
105
|
- `app_mention` - When the bot is mentioned
|
|
106
106
|
6. Install the app to your workspace
|
|
107
|
-
7. Copy the
|
|
107
|
+
7. Copy the Endpoint User OAuth Token (`xoxb-...`)
|
|
108
108
|
8. Copy the Signing Secret
|
|
109
109
|
9. Copy the App-Level Token (`xapp-...`) if using Socket Mode
|
|
110
110
|
|
package/lib/adapter.d.ts
CHANGED
|
@@ -2,15 +2,16 @@
|
|
|
2
2
|
* Slack 适配器
|
|
3
3
|
*/
|
|
4
4
|
import { Adapter, Plugin } from "zhin.js";
|
|
5
|
-
import {
|
|
6
|
-
import type {
|
|
7
|
-
export declare class SlackAdapter extends Adapter<
|
|
5
|
+
import { SlackEndpoint } from "./endpoint.js";
|
|
6
|
+
import type { SlackEndpointConfig } from "./types.js";
|
|
7
|
+
export declare class SlackAdapter extends Adapter<SlackEndpoint> {
|
|
8
|
+
static readonly capabilities: readonly ["inbound", "outbound"];
|
|
8
9
|
constructor(plugin: Plugin);
|
|
9
|
-
|
|
10
|
-
kickMember(
|
|
11
|
-
setGroupName(
|
|
12
|
-
listMembers(
|
|
13
|
-
getGroupInfo(
|
|
10
|
+
createEndpoint(config: SlackEndpointConfig): SlackEndpoint;
|
|
11
|
+
kickMember(endpointId: string, sceneId: string, userId: string): Promise<boolean>;
|
|
12
|
+
setGroupName(endpointId: string, sceneId: string, name: string): Promise<boolean>;
|
|
13
|
+
listMembers(endpointId: string, sceneId: string): Promise<string[]>;
|
|
14
|
+
getGroupInfo(endpointId: string, sceneId: string): Promise<any>;
|
|
14
15
|
start(): Promise<void>;
|
|
15
16
|
}
|
|
16
17
|
//# sourceMappingURL=adapter.d.ts.map
|
package/lib/adapter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,OAAO,EACP,MAAM,EACP,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,OAAO,EACP,MAAM,EACP,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,qBAAa,YAAa,SAAQ,OAAO,CAAC,aAAa,CAAC;IACtD,gBAAyB,YAAY,mCAAoC;gBAE7D,MAAM,EAAE,MAAM;IAI1B,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,aAAa;IAMpD,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAM9D,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAM9D,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAM/C,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAQhD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAI7B"}
|
package/lib/adapter.js
CHANGED
|
@@ -2,38 +2,39 @@
|
|
|
2
2
|
* Slack 适配器
|
|
3
3
|
*/
|
|
4
4
|
import { Adapter, } from "zhin.js";
|
|
5
|
-
import {
|
|
5
|
+
import { SlackEndpoint } from "./endpoint.js";
|
|
6
6
|
export class SlackAdapter extends Adapter {
|
|
7
|
+
static capabilities = ['inbound', 'outbound'];
|
|
7
8
|
constructor(plugin) {
|
|
8
9
|
super(plugin, "slack", []);
|
|
9
10
|
}
|
|
10
|
-
|
|
11
|
-
return new
|
|
11
|
+
createEndpoint(config) {
|
|
12
|
+
return new SlackEndpoint(this, config);
|
|
12
13
|
}
|
|
13
14
|
// ── IGroupManagement 标准群管方法 ──────────────────────────────────
|
|
14
|
-
async kickMember(
|
|
15
|
-
const
|
|
16
|
-
if (!
|
|
17
|
-
throw new Error(`
|
|
18
|
-
return
|
|
15
|
+
async kickMember(endpointId, sceneId, userId) {
|
|
16
|
+
const endpoint = this.endpoints.get(endpointId);
|
|
17
|
+
if (!endpoint)
|
|
18
|
+
throw new Error(`Endpoint ${endpointId} 不存在`);
|
|
19
|
+
return endpoint.kickFromChannel(sceneId, userId);
|
|
19
20
|
}
|
|
20
|
-
async setGroupName(
|
|
21
|
-
const
|
|
22
|
-
if (!
|
|
23
|
-
throw new Error(`
|
|
24
|
-
return
|
|
21
|
+
async setGroupName(endpointId, sceneId, name) {
|
|
22
|
+
const endpoint = this.endpoints.get(endpointId);
|
|
23
|
+
if (!endpoint)
|
|
24
|
+
throw new Error(`Endpoint ${endpointId} 不存在`);
|
|
25
|
+
return endpoint.renameChannel(sceneId, name);
|
|
25
26
|
}
|
|
26
|
-
async listMembers(
|
|
27
|
-
const
|
|
28
|
-
if (!
|
|
29
|
-
throw new Error(`
|
|
30
|
-
return
|
|
27
|
+
async listMembers(endpointId, sceneId) {
|
|
28
|
+
const endpoint = this.endpoints.get(endpointId);
|
|
29
|
+
if (!endpoint)
|
|
30
|
+
throw new Error(`Endpoint ${endpointId} 不存在`);
|
|
31
|
+
return endpoint.getChannelMembers(sceneId);
|
|
31
32
|
}
|
|
32
|
-
async getGroupInfo(
|
|
33
|
-
const
|
|
34
|
-
if (!
|
|
35
|
-
throw new Error(`
|
|
36
|
-
return
|
|
33
|
+
async getGroupInfo(endpointId, sceneId) {
|
|
34
|
+
const endpoint = this.endpoints.get(endpointId);
|
|
35
|
+
if (!endpoint)
|
|
36
|
+
throw new Error(`Endpoint ${endpointId} 不存在`);
|
|
37
|
+
return endpoint.getChannelInfo(sceneId);
|
|
37
38
|
}
|
|
38
39
|
// ── 生命周期 ───────────────────────────────────────────────────────
|
|
39
40
|
async start() {
|
package/lib/adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,OAAO,GAER,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,OAAO,GAER,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG9C,MAAM,OAAO,YAAa,SAAQ,OAAsB;IACtD,MAAM,CAAmB,YAAY,GAAG,CAAC,SAAS,EAAE,UAAU,CAAU,CAAC;IAEzE,YAAY,MAAc;QACxB,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,cAAc,CAAC,MAA2B;QACxC,OAAO,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,gEAAgE;IAEhE,KAAK,CAAC,UAAU,CAAC,UAAkB,EAAE,OAAe,EAAE,MAAc;QAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,UAAU,MAAM,CAAC,CAAC;QAC7D,OAAO,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,OAAe,EAAE,IAAY;QAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,UAAU,MAAM,CAAC,CAAC;QAC7D,OAAO,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,UAAkB,EAAE,OAAe;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,UAAU,MAAM,CAAC,CAAC;QAC7D,OAAO,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,OAAe;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,UAAU,MAAM,CAAC,CAAC;QAC7D,OAAO,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,kEAAkE;IAElE,KAAK,CAAC,KAAK;QACT,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC"}
|
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type {
|
|
1
|
+
import { Endpoint, Message, SendOptions } from 'zhin.js';
|
|
2
|
+
import type { SlackEndpointConfig, SlackMessageEvent } from "./types.js";
|
|
3
3
|
import type { SlackAdapter } from "./adapter.js";
|
|
4
|
-
export declare class
|
|
4
|
+
export declare class SlackEndpoint implements Endpoint<SlackEndpointConfig, SlackMessageEvent> {
|
|
5
5
|
#private;
|
|
6
6
|
adapter: SlackAdapter;
|
|
7
|
-
$config:
|
|
7
|
+
$config: SlackEndpointConfig;
|
|
8
8
|
$connected: boolean;
|
|
9
9
|
/** 延迟到 `$connect`,避免子类 mock `$connect` 时仍在构造函数里创建 Bolt/WebClient(会在后台触发 Slack API) */
|
|
10
10
|
private app?;
|
|
11
11
|
private client?;
|
|
12
12
|
get logger(): import("zhin.js").Logger;
|
|
13
13
|
get $id(): string;
|
|
14
|
-
constructor(adapter: SlackAdapter, $config:
|
|
14
|
+
constructor(adapter: SlackAdapter, $config: SlackEndpointConfig);
|
|
15
15
|
$connect(): Promise<void>;
|
|
16
16
|
$disconnect(): Promise<void>;
|
|
17
|
+
private senderPermitCache;
|
|
18
|
+
private enrichChannelSender;
|
|
17
19
|
private handleSlackMessage;
|
|
18
20
|
$formatMessage(msg: SlackMessageEvent): Message<SlackMessageEvent>;
|
|
19
21
|
private parseMessageContent;
|
|
@@ -103,4 +105,4 @@ export declare class SlackBot implements Bot<SlackBotConfig, SlackMessageEvent>
|
|
|
103
105
|
*/
|
|
104
106
|
unpinMessage(channel: string, timestamp: string): Promise<boolean>;
|
|
105
107
|
}
|
|
106
|
-
//# sourceMappingURL=
|
|
108
|
+
//# sourceMappingURL=endpoint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Slack
|
|
2
|
+
* Slack Endpoint 实现
|
|
3
3
|
*/
|
|
4
4
|
import { App as SlackApp, LogLevel } from "@slack/bolt";
|
|
5
5
|
import { WebClient } from "@slack/web-api";
|
|
6
6
|
import { formatCompact, Message, segment } from 'zhin.js';
|
|
7
|
-
|
|
7
|
+
import { normalizeSlackSenderForPermit } from "./platform-permit.js";
|
|
8
|
+
export class SlackEndpoint {
|
|
8
9
|
adapter;
|
|
9
10
|
$config;
|
|
10
11
|
$connected;
|
|
@@ -67,7 +68,7 @@ export class SlackBot {
|
|
|
67
68
|
this.$connected = true;
|
|
68
69
|
// Get bot info
|
|
69
70
|
const authTest = await this.client.auth.test();
|
|
70
|
-
this.logger.info(formatCompact({
|
|
71
|
+
this.logger.info(formatCompact({ endpoint: this.$config.name, user: authTest.user }));
|
|
71
72
|
if (!this.$config.socketMode) {
|
|
72
73
|
this.logger.info(formatCompact({ op: "listen", port }));
|
|
73
74
|
}
|
|
@@ -86,19 +87,63 @@ export class SlackBot {
|
|
|
86
87
|
try {
|
|
87
88
|
await this.app.stop();
|
|
88
89
|
this.$connected = false;
|
|
89
|
-
this.logger.info(formatCompact({ op: "disconnect",
|
|
90
|
+
this.logger.info(formatCompact({ op: "disconnect", endpoint: this.$config.name }));
|
|
90
91
|
}
|
|
91
92
|
catch (error) {
|
|
92
93
|
this.logger.error("Error disconnecting Slack bot:", error);
|
|
93
94
|
throw error;
|
|
94
95
|
}
|
|
95
96
|
}
|
|
97
|
+
senderPermitCache = new Map();
|
|
98
|
+
async enrichChannelSender(message, msg) {
|
|
99
|
+
if (message.$channel.type !== "group" || !("user" in msg) || !msg.user)
|
|
100
|
+
return;
|
|
101
|
+
const channelId = msg.channel;
|
|
102
|
+
const userId = msg.user;
|
|
103
|
+
const key = `${channelId}:${userId}`;
|
|
104
|
+
const now = Date.now();
|
|
105
|
+
const cached = this.senderPermitCache.get(key);
|
|
106
|
+
if (cached && now - cached.at < 60_000) {
|
|
107
|
+
message.$sender.role = cached.role;
|
|
108
|
+
message.$sender.permissions = cached.permissions;
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
try {
|
|
112
|
+
const user = await this.getUserInfo(userId);
|
|
113
|
+
let isChannelManager = false;
|
|
114
|
+
try {
|
|
115
|
+
const channel = await this.getChannelInfo(channelId);
|
|
116
|
+
if (channel?.creator === userId)
|
|
117
|
+
isChannelManager = true;
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
// ignore
|
|
121
|
+
}
|
|
122
|
+
const normalized = normalizeSlackSenderForPermit({
|
|
123
|
+
isWorkspaceOwner: user.is_owner === true,
|
|
124
|
+
isWorkspaceAdmin: user.is_admin === true,
|
|
125
|
+
isChannelManager,
|
|
126
|
+
});
|
|
127
|
+
const entry = {
|
|
128
|
+
at: now,
|
|
129
|
+
role: normalized.role,
|
|
130
|
+
permissions: normalized.permissions ?? [],
|
|
131
|
+
};
|
|
132
|
+
this.senderPermitCache.set(key, entry);
|
|
133
|
+
message.$sender.role = entry.role;
|
|
134
|
+
message.$sender.permissions = entry.permissions;
|
|
135
|
+
}
|
|
136
|
+
catch {
|
|
137
|
+
// 保守拒绝
|
|
138
|
+
}
|
|
139
|
+
}
|
|
96
140
|
async handleSlackMessage(msg) {
|
|
97
141
|
// Ignore bot messages and message changes
|
|
98
142
|
if ("subtype" in msg && (msg.subtype === "bot_message" || msg.subtype === "message_changed")) {
|
|
99
143
|
return;
|
|
100
144
|
}
|
|
101
145
|
const message = this.$formatMessage(msg);
|
|
146
|
+
await this.enrichChannelSender(message, msg);
|
|
102
147
|
this.adapter.emit("message.receive", message);
|
|
103
148
|
this.logger.debug(`${this.$config.name} recv ${message.$channel.type}(${message.$channel.id}): ${segment.raw(message.$content)}`);
|
|
104
149
|
}
|
|
@@ -115,7 +160,7 @@ export class SlackBot {
|
|
|
115
160
|
const result = Message.from(msg, {
|
|
116
161
|
$id: msg.ts,
|
|
117
162
|
$adapter: "slack",
|
|
118
|
-
$
|
|
163
|
+
$endpoint: this.$config.name,
|
|
119
164
|
$sender: {
|
|
120
165
|
id: userId,
|
|
121
166
|
name: userName,
|
|
@@ -152,7 +197,7 @@ export class SlackBot {
|
|
|
152
197
|
}
|
|
153
198
|
return await this.adapter.sendMessage({
|
|
154
199
|
context: "slack",
|
|
155
|
-
|
|
200
|
+
endpoint: this.$config.name,
|
|
156
201
|
id: channelId,
|
|
157
202
|
type: "channel",
|
|
158
203
|
content: content,
|
|
@@ -400,9 +445,9 @@ export class SlackBot {
|
|
|
400
445
|
}
|
|
401
446
|
async $recallMessage(id) {
|
|
402
447
|
// Slack requires both channel and ts (timestamp) to delete a message
|
|
403
|
-
// The
|
|
448
|
+
// The Endpoint interface only provides message ID (ts), making recall impossible
|
|
404
449
|
// Users should use message.$recall() instead, which has the full context
|
|
405
|
-
throw new Error("
|
|
450
|
+
throw new Error("SlackEndpoint.$recallMessage: Message recall not supported without channel information. " +
|
|
406
451
|
"Use message.$recall() method instead, which contains the required context.");
|
|
407
452
|
}
|
|
408
453
|
// ==================== 工作区管理 API ====================
|
|
@@ -414,11 +459,11 @@ export class SlackBot {
|
|
|
414
459
|
async inviteToChannel(channel, users) {
|
|
415
460
|
try {
|
|
416
461
|
await this.client.conversations.invite({ channel, users: users.join(',') });
|
|
417
|
-
this.logger.debug(formatCompact({ op: "invite",
|
|
462
|
+
this.logger.debug(formatCompact({ op: "invite", endpoint: this.$id, channel, users: users.join(",") }));
|
|
418
463
|
return true;
|
|
419
464
|
}
|
|
420
465
|
catch (error) {
|
|
421
|
-
this.logger.error(`Slack
|
|
466
|
+
this.logger.error(`Slack Endpoint ${this.$id} 邀请用户失败:`, error);
|
|
422
467
|
throw error;
|
|
423
468
|
}
|
|
424
469
|
}
|
|
@@ -430,11 +475,11 @@ export class SlackBot {
|
|
|
430
475
|
async kickFromChannel(channel, user) {
|
|
431
476
|
try {
|
|
432
477
|
await this.client.conversations.kick({ channel, user });
|
|
433
|
-
this.logger.debug(formatCompact({ op: "kick",
|
|
478
|
+
this.logger.debug(formatCompact({ op: "kick", endpoint: this.$id, channel, user }));
|
|
434
479
|
return true;
|
|
435
480
|
}
|
|
436
481
|
catch (error) {
|
|
437
|
-
this.logger.error(`Slack
|
|
482
|
+
this.logger.error(`Slack Endpoint ${this.$id} 踢出用户失败:`, error);
|
|
438
483
|
throw error;
|
|
439
484
|
}
|
|
440
485
|
}
|
|
@@ -446,11 +491,11 @@ export class SlackBot {
|
|
|
446
491
|
async setChannelTopic(channel, topic) {
|
|
447
492
|
try {
|
|
448
493
|
await this.client.conversations.setTopic({ channel, topic });
|
|
449
|
-
this.logger.debug(formatCompact({ op: "set_topic",
|
|
494
|
+
this.logger.debug(formatCompact({ op: "set_topic", endpoint: this.$id, channel }));
|
|
450
495
|
return true;
|
|
451
496
|
}
|
|
452
497
|
catch (error) {
|
|
453
|
-
this.logger.error(`Slack
|
|
498
|
+
this.logger.error(`Slack Endpoint ${this.$id} 设置话题失败:`, error);
|
|
454
499
|
throw error;
|
|
455
500
|
}
|
|
456
501
|
}
|
|
@@ -462,11 +507,11 @@ export class SlackBot {
|
|
|
462
507
|
async setChannelPurpose(channel, purpose) {
|
|
463
508
|
try {
|
|
464
509
|
await this.client.conversations.setPurpose({ channel, purpose });
|
|
465
|
-
this.logger.debug(formatCompact({ op: "set_purpose",
|
|
510
|
+
this.logger.debug(formatCompact({ op: "set_purpose", endpoint: this.$id, channel }));
|
|
466
511
|
return true;
|
|
467
512
|
}
|
|
468
513
|
catch (error) {
|
|
469
|
-
this.logger.error(`Slack
|
|
514
|
+
this.logger.error(`Slack Endpoint ${this.$id} 设置目的失败:`, error);
|
|
470
515
|
throw error;
|
|
471
516
|
}
|
|
472
517
|
}
|
|
@@ -477,11 +522,11 @@ export class SlackBot {
|
|
|
477
522
|
async archiveChannel(channel) {
|
|
478
523
|
try {
|
|
479
524
|
await this.client.conversations.archive({ channel });
|
|
480
|
-
this.logger.debug(formatCompact({ op: "archive",
|
|
525
|
+
this.logger.debug(formatCompact({ op: "archive", endpoint: this.$id, channel }));
|
|
481
526
|
return true;
|
|
482
527
|
}
|
|
483
528
|
catch (error) {
|
|
484
|
-
this.logger.error(`Slack
|
|
529
|
+
this.logger.error(`Slack Endpoint ${this.$id} 归档频道失败:`, error);
|
|
485
530
|
throw error;
|
|
486
531
|
}
|
|
487
532
|
}
|
|
@@ -492,11 +537,11 @@ export class SlackBot {
|
|
|
492
537
|
async unarchiveChannel(channel) {
|
|
493
538
|
try {
|
|
494
539
|
await this.client.conversations.unarchive({ channel });
|
|
495
|
-
this.logger.debug(formatCompact({ op: "unarchive",
|
|
540
|
+
this.logger.debug(formatCompact({ op: "unarchive", endpoint: this.$id, channel }));
|
|
496
541
|
return true;
|
|
497
542
|
}
|
|
498
543
|
catch (error) {
|
|
499
|
-
this.logger.error(`Slack
|
|
544
|
+
this.logger.error(`Slack Endpoint ${this.$id} 取消归档失败:`, error);
|
|
500
545
|
throw error;
|
|
501
546
|
}
|
|
502
547
|
}
|
|
@@ -508,11 +553,11 @@ export class SlackBot {
|
|
|
508
553
|
async renameChannel(channel, name) {
|
|
509
554
|
try {
|
|
510
555
|
await this.client.conversations.rename({ channel, name });
|
|
511
|
-
this.logger.debug(formatCompact({ op: "rename",
|
|
556
|
+
this.logger.debug(formatCompact({ op: "rename", endpoint: this.$id, channel, name }));
|
|
512
557
|
return true;
|
|
513
558
|
}
|
|
514
559
|
catch (error) {
|
|
515
|
-
this.logger.error(`Slack
|
|
560
|
+
this.logger.error(`Slack Endpoint ${this.$id} 重命名频道失败:`, error);
|
|
516
561
|
throw error;
|
|
517
562
|
}
|
|
518
563
|
}
|
|
@@ -526,7 +571,7 @@ export class SlackBot {
|
|
|
526
571
|
return result.members || [];
|
|
527
572
|
}
|
|
528
573
|
catch (error) {
|
|
529
|
-
this.logger.error(`Slack
|
|
574
|
+
this.logger.error(`Slack Endpoint ${this.$id} 获取成员列表失败:`, error);
|
|
530
575
|
throw error;
|
|
531
576
|
}
|
|
532
577
|
}
|
|
@@ -540,7 +585,7 @@ export class SlackBot {
|
|
|
540
585
|
return result.channel;
|
|
541
586
|
}
|
|
542
587
|
catch (error) {
|
|
543
|
-
this.logger.error(`Slack
|
|
588
|
+
this.logger.error(`Slack Endpoint ${this.$id} 获取频道信息失败:`, error);
|
|
544
589
|
throw error;
|
|
545
590
|
}
|
|
546
591
|
}
|
|
@@ -554,7 +599,7 @@ export class SlackBot {
|
|
|
554
599
|
return result.user;
|
|
555
600
|
}
|
|
556
601
|
catch (error) {
|
|
557
|
-
this.logger.error(`Slack
|
|
602
|
+
this.logger.error(`Slack Endpoint ${this.$id} 获取用户信息失败:`, error);
|
|
558
603
|
throw error;
|
|
559
604
|
}
|
|
560
605
|
}
|
|
@@ -567,11 +612,11 @@ export class SlackBot {
|
|
|
567
612
|
async addReaction(channel, timestamp, name) {
|
|
568
613
|
try {
|
|
569
614
|
await this.client.reactions.add({ channel, timestamp, name });
|
|
570
|
-
this.logger.debug(formatCompact({ op: "reaction_add",
|
|
615
|
+
this.logger.debug(formatCompact({ op: "reaction_add", endpoint: this.$id, name }));
|
|
571
616
|
return true;
|
|
572
617
|
}
|
|
573
618
|
catch (error) {
|
|
574
|
-
this.logger.error(`Slack
|
|
619
|
+
this.logger.error(`Slack Endpoint ${this.$id} 添加反应失败:`, error);
|
|
575
620
|
throw error;
|
|
576
621
|
}
|
|
577
622
|
}
|
|
@@ -584,11 +629,11 @@ export class SlackBot {
|
|
|
584
629
|
async removeReaction(channel, timestamp, name) {
|
|
585
630
|
try {
|
|
586
631
|
await this.client.reactions.remove({ channel, timestamp, name });
|
|
587
|
-
this.logger.debug(formatCompact({ op: "reaction_remove",
|
|
632
|
+
this.logger.debug(formatCompact({ op: "reaction_remove", endpoint: this.$id, name }));
|
|
588
633
|
return true;
|
|
589
634
|
}
|
|
590
635
|
catch (error) {
|
|
591
|
-
this.logger.error(`Slack
|
|
636
|
+
this.logger.error(`Slack Endpoint ${this.$id} 移除反应失败:`, error);
|
|
592
637
|
throw error;
|
|
593
638
|
}
|
|
594
639
|
}
|
|
@@ -600,11 +645,11 @@ export class SlackBot {
|
|
|
600
645
|
async pinMessage(channel, timestamp) {
|
|
601
646
|
try {
|
|
602
647
|
await this.client.pins.add({ channel, timestamp });
|
|
603
|
-
this.logger.debug(formatCompact({ op: "pin",
|
|
648
|
+
this.logger.debug(formatCompact({ op: "pin", endpoint: this.$id, channel }));
|
|
604
649
|
return true;
|
|
605
650
|
}
|
|
606
651
|
catch (error) {
|
|
607
|
-
this.logger.error(`Slack
|
|
652
|
+
this.logger.error(`Slack Endpoint ${this.$id} 置顶消息失败:`, error);
|
|
608
653
|
throw error;
|
|
609
654
|
}
|
|
610
655
|
}
|
|
@@ -616,13 +661,13 @@ export class SlackBot {
|
|
|
616
661
|
async unpinMessage(channel, timestamp) {
|
|
617
662
|
try {
|
|
618
663
|
await this.client.pins.remove({ channel, timestamp });
|
|
619
|
-
this.logger.debug(formatCompact({ op: "unpin",
|
|
664
|
+
this.logger.debug(formatCompact({ op: "unpin", endpoint: this.$id, channel }));
|
|
620
665
|
return true;
|
|
621
666
|
}
|
|
622
667
|
catch (error) {
|
|
623
|
-
this.logger.error(`Slack
|
|
668
|
+
this.logger.error(`Slack Endpoint ${this.$id} 取消置顶失败:`, error);
|
|
624
669
|
throw error;
|
|
625
670
|
}
|
|
626
671
|
}
|
|
627
672
|
}
|
|
628
|
-
//# sourceMappingURL=
|
|
673
|
+
//# sourceMappingURL=endpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAO5C,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,QAAQ;QAChB,KAAK,EAAE,YAAY,CAAC;KACrB;CACF;AAED,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
|