@koishijs/plugin-adapter-discord 2.0.9 → 2.1.2

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/lib/bot.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- /// <reference types="koishi/lib" />
2
1
  /// <reference types="node" />
3
2
  import { Adapter, Bot, Quester, Schema } from 'koishi';
4
3
  import { AdapterConfig } from './utils';
@@ -12,7 +11,23 @@ export interface BotConfig extends Bot.BaseConfig, Quester.Config {
12
11
  gateway?: string;
13
12
  intents?: PrivilegedIntents;
14
13
  }
15
- export declare const BotConfig: Schema<unknown, any>;
14
+ export declare const BotConfig: Schema<Quester.Config & {
15
+ gateway?: string;
16
+ intents?: {
17
+ members?: boolean;
18
+ presence?: boolean;
19
+ } & import("koishi").Dict<any, string>;
20
+ } & import("koishi").Dict<any, string> & {
21
+ token?: string;
22
+ }, Quester.Config & {
23
+ gateway: string;
24
+ intents: {
25
+ members: boolean;
26
+ presence: boolean;
27
+ } & import("koishi").Dict<any, string>;
28
+ } & import("koishi").Dict<any, string> & {
29
+ token: string;
30
+ }>;
16
31
  export declare class DiscordBot extends Bot<BotConfig> {
17
32
  static schema: Schema<AdapterConfig, AdapterConfig>;
18
33
  _d: number;
@@ -44,5 +59,6 @@ export declare class DiscordBot extends Bot<BotConfig> {
44
59
  getGuild(guildId: string): Promise<Bot.Guild>;
45
60
  getGuildList(): Promise<Bot.Guild[]>;
46
61
  getChannelList(guildId: string): Promise<Bot.Channel[]>;
62
+ getChannelMessageHistory(channelId: string, before?: string): Promise<Bot.Message[]>;
47
63
  }
48
64
  export {};
package/lib/index.d.ts CHANGED
@@ -1,5 +1,3 @@
1
- /// <reference path="index.d.ts" />
2
- /// <reference types="koishi/lib" />
3
1
  import { Adapter } from 'koishi';
4
2
  import * as Discord from './types';
5
3
  export { Discord };
@@ -12,5 +10,5 @@ declare module 'koishi' {
12
10
  discord?: Discord.GatewayPayload & Discord.Internal;
13
11
  }
14
12
  }
15
- declare const _default: import("koishi").Plugin.Object<Adapter.PluginConfig<import("./utils").AdapterConfig, import("./bot").BotConfig>>;
13
+ declare const _default: import("koishi").Plugin.Object<Adapter.PluginConfig<import("./utils").AdapterConfig, import("./bot").BotConfig>, any>;
16
14
  export default _default;
package/lib/index.js CHANGED
@@ -51,9 +51,11 @@ __export(exports, {
51
51
  adaptChannel: () => adaptChannel,
52
52
  adaptGroup: () => adaptGroup,
53
53
  adaptMessage: () => adaptMessage,
54
+ adaptMessageSession: () => adaptMessageSession,
54
55
  adaptSession: () => adaptSession,
55
56
  adaptUser: () => adaptUser,
56
- default: () => src_default
57
+ default: () => src_default,
58
+ prepareMessageSession: () => prepareMessageSession
57
59
  });
58
60
  var import_koishi6 = __toModule(require("koishi"));
59
61
 
@@ -302,7 +304,7 @@ function adaptMessage(meta, session = {}) {
302
304
  return session;
303
305
  }
304
306
  __name(adaptMessage, "adaptMessage");
305
- function adaptMessageSession(bot, meta, session = {}) {
307
+ function adaptMessageSession(meta, session = {}) {
306
308
  adaptMessage(meta, session);
307
309
  session.messageId = meta.id;
308
310
  session.timestamp = new Date(meta.timestamp).valueOf() || Date.now();
@@ -338,16 +340,12 @@ async function adaptSession(bot, input) {
338
340
  if (input.t === "MESSAGE_CREATE") {
339
341
  session.type = "message";
340
342
  prepareMessageSession(session, input.d);
341
- adaptMessageSession(bot, input.d, session);
342
- if (session.userId === bot.selfId)
343
- return;
343
+ adaptMessageSession(input.d, session);
344
344
  } else if (input.t === "MESSAGE_UPDATE") {
345
345
  session.type = "message-updated";
346
346
  prepareMessageSession(session, input.d);
347
347
  const msg = await bot.internal.getChannelMessage(input.d.channel_id, input.d.id);
348
- adaptMessageSession(bot, msg, session);
349
- if (session.userId === bot.selfId)
350
- return;
348
+ adaptMessageSession(msg, session);
351
349
  } else if (input.t === "MESSAGE_DELETE") {
352
350
  session.type = "message-deleted";
353
351
  session.messageId = input.d.id;
@@ -367,6 +365,11 @@ async function adaptSession(bot, input) {
367
365
  session.type = "reaction-deleted";
368
366
  session.subtype = "emoji";
369
367
  prepareReactionSession(session, input.d);
368
+ } else if (input.t === "CHANNEL_UPDATE") {
369
+ session.type = "channel-updated";
370
+ session.guildId = input.d.guild_id;
371
+ session.subtype = input.d.guild_id ? "group" : "private";
372
+ session.channelId = input.d.id;
370
373
  } else {
371
374
  return;
372
375
  }
@@ -699,7 +702,7 @@ var GatewayOpcode;
699
702
  })(GatewayOpcode || (GatewayOpcode = {}));
700
703
  var GatewayIntent;
701
704
  (function(GatewayIntent2) {
702
- GatewayIntent2[GatewayIntent2["GUILD_CREATE"] = 1] = "GUILD_CREATE";
705
+ GatewayIntent2[GatewayIntent2["GUILDS"] = 1] = "GUILDS";
703
706
  GatewayIntent2[GatewayIntent2["GUILD_MEMBERS"] = 2] = "GUILD_MEMBERS";
704
707
  GatewayIntent2[GatewayIntent2["GUILD_BANS"] = 4] = "GUILD_BANS";
705
708
  GatewayIntent2[GatewayIntent2["GUILD_EMOJIS_AND_STICKERS"] = 8] = "GUILD_EMOJIS_AND_STICKERS";
@@ -1445,6 +1448,18 @@ var DiscordBot = class extends import_koishi4.Bot {
1445
1448
  const data = await this.internal.getGuildChannels(guildId);
1446
1449
  return data.map((v) => adaptChannel(v));
1447
1450
  }
1451
+ async getChannelMessageHistory(channelId, before) {
1452
+ const data = (await this.internal.getChannelMessages(channelId, {
1453
+ before,
1454
+ limit: 50
1455
+ })).reverse();
1456
+ return data.map((v) => {
1457
+ const session = {};
1458
+ prepareMessageSession(session, v);
1459
+ adaptMessageSession(v, session);
1460
+ return session;
1461
+ });
1462
+ }
1448
1463
  };
1449
1464
  __name(DiscordBot, "DiscordBot");
1450
1465
  DiscordBot.schema = AdapterConfig;
@@ -1537,7 +1552,9 @@ var src_default = import_koishi6.Adapter.define("discord", DiscordBot, WebSocket
1537
1552
  adaptChannel,
1538
1553
  adaptGroup,
1539
1554
  adaptMessage,
1555
+ adaptMessageSession,
1540
1556
  adaptSession,
1541
- adaptUser
1557
+ adaptUser,
1558
+ prepareMessageSession
1542
1559
  });
1543
1560
  //# sourceMappingURL=index.js.map