@alemonjs/discord 0.2.10 → 2.1.0-alpha.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.
@@ -1,101 +1,101 @@
1
- import { CHANNEL_TOPIC_UPDATE_TYPE } from './message/CHANNEL_TOPIC_UPDATE.js';
2
- import { CHANNEL_UPDATE_TYPE } from './message/CHANNEL_UPDATE.js';
3
- import { GUILD_MEMBER_ADD_TYPE } from './message/GUILD_MEMBER_ADD.js';
4
- import { GUILD_MEMBER_REMOVE_TYPE } from './message/GUILD_MEMBER_REMOVE.js';
5
- import { GUILD_MEMBER_UPDATE_TYPE } from './message/GUILD_MEMBER_UPDATE.js';
6
- import { INTERACTION_CREATE_TYPE } from './message/INTERACTION_CREATE.js';
7
- import { MESSAGE_CREATE_TYPE } from './message/MESSAGE_CREATE.js';
8
- import { MESSAGE_DELETE_TYPE } from './message/MESSAGE_DELETE.js';
9
- import { MESSAGE_REACTION_ADD_TYPE } from './message/MESSAGE_REACTION_ADD.js';
10
- import { MESSAGE_UPDATE_TYPE } from './message/MESSAGE_UPDATE.js';
11
- import { PRESENCE_UPDATE_TYPE } from './message/PRESENCE_UPDATE.js';
12
- import { READY_TYPE } from './message/READY.js';
13
- import { TYPING_START_TYPE } from './message/TYPING_START.js';
14
- import { VOICE_CHANNEL_STATUS_UPDATE_TYPE } from './message/VOICE_CHANNEL_STATUS_UPDATE.js';
15
- import { VOICE_STATE_UPDATE_TYPE } from './message/VOICE_STATE_UPDATE.js';
1
+ import { CHANNEL_TOPIC_UPDATE_TYPE } from './message/CHANNEL_TOPIC_UPDATE.js'
2
+ import { CHANNEL_UPDATE_TYPE } from './message/CHANNEL_UPDATE.js'
3
+ import { GUILD_MEMBER_ADD_TYPE } from './message/GUILD_MEMBER_ADD.js'
4
+ import { GUILD_MEMBER_REMOVE_TYPE } from './message/GUILD_MEMBER_REMOVE.js'
5
+ import { GUILD_MEMBER_UPDATE_TYPE } from './message/GUILD_MEMBER_UPDATE.js'
6
+ import { INTERACTION_CREATE_TYPE } from './message/INTERACTION_CREATE.js'
7
+ import { MESSAGE_CREATE_TYPE } from './message/MESSAGE_CREATE.js'
8
+ import { MESSAGE_DELETE_TYPE } from './message/MESSAGE_DELETE.js'
9
+ import { MESSAGE_REACTION_ADD_TYPE } from './message/MESSAGE_REACTION_ADD.js'
10
+ import { MESSAGE_UPDATE_TYPE } from './message/MESSAGE_UPDATE.js'
11
+ import { PRESENCE_UPDATE_TYPE } from './message/PRESENCE_UPDATE.js'
12
+ import { READY_TYPE } from './message/READY.js'
13
+ import { TYPING_START_TYPE } from './message/TYPING_START.js'
14
+ import { VOICE_CHANNEL_STATUS_UPDATE_TYPE } from './message/VOICE_CHANNEL_STATUS_UPDATE.js'
15
+ import { VOICE_STATE_UPDATE_TYPE } from './message/VOICE_STATE_UPDATE.js'
16
16
 
17
17
  /**
18
18
  * Discord 事件映射表
19
19
  */
20
20
  type DCEventMap = {
21
- GUILD_CREATE: any;
22
- GUILD_UPDATE: any;
23
- GUILD_DELETE: any;
24
- GUILD_ROLE_CREATE: any;
25
- GUILD_ROLE_UPDATE: any;
26
- GUILD_ROLE_DELETE: any;
27
- CHANNEL_CREATE: any;
28
- CHANNEL_UPDATE: CHANNEL_UPDATE_TYPE;
29
- CHANNEL_DELETE: any;
30
- CHANNEL_PINS_UPDATE: any;
31
- CHANNEL_TOPIC_UPDATE: CHANNEL_TOPIC_UPDATE_TYPE;
32
- THREAD_CREATE: any;
33
- THREAD_UPDATE: any;
34
- THREAD_DELETE: any;
35
- THREAD_LIST_SYNC: any;
36
- THREAD_MEMBER_UPDATE: any;
37
- THREAD_MEMBERS_UPDATE: any;
38
- STAGE_INSTANCE_CREATE: any;
39
- STAGE_INSTANCE_UPDATE: any;
40
- STAGE_INSTANCE_DELETE: any;
41
- GUILD_MEMBER_ADD: GUILD_MEMBER_ADD_TYPE;
42
- GUILD_MEMBER_UPDATE: GUILD_MEMBER_UPDATE_TYPE;
43
- GUILD_MEMBER_REMOVE: GUILD_MEMBER_REMOVE_TYPE;
44
- GUILD_AUDIT_LOG_ENTRY_CREATE: any;
45
- GUILD_BAN_ADD: any;
46
- GUILD_BAN_REMOVE: any;
47
- GUILD_EMOJIS_UPDATE: any;
48
- GUILD_STICKERS_UPDATE: any;
49
- GUILD_SOUNDBOARD_SOUND_CREATE: any;
50
- GUILD_SOUNDBOARD_SOUND_UPDATE: any;
51
- GUILD_SOUNDBOARD_SOUND_DELETE: any;
52
- GUILD_SOUNDBOARD_SOUNDS_UPDATE: any;
53
- GUILD_INTEGRATIONS_UPDATE: any;
54
- INTEGRATION_CREATE: any;
55
- INTEGRATION_UPDATE: any;
56
- INTEGRATION_DELETE: any;
57
- WEBHOOKS_UPDATE: any;
58
- INVITE_CREATE: any;
59
- INVITE_DELETE: any;
60
- VOICE_STATE_UPDATE: VOICE_STATE_UPDATE_TYPE;
61
- VOICE_CHANNEL_STATUS_UPDATE: VOICE_CHANNEL_STATUS_UPDATE_TYPE;
62
- VOICE_CHANNEL_EFFECT_SEND: any;
63
- PRESENCE_UPDATE: PRESENCE_UPDATE_TYPE;
64
- MESSAGE_CREATE: MESSAGE_CREATE_TYPE;
65
- MESSAGE_UPDATE: MESSAGE_UPDATE_TYPE;
66
- MESSAGE_DELETE: MESSAGE_DELETE_TYPE;
67
- MESSAGE_DELETE_BULK: any;
68
- MESSAGE_REACTION_ADD: MESSAGE_REACTION_ADD_TYPE;
69
- MESSAGE_REACTION_REMOVE: any;
70
- MESSAGE_REACTION_REMOVE_ALL: any;
71
- MESSAGE_REACTION_REMOVE_EMOJI: any;
72
- TYPING_START: TYPING_START_TYPE;
73
- DIRECT_MESSAGE_CREATE: any;
74
- DIRECT_MESSAGE_UPDATE: any;
75
- DIRECT_MESSAGE_DELETE: any;
76
- DIRECT_MESSAGE_PINS_UPDATE: any;
77
- DIRECT_MESSAGE_REACTION_ADD: any;
78
- DIRECT_MESSAGE_REACTION_REMOVE: any;
79
- DIRECT_MESSAGE_REACTION_REMOVE_ALL: any;
80
- DIRECT_MESSAGE_REACTION_REMOVE_EMOJI: any;
81
- DIRECT_MESSAGE_TYPING_START: any;
82
- GUILD_SCHEDULED_EVENT_CREATE: any;
83
- GUILD_SCHEDULED_EVENT_UPDATE: any;
84
- GUILD_SCHEDULED_EVENT_DELETE: any;
85
- GUILD_SCHEDULED_EVENT_USER_ADD: any;
86
- GUILD_SCHEDULED_EVENT_USER_REMOVE: any;
87
- AUTO_MODERATION_RULE_CREATE: any;
88
- AUTO_MODERATION_RULE_UPDATE: any;
89
- AUTO_MODERATION_RULE_DELETE: any;
90
- AUTO_MODERATION_ACTION_EXECUTION: any;
91
- MESSAGE_POLL_VOTE_ADD: any;
92
- MESSAGE_POLL_VOTE_REMOVE: any;
93
- DIRECT_MESSAGE_POLL_VOTE_ADD: any;
94
- DIRECT_MESSAGE_POLL_VOTE_REMOVE: any;
95
- READY: READY_TYPE;
96
- ERROR: any;
97
- INTERACTION_CREATE: INTERACTION_CREATE_TYPE;
98
- RESUMED: any;
99
- };
21
+ GUILD_CREATE: any
22
+ GUILD_UPDATE: any
23
+ GUILD_DELETE: any
24
+ GUILD_ROLE_CREATE: any
25
+ GUILD_ROLE_UPDATE: any
26
+ GUILD_ROLE_DELETE: any
27
+ CHANNEL_CREATE: any
28
+ CHANNEL_UPDATE: CHANNEL_UPDATE_TYPE
29
+ CHANNEL_DELETE: any
30
+ CHANNEL_PINS_UPDATE: any
31
+ CHANNEL_TOPIC_UPDATE: CHANNEL_TOPIC_UPDATE_TYPE
32
+ THREAD_CREATE: any
33
+ THREAD_UPDATE: any
34
+ THREAD_DELETE: any
35
+ THREAD_LIST_SYNC: any
36
+ THREAD_MEMBER_UPDATE: any
37
+ THREAD_MEMBERS_UPDATE: any
38
+ STAGE_INSTANCE_CREATE: any
39
+ STAGE_INSTANCE_UPDATE: any
40
+ STAGE_INSTANCE_DELETE: any
41
+ GUILD_MEMBER_ADD: GUILD_MEMBER_ADD_TYPE
42
+ GUILD_MEMBER_UPDATE: GUILD_MEMBER_UPDATE_TYPE
43
+ GUILD_MEMBER_REMOVE: GUILD_MEMBER_REMOVE_TYPE
44
+ GUILD_AUDIT_LOG_ENTRY_CREATE: any
45
+ GUILD_BAN_ADD: any
46
+ GUILD_BAN_REMOVE: any
47
+ GUILD_EMOJIS_UPDATE: any
48
+ GUILD_STICKERS_UPDATE: any
49
+ GUILD_SOUNDBOARD_SOUND_CREATE: any
50
+ GUILD_SOUNDBOARD_SOUND_UPDATE: any
51
+ GUILD_SOUNDBOARD_SOUND_DELETE: any
52
+ GUILD_SOUNDBOARD_SOUNDS_UPDATE: any
53
+ GUILD_INTEGRATIONS_UPDATE: any
54
+ INTEGRATION_CREATE: any
55
+ INTEGRATION_UPDATE: any
56
+ INTEGRATION_DELETE: any
57
+ WEBHOOKS_UPDATE: any
58
+ INVITE_CREATE: any
59
+ INVITE_DELETE: any
60
+ VOICE_STATE_UPDATE: VOICE_STATE_UPDATE_TYPE
61
+ VOICE_CHANNEL_STATUS_UPDATE: VOICE_CHANNEL_STATUS_UPDATE_TYPE
62
+ VOICE_CHANNEL_EFFECT_SEND: any
63
+ PRESENCE_UPDATE: PRESENCE_UPDATE_TYPE
64
+ MESSAGE_CREATE: MESSAGE_CREATE_TYPE
65
+ MESSAGE_UPDATE: MESSAGE_UPDATE_TYPE
66
+ MESSAGE_DELETE: MESSAGE_DELETE_TYPE
67
+ MESSAGE_DELETE_BULK: any
68
+ MESSAGE_REACTION_ADD: MESSAGE_REACTION_ADD_TYPE
69
+ MESSAGE_REACTION_REMOVE: any
70
+ MESSAGE_REACTION_REMOVE_ALL: any
71
+ MESSAGE_REACTION_REMOVE_EMOJI: any
72
+ TYPING_START: TYPING_START_TYPE
73
+ DIRECT_MESSAGE_CREATE: any
74
+ DIRECT_MESSAGE_UPDATE: any
75
+ DIRECT_MESSAGE_DELETE: any
76
+ DIRECT_MESSAGE_PINS_UPDATE: any
77
+ DIRECT_MESSAGE_REACTION_ADD: any
78
+ DIRECT_MESSAGE_REACTION_REMOVE: any
79
+ DIRECT_MESSAGE_REACTION_REMOVE_ALL: any
80
+ DIRECT_MESSAGE_REACTION_REMOVE_EMOJI: any
81
+ DIRECT_MESSAGE_TYPING_START: any
82
+ GUILD_SCHEDULED_EVENT_CREATE: any
83
+ GUILD_SCHEDULED_EVENT_UPDATE: any
84
+ GUILD_SCHEDULED_EVENT_DELETE: any
85
+ GUILD_SCHEDULED_EVENT_USER_ADD: any
86
+ GUILD_SCHEDULED_EVENT_USER_REMOVE: any
87
+ AUTO_MODERATION_RULE_CREATE: any
88
+ AUTO_MODERATION_RULE_UPDATE: any
89
+ AUTO_MODERATION_RULE_DELETE: any
90
+ AUTO_MODERATION_ACTION_EXECUTION: any
91
+ MESSAGE_POLL_VOTE_ADD: any
92
+ MESSAGE_POLL_VOTE_REMOVE: any
93
+ DIRECT_MESSAGE_POLL_VOTE_ADD: any
94
+ DIRECT_MESSAGE_POLL_VOTE_REMOVE: any
95
+ READY: READY_TYPE
96
+ ERROR: any
97
+ INTERACTION_CREATE: INTERACTION_CREATE_TYPE
98
+ RESUMED: any
99
+ }
100
100
 
101
- export type { DCEventMap };
101
+ export type { DCEventMap }
@@ -1,5 +1,5 @@
1
- declare const AvailableIntentsEventsEnum: string[];
2
- type DCIntentsEnum = (typeof AvailableIntentsEventsEnum)[number];
1
+ declare const AvailableIntentsEventsEnum: string[]
2
+ type DCIntentsEnum = (typeof AvailableIntentsEventsEnum)[number]
3
3
 
4
- export { AvailableIntentsEventsEnum };
5
- export type { DCIntentsEnum };
4
+ export { AvailableIntentsEventsEnum }
5
+ export type { DCIntentsEnum }
package/lib/sdk/wss.d.ts CHANGED
@@ -1,27 +1,27 @@
1
- import { DCAPI } from './api.js';
2
- import { DISOCRDOptions } from './wss.types.js';
3
- import { DCEventMap } from './message.js';
1
+ import { DCAPI } from './api.js'
2
+ import { DISOCRDOptions } from './wss.types.js'
3
+ import { DCEventMap } from './message.js'
4
4
 
5
5
  declare class DCClient extends DCAPI {
6
- #private;
7
- /**
8
- * 设置配置
9
- * @param opstion
10
- */
11
- constructor(opstion: DISOCRDOptions);
12
- /**
13
- * 注册事件处理程序
14
- * @param key 事件名称
15
- * @param val 事件处理函数
16
- */
17
- on<T extends keyof DCEventMap>(key: T, val: (event: DCEventMap[T]) => any): this;
18
- /**
19
- * 创建ws监听
20
- * @param conversation
21
- * @param shard
22
- * @returns
23
- */
24
- connect(gatewayURL?: string): Promise<void>;
6
+ #private
7
+ /**
8
+ * 设置配置
9
+ * @param opstion
10
+ */
11
+ constructor(opstion: DISOCRDOptions)
12
+ /**
13
+ * 注册事件处理程序
14
+ * @param key 事件名称
15
+ * @param val 事件处理函数
16
+ */
17
+ on<T extends keyof DCEventMap>(key: T, val: (event: DCEventMap[T]) => any): this
18
+ /**
19
+ * 创建ws监听
20
+ * @param conversation
21
+ * @param shard
22
+ * @returns
23
+ */
24
+ connect(gatewayURL?: string): Promise<void>
25
25
  }
26
26
 
27
- export { DCClient };
27
+ export { DCClient }
@@ -1,4 +1,4 @@
1
- import { DCIntentsEnum } from './types.js';
1
+ import { DCIntentsEnum } from './types.js'
2
2
 
3
3
  /**
4
4
  * ****
@@ -6,25 +6,25 @@ import { DCIntentsEnum } from './types.js';
6
6
  * ***
7
7
  */
8
8
  interface DISOCRDOptions {
9
- /**
10
- * 网关地址
11
- */
12
- gatewayURL?: string;
13
- /**
14
- * 钥匙
15
- */
16
- token: string;
17
- /**
18
- * 订阅(有默认值)
19
- * ******
20
- */
21
- intent?: DCIntentsEnum[];
22
- /**
23
- * 分片(有默认值)
24
- * ******
25
- * [0, 1]
26
- */
27
- shard?: number[];
9
+ /**
10
+ * 网关地址
11
+ */
12
+ gatewayURL?: string
13
+ /**
14
+ * 钥匙
15
+ */
16
+ token: string
17
+ /**
18
+ * 订阅(有默认值)
19
+ * ******
20
+ */
21
+ intent?: DCIntentsEnum[]
22
+ /**
23
+ * 分片(有默认值)
24
+ * ******
25
+ * [0, 1]
26
+ */
27
+ shard?: number[]
28
28
  }
29
29
 
30
- export type { DISOCRDOptions };
30
+ export type { DISOCRDOptions }
package/lib/send.js CHANGED
@@ -24,12 +24,6 @@ const createButtonsData = (rows) => {
24
24
  custom_id: text,
25
25
  style: 1,
26
26
  label: typeof value == 'object' ? value.title : value
27
- // action: {
28
- // // 0 link 1 callback , 2 command
29
- // type: typeof options.data === 'object' ? 1 : options?.isLink ? 0 : 2,
30
- // data: options?.data ?? '',
31
- // enter: options?.autoEnter ?? false
32
- // }
33
27
  };
34
28
  })
35
29
  };
@@ -39,6 +33,11 @@ const sendchannel = (client, param, val) => {
39
33
  if (val.length < 0)
40
34
  return Promise.all([]);
41
35
  const channel_id = param?.channel_id ?? '';
36
+ // images
37
+ const images = val.filter(item => item.type == 'Image' || item.type == 'ImageURL' || item.type == 'ImageFile');
38
+ // buttons
39
+ const buttons = val.filter(item => item.type == 'BT.group');
40
+ // text
42
41
  const content = val
43
42
  .filter(item => item.type == 'Mention' || item.type == 'Text' || item.type == 'Link')
44
43
  .map(item => {
@@ -77,35 +76,36 @@ const sendchannel = (client, param, val) => {
77
76
  }
78
77
  })
79
78
  .join('');
80
- if (content) {
81
- return Promise.all([content].map(item => client.channelsMessages(channel_id, {
82
- content: item
83
- })));
84
- }
85
- const images = val.filter(item => item.type == 'Image' || item.type == 'ImageURL' || item.type == 'ImageFile');
86
79
  if (images.length > 0) {
80
+ let isText = false;
87
81
  return Promise.all(images.map(async (item) => {
82
+ // content
83
+ let text = null;
84
+ if (!isText) {
85
+ text = content;
86
+ }
87
+ isText = true;
88
88
  if (item.type == 'Image') {
89
- return client.channelsMessagesImage(channel_id, item.value);
89
+ return client.channelsMessagesImage(channel_id, item.value, { content: text });
90
90
  }
91
91
  else if (item.type == 'ImageURL') {
92
- return client.channelsMessagesImage(channel_id, ImageURLToBuffer(item.value));
92
+ return client.channelsMessagesImage(channel_id, await ImageURLToBuffer(item.value), {
93
+ content: text
94
+ });
93
95
  }
94
96
  else if (item.type == 'ImageFile') {
95
97
  const data = readFileSync(item.value);
96
- return client.channelsMessagesImage(channel_id, data);
98
+ return client.channelsMessagesImage(channel_id, data, { content: text });
97
99
  }
98
100
  }));
99
101
  }
100
- // buttons
101
- const buttons = val.filter(item => item.type == 'BT.group');
102
102
  if (buttons && buttons.length > 0) {
103
103
  return Promise.all(buttons.map(async (item) => {
104
104
  const rows = item.value;
105
105
  // 构造成按钮
106
106
  const data = createButtonsData(rows);
107
107
  const res = await client.channelsMessages(channel_id, {
108
- content: '',
108
+ content: content,
109
109
  components: data
110
110
  });
111
111
  return createResult(ResultCode.Ok, 'client.groupOpenMessages', {
@@ -115,90 +115,18 @@ const sendchannel = (client, param, val) => {
115
115
  createResult(ResultCode.Fail, err?.response?.data ?? err?.message ?? err, null)
116
116
  ]);
117
117
  }
118
- return Promise.all([]);
119
- };
120
- const senduser = async (client, param, val) => {
121
- if (val.length < 0)
122
- return Promise.all([]);
123
- const channel_id = param?.channel_id ?? (await client.userMeChannels(param.author_id))?.id;
124
- const content = val
125
- .filter(item => item.type == 'Mention' || item.type == 'Text' || item.type == 'Link')
126
- .map(item => {
127
- if (item.type == 'Link') {
128
- return `[${item.value}](${item?.options?.link ?? item.value})`;
129
- }
130
- else if (item.type == 'Mention') {
131
- if (item.value == 'everyone' ||
132
- item.value == 'all' ||
133
- item.value == '' ||
134
- typeof item.value != 'string') {
135
- return `<@everyone>`;
136
- }
137
- if (item.options?.belong == 'user') {
138
- return `<@${item.value}>`;
139
- }
140
- else if (item.options?.belong == 'channel') {
141
- return `<#${item.value}>`;
142
- }
143
- return '';
144
- }
145
- else if (item.type == 'Text') {
146
- if (item.options?.style == 'block') {
147
- return `\`${item.value}\``;
148
- }
149
- else if (item.options?.style == 'italic') {
150
- return `*${item.value}*`;
151
- }
152
- else if (item.options?.style == 'bold') {
153
- return `**${item.value}**`;
154
- }
155
- else if (item.options?.style == 'strikethrough') {
156
- return `~~${item.value}~~`;
157
- }
158
- return item.value;
159
- }
160
- })
161
- .join('');
162
118
  if (content) {
163
119
  return Promise.all([content].map(item => client.channelsMessages(channel_id, {
164
120
  content: item
165
121
  })));
166
122
  }
167
- const images = val.filter(item => item.type == 'Image' || item.type == 'ImageURL' || item.type == 'ImageFile');
168
- if (images && images.length > 0) {
169
- return Promise.all(images.map(async (item) => {
170
- if (item.type == 'Image') {
171
- return client.channelsMessagesImage(channel_id, item.value);
172
- }
173
- else if (item.type == 'ImageURL') {
174
- return client.channelsMessagesImage(channel_id, ImageURLToBuffer(item.value));
175
- }
176
- else if (item.type == 'ImageFile') {
177
- const data = readFileSync(item.value);
178
- return client.channelsMessagesImage(channel_id, data);
179
- }
180
- }));
181
- }
182
- // buttons
183
- const buttons = val.filter(item => item.type == 'BT.group');
184
- if (buttons && buttons.length > 0) {
185
- return Promise.all(buttons.map(async (item) => {
186
- const rows = item.value;
187
- // 构造成按钮
188
- const data = createButtonsData(rows);
189
- // console.log("data", data)
190
- const res = await client.channelsMessages(channel_id, {
191
- content: '',
192
- components: data
193
- });
194
- return createResult(ResultCode.Ok, 'client.groupOpenMessages', {
195
- id: res.id
196
- });
197
- })).catch(err => [
198
- createResult(ResultCode.Fail, err?.response?.data ?? err?.message ?? err, null)
199
- ]);
200
- }
201
123
  return Promise.all([]);
202
124
  };
125
+ const senduser = async (client, param, val) => {
126
+ if (val.length < 0)
127
+ return Promise.all([]);
128
+ const channel_id = param?.channel_id ?? (await client.userMeChannels(param.author_id))?.id;
129
+ return sendchannel(client, { channel_id }, val);
130
+ };
203
131
 
204
132
  export { sendchannel, senduser };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alemonjs/discord",
3
- "version": "0.2.10",
3
+ "version": "2.1.0-alpha.0",
4
4
  "description": "阿柠檬discord平台连接",
5
5
  "author": "lemonade",
6
6
  "license": "MIT",