hischool.js 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.
- package/README.md +41 -0
- package/lib/cjs/Client.d.ts +166 -0
- package/lib/cjs/Client.d.ts.map +1 -0
- package/lib/cjs/Client.js +221 -0
- package/lib/cjs/api/baseURL.d.ts +2 -0
- package/lib/cjs/api/baseURL.d.ts.map +1 -0
- package/lib/cjs/api/baseURL.js +5 -0
- package/lib/cjs/api/index.d.ts +177 -0
- package/lib/cjs/api/index.d.ts.map +1 -0
- package/lib/cjs/api/index.js +150 -0
- package/lib/cjs/api/params.d.ts +285 -0
- package/lib/cjs/api/params.d.ts.map +1 -0
- package/lib/cjs/api/params.js +194 -0
- package/lib/cjs/api/routes.d.ts +1089 -0
- package/lib/cjs/api/routes.d.ts.map +1 -0
- package/lib/cjs/api/routes.js +2 -0
- package/lib/cjs/api/schema.d.ts +4705 -0
- package/lib/cjs/api/schema.d.ts.map +1 -0
- package/lib/cjs/api/schema.js +2 -0
- package/lib/cjs/api/types.d.ts +131 -0
- package/lib/cjs/api/types.d.ts.map +1 -0
- package/lib/cjs/api/types.js +2 -0
- package/lib/cjs/classes/BannedUser.d.ts +18 -0
- package/lib/cjs/classes/BannedUser.d.ts.map +1 -0
- package/lib/cjs/classes/BannedUser.js +21 -0
- package/lib/cjs/classes/Bot.d.ts +82 -0
- package/lib/cjs/classes/Bot.d.ts.map +1 -0
- package/lib/cjs/classes/Bot.js +145 -0
- package/lib/cjs/classes/Channel.d.ts +465 -0
- package/lib/cjs/classes/Channel.d.ts.map +1 -0
- package/lib/cjs/classes/Channel.js +599 -0
- package/lib/cjs/classes/ChannelUnread.d.ts +27 -0
- package/lib/cjs/classes/ChannelUnread.d.ts.map +1 -0
- package/lib/cjs/classes/ChannelUnread.js +50 -0
- package/lib/cjs/classes/ChannelWebhook.d.ts +53 -0
- package/lib/cjs/classes/ChannelWebhook.d.ts.map +1 -0
- package/lib/cjs/classes/ChannelWebhook.js +113 -0
- package/lib/cjs/classes/Emoji.d.ts +57 -0
- package/lib/cjs/classes/Emoji.d.ts.map +1 -0
- package/lib/cjs/classes/Emoji.js +104 -0
- package/lib/cjs/classes/File.d.ts +67 -0
- package/lib/cjs/classes/File.d.ts.map +1 -0
- package/lib/cjs/classes/File.js +102 -0
- package/lib/cjs/classes/Invite.d.ts +60 -0
- package/lib/cjs/classes/Invite.d.ts.map +1 -0
- package/lib/cjs/classes/Invite.js +91 -0
- package/lib/cjs/classes/MFA.d.ts +83 -0
- package/lib/cjs/classes/MFA.d.ts.map +1 -0
- package/lib/cjs/classes/MFA.js +196 -0
- package/lib/cjs/classes/Message.d.ts +484 -0
- package/lib/cjs/classes/Message.d.ts.map +1 -0
- package/lib/cjs/classes/Message.js +341 -0
- package/lib/cjs/classes/MessageEmbed.d.ts +122 -0
- package/lib/cjs/classes/MessageEmbed.d.ts.map +1 -0
- package/lib/cjs/classes/MessageEmbed.js +181 -0
- package/lib/cjs/classes/PublicBot.d.ts +28 -0
- package/lib/cjs/classes/PublicBot.d.ts.map +1 -0
- package/lib/cjs/classes/PublicBot.js +60 -0
- package/lib/cjs/classes/PublicInvite.d.ts +57 -0
- package/lib/cjs/classes/PublicInvite.d.ts.map +1 -0
- package/lib/cjs/classes/PublicInvite.js +104 -0
- package/lib/cjs/classes/Server.d.ts +473 -0
- package/lib/cjs/classes/Server.d.ts.map +1 -0
- package/lib/cjs/classes/Server.js +585 -0
- package/lib/cjs/classes/ServerBan.d.ts +26 -0
- package/lib/cjs/classes/ServerBan.d.ts.map +1 -0
- package/lib/cjs/classes/ServerBan.js +44 -0
- package/lib/cjs/classes/ServerMember.d.ts +138 -0
- package/lib/cjs/classes/ServerMember.d.ts.map +1 -0
- package/lib/cjs/classes/ServerMember.js +234 -0
- package/lib/cjs/classes/Session.d.ts +45 -0
- package/lib/cjs/classes/Session.d.ts.map +1 -0
- package/lib/cjs/classes/Session.js +94 -0
- package/lib/cjs/classes/SystemMessage.d.ts +127 -0
- package/lib/cjs/classes/SystemMessage.d.ts.map +1 -0
- package/lib/cjs/classes/SystemMessage.js +172 -0
- package/lib/cjs/classes/User.d.ts +203 -0
- package/lib/cjs/classes/User.d.ts.map +1 -0
- package/lib/cjs/classes/User.js +299 -0
- package/lib/cjs/classes/UserProfile.d.ts +23 -0
- package/lib/cjs/classes/UserProfile.d.ts.map +1 -0
- package/lib/cjs/classes/UserProfile.js +35 -0
- package/lib/cjs/classes/index.d.ts +21 -0
- package/lib/cjs/classes/index.d.ts.map +1 -0
- package/lib/cjs/classes/index.js +36 -0
- package/lib/cjs/collections/AccountCollection.d.ts +91 -0
- package/lib/cjs/collections/AccountCollection.d.ts.map +1 -0
- package/lib/cjs/collections/AccountCollection.js +150 -0
- package/lib/cjs/collections/BotCollection.d.ts +39 -0
- package/lib/cjs/collections/BotCollection.d.ts.map +1 -0
- package/lib/cjs/collections/BotCollection.js +89 -0
- package/lib/cjs/collections/ChannelCollection.d.ts +39 -0
- package/lib/cjs/collections/ChannelCollection.d.ts.map +1 -0
- package/lib/cjs/collections/ChannelCollection.js +93 -0
- package/lib/cjs/collections/ChannelUnreadCollection.d.ts +24 -0
- package/lib/cjs/collections/ChannelUnreadCollection.d.ts.map +1 -0
- package/lib/cjs/collections/ChannelUnreadCollection.js +56 -0
- package/lib/cjs/collections/ChannelWebhookCollection.d.ts +29 -0
- package/lib/cjs/collections/ChannelWebhookCollection.d.ts.map +1 -0
- package/lib/cjs/collections/ChannelWebhookCollection.js +69 -0
- package/lib/cjs/collections/Collection.d.ts +153 -0
- package/lib/cjs/collections/Collection.d.ts.map +1 -0
- package/lib/cjs/collections/Collection.js +170 -0
- package/lib/cjs/collections/EmojiCollection.d.ts +27 -0
- package/lib/cjs/collections/EmojiCollection.d.ts.map +1 -0
- package/lib/cjs/collections/EmojiCollection.js +67 -0
- package/lib/cjs/collections/MessageCollection.d.ts +28 -0
- package/lib/cjs/collections/MessageCollection.d.ts.map +1 -0
- package/lib/cjs/collections/MessageCollection.js +69 -0
- package/lib/cjs/collections/ServerCollection.d.ts +36 -0
- package/lib/cjs/collections/ServerCollection.d.ts.map +1 -0
- package/lib/cjs/collections/ServerCollection.js +96 -0
- package/lib/cjs/collections/ServerMemberCollection.d.ts +45 -0
- package/lib/cjs/collections/ServerMemberCollection.d.ts.map +1 -0
- package/lib/cjs/collections/ServerMemberCollection.js +95 -0
- package/lib/cjs/collections/SessionCollection.d.ts +27 -0
- package/lib/cjs/collections/SessionCollection.d.ts.map +1 -0
- package/lib/cjs/collections/SessionCollection.js +63 -0
- package/lib/cjs/collections/UserCollection.d.ts +31 -0
- package/lib/cjs/collections/UserCollection.d.ts.map +1 -0
- package/lib/cjs/collections/UserCollection.js +81 -0
- package/lib/cjs/collections/index.d.ts +12 -0
- package/lib/cjs/collections/index.d.ts.map +1 -0
- package/lib/cjs/collections/index.js +38 -0
- package/lib/cjs/events/EventClient.d.ts +89 -0
- package/lib/cjs/events/EventClient.d.ts.map +1 -0
- package/lib/cjs/events/EventClient.js +186 -0
- package/lib/cjs/events/index.d.ts +18 -0
- package/lib/cjs/events/index.d.ts.map +1 -0
- package/lib/cjs/events/index.js +20 -0
- package/lib/cjs/events/v1.d.ts +214 -0
- package/lib/cjs/events/v1.d.ts.map +1 -0
- package/lib/cjs/events/v1.js +502 -0
- package/lib/cjs/hydration/bot.d.ts +21 -0
- package/lib/cjs/hydration/bot.d.ts.map +1 -0
- package/lib/cjs/hydration/bot.js +31 -0
- package/lib/cjs/hydration/channel.d.ts +25 -0
- package/lib/cjs/hydration/channel.d.ts.map +1 -0
- package/lib/cjs/hydration/channel.js +40 -0
- package/lib/cjs/hydration/channelUnread.d.ts +11 -0
- package/lib/cjs/hydration/channelUnread.d.ts.map +1 -0
- package/lib/cjs/hydration/channelUnread.js +19 -0
- package/lib/cjs/hydration/channelWebhook.d.ts +12 -0
- package/lib/cjs/hydration/channelWebhook.d.ts.map +1 -0
- package/lib/cjs/hydration/channelWebhook.js +21 -0
- package/lib/cjs/hydration/emoji.d.ts +13 -0
- package/lib/cjs/hydration/emoji.d.ts.map +1 -0
- package/lib/cjs/hydration/emoji.js +18 -0
- package/lib/cjs/hydration/index.d.ts +1404 -0
- package/lib/cjs/hydration/index.d.ts.map +1 -0
- package/lib/cjs/hydration/index.js +68 -0
- package/lib/cjs/hydration/message.d.ts +25 -0
- package/lib/cjs/hydration/message.d.ts.map +1 -0
- package/lib/cjs/hydration/message.js +48 -0
- package/lib/cjs/hydration/server.d.ts +31 -0
- package/lib/cjs/hydration/server.d.ts.map +1 -0
- package/lib/cjs/hydration/server.js +44 -0
- package/lib/cjs/hydration/serverMember.d.ts +14 -0
- package/lib/cjs/hydration/serverMember.d.ts.map +1 -0
- package/lib/cjs/hydration/serverMember.js +21 -0
- package/lib/cjs/hydration/session.d.ts +8 -0
- package/lib/cjs/hydration/session.d.ts.map +1 -0
- package/lib/cjs/hydration/session.js +13 -0
- package/lib/cjs/hydration/user.d.ts +43 -0
- package/lib/cjs/hydration/user.d.ts.map +1 -0
- package/lib/cjs/hydration/user.js +53 -0
- package/lib/cjs/index.d.ts +9 -0
- package/lib/cjs/index.d.ts.map +1 -0
- package/lib/cjs/index.js +43 -0
- package/lib/cjs/lib/merge.d.ts +15 -0
- package/lib/cjs/lib/merge.d.ts.map +1 -0
- package/lib/cjs/lib/merge.js +2 -0
- package/lib/cjs/lib/regex.d.ts +13 -0
- package/lib/cjs/lib/regex.d.ts.map +1 -0
- package/lib/cjs/lib/regex.js +15 -0
- package/lib/cjs/permissions/calculator.d.ts +19 -0
- package/lib/cjs/permissions/calculator.d.ts.map +1 -0
- package/lib/cjs/permissions/calculator.js +136 -0
- package/lib/cjs/permissions/definitions.d.ts +73 -0
- package/lib/cjs/permissions/definitions.d.ts.map +1 -0
- package/lib/cjs/permissions/definitions.js +124 -0
- package/lib/cjs/storage/ObjectStorage.d.ts +28 -0
- package/lib/cjs/storage/ObjectStorage.d.ts.map +1 -0
- package/lib/cjs/storage/ObjectStorage.js +41 -0
- package/lib/esm/Client.d.ts +166 -0
- package/lib/esm/Client.d.ts.map +1 -0
- package/lib/esm/Client.js +214 -0
- package/lib/esm/api/baseURL.d.ts +2 -0
- package/lib/esm/api/baseURL.d.ts.map +1 -0
- package/lib/esm/api/baseURL.js +2 -0
- package/lib/esm/api/index.d.ts +177 -0
- package/lib/esm/api/index.d.ts.map +1 -0
- package/lib/esm/api/index.js +139 -0
- package/lib/esm/api/params.d.ts +285 -0
- package/lib/esm/api/params.d.ts.map +1 -0
- package/lib/esm/api/params.js +191 -0
- package/lib/esm/api/routes.d.ts +1089 -0
- package/lib/esm/api/routes.d.ts.map +1 -0
- package/lib/esm/api/routes.js +1 -0
- package/lib/esm/api/schema.d.ts +4705 -0
- package/lib/esm/api/schema.d.ts.map +1 -0
- package/lib/esm/api/schema.js +1 -0
- package/lib/esm/api/types.d.ts +131 -0
- package/lib/esm/api/types.d.ts.map +1 -0
- package/lib/esm/api/types.js +1 -0
- package/lib/esm/classes/BannedUser.d.ts +18 -0
- package/lib/esm/classes/BannedUser.d.ts.map +1 -0
- package/lib/esm/classes/BannedUser.js +21 -0
- package/lib/esm/classes/Bot.d.ts +82 -0
- package/lib/esm/classes/Bot.d.ts.map +1 -0
- package/lib/esm/classes/Bot.js +116 -0
- package/lib/esm/classes/Channel.d.ts +465 -0
- package/lib/esm/classes/Channel.d.ts.map +1 -0
- package/lib/esm/classes/Channel.js +529 -0
- package/lib/esm/classes/ChannelUnread.d.ts +27 -0
- package/lib/esm/classes/ChannelUnread.d.ts.map +1 -0
- package/lib/esm/classes/ChannelUnread.js +34 -0
- package/lib/esm/classes/ChannelWebhook.d.ts +53 -0
- package/lib/esm/classes/ChannelWebhook.d.ts.map +1 -0
- package/lib/esm/classes/ChannelWebhook.js +83 -0
- package/lib/esm/classes/Emoji.d.ts +57 -0
- package/lib/esm/classes/Emoji.d.ts.map +1 -0
- package/lib/esm/classes/Emoji.js +77 -0
- package/lib/esm/classes/File.d.ts +67 -0
- package/lib/esm/classes/File.d.ts.map +1 -0
- package/lib/esm/classes/File.js +105 -0
- package/lib/esm/classes/Invite.d.ts +60 -0
- package/lib/esm/classes/Invite.d.ts.map +1 -0
- package/lib/esm/classes/Invite.js +80 -0
- package/lib/esm/classes/MFA.d.ts +83 -0
- package/lib/esm/classes/MFA.d.ts.map +1 -0
- package/lib/esm/classes/MFA.js +165 -0
- package/lib/esm/classes/Message.d.ts +484 -0
- package/lib/esm/classes/Message.d.ts.map +1 -0
- package/lib/esm/classes/Message.js +300 -0
- package/lib/esm/classes/MessageEmbed.d.ts +122 -0
- package/lib/esm/classes/MessageEmbed.d.ts.map +1 -0
- package/lib/esm/classes/MessageEmbed.js +192 -0
- package/lib/esm/classes/PublicBot.d.ts +28 -0
- package/lib/esm/classes/PublicBot.d.ts.map +1 -0
- package/lib/esm/classes/PublicBot.js +47 -0
- package/lib/esm/classes/PublicInvite.d.ts +57 -0
- package/lib/esm/classes/PublicInvite.d.ts.map +1 -0
- package/lib/esm/classes/PublicInvite.js +100 -0
- package/lib/esm/classes/Server.d.ts +473 -0
- package/lib/esm/classes/Server.d.ts.map +1 -0
- package/lib/esm/classes/Server.js +522 -0
- package/lib/esm/classes/ServerBan.d.ts +26 -0
- package/lib/esm/classes/ServerBan.d.ts.map +1 -0
- package/lib/esm/classes/ServerBan.js +33 -0
- package/lib/esm/classes/ServerMember.d.ts +138 -0
- package/lib/esm/classes/ServerMember.d.ts.map +1 -0
- package/lib/esm/classes/ServerMember.js +199 -0
- package/lib/esm/classes/Session.d.ts +45 -0
- package/lib/esm/classes/Session.d.ts.map +1 -0
- package/lib/esm/classes/Session.js +65 -0
- package/lib/esm/classes/SystemMessage.d.ts +127 -0
- package/lib/esm/classes/SystemMessage.d.ts.map +1 -0
- package/lib/esm/classes/SystemMessage.js +171 -0
- package/lib/esm/classes/User.d.ts +203 -0
- package/lib/esm/classes/User.d.ts.map +1 -0
- package/lib/esm/classes/User.js +252 -0
- package/lib/esm/classes/UserProfile.d.ts +23 -0
- package/lib/esm/classes/UserProfile.d.ts.map +1 -0
- package/lib/esm/classes/UserProfile.js +31 -0
- package/lib/esm/classes/index.d.ts +21 -0
- package/lib/esm/classes/index.d.ts.map +1 -0
- package/lib/esm/classes/index.js +20 -0
- package/lib/esm/collections/AccountCollection.d.ts +91 -0
- package/lib/esm/collections/AccountCollection.d.ts.map +1 -0
- package/lib/esm/collections/AccountCollection.js +139 -0
- package/lib/esm/collections/BotCollection.d.ts +39 -0
- package/lib/esm/collections/BotCollection.d.ts.map +1 -0
- package/lib/esm/collections/BotCollection.js +68 -0
- package/lib/esm/collections/ChannelCollection.d.ts +39 -0
- package/lib/esm/collections/ChannelCollection.d.ts.map +1 -0
- package/lib/esm/collections/ChannelCollection.js +75 -0
- package/lib/esm/collections/ChannelUnreadCollection.d.ts +24 -0
- package/lib/esm/collections/ChannelUnreadCollection.d.ts.map +1 -0
- package/lib/esm/collections/ChannelUnreadCollection.js +41 -0
- package/lib/esm/collections/ChannelWebhookCollection.d.ts +29 -0
- package/lib/esm/collections/ChannelWebhookCollection.d.ts.map +1 -0
- package/lib/esm/collections/ChannelWebhookCollection.js +52 -0
- package/lib/esm/collections/Collection.d.ts +153 -0
- package/lib/esm/collections/Collection.d.ts.map +1 -0
- package/lib/esm/collections/Collection.js +160 -0
- package/lib/esm/collections/EmojiCollection.d.ts +27 -0
- package/lib/esm/collections/EmojiCollection.d.ts.map +1 -0
- package/lib/esm/collections/EmojiCollection.js +52 -0
- package/lib/esm/collections/MessageCollection.d.ts +28 -0
- package/lib/esm/collections/MessageCollection.d.ts.map +1 -0
- package/lib/esm/collections/MessageCollection.js +54 -0
- package/lib/esm/collections/ServerCollection.d.ts +36 -0
- package/lib/esm/collections/ServerCollection.d.ts.map +1 -0
- package/lib/esm/collections/ServerCollection.js +79 -0
- package/lib/esm/collections/ServerMemberCollection.d.ts +45 -0
- package/lib/esm/collections/ServerMemberCollection.d.ts.map +1 -0
- package/lib/esm/collections/ServerMemberCollection.js +80 -0
- package/lib/esm/collections/SessionCollection.d.ts +27 -0
- package/lib/esm/collections/SessionCollection.d.ts.map +1 -0
- package/lib/esm/collections/SessionCollection.js +46 -0
- package/lib/esm/collections/UserCollection.d.ts +31 -0
- package/lib/esm/collections/UserCollection.d.ts.map +1 -0
- package/lib/esm/collections/UserCollection.js +66 -0
- package/lib/esm/collections/index.d.ts +12 -0
- package/lib/esm/collections/index.d.ts.map +1 -0
- package/lib/esm/collections/index.js +11 -0
- package/lib/esm/events/EventClient.d.ts +89 -0
- package/lib/esm/events/EventClient.d.ts.map +1 -0
- package/lib/esm/events/EventClient.js +175 -0
- package/lib/esm/events/index.d.ts +18 -0
- package/lib/esm/events/index.d.ts.map +1 -0
- package/lib/esm/events/index.js +2 -0
- package/lib/esm/events/v1.d.ts +214 -0
- package/lib/esm/events/v1.d.ts.map +1 -0
- package/lib/esm/events/v1.js +514 -0
- package/lib/esm/hydration/bot.d.ts +21 -0
- package/lib/esm/hydration/bot.d.ts.map +1 -0
- package/lib/esm/hydration/bot.js +28 -0
- package/lib/esm/hydration/channel.d.ts +25 -0
- package/lib/esm/hydration/channel.d.ts.map +1 -0
- package/lib/esm/hydration/channel.js +37 -0
- package/lib/esm/hydration/channelUnread.d.ts +11 -0
- package/lib/esm/hydration/channelUnread.d.ts.map +1 -0
- package/lib/esm/hydration/channelUnread.js +16 -0
- package/lib/esm/hydration/channelWebhook.d.ts +12 -0
- package/lib/esm/hydration/channelWebhook.d.ts.map +1 -0
- package/lib/esm/hydration/channelWebhook.js +18 -0
- package/lib/esm/hydration/emoji.d.ts +13 -0
- package/lib/esm/hydration/emoji.d.ts.map +1 -0
- package/lib/esm/hydration/emoji.js +15 -0
- package/lib/esm/hydration/index.d.ts +1404 -0
- package/lib/esm/hydration/index.d.ts.map +1 -0
- package/lib/esm/hydration/index.js +65 -0
- package/lib/esm/hydration/message.d.ts +25 -0
- package/lib/esm/hydration/message.d.ts.map +1 -0
- package/lib/esm/hydration/message.js +45 -0
- package/lib/esm/hydration/server.d.ts +31 -0
- package/lib/esm/hydration/server.d.ts.map +1 -0
- package/lib/esm/hydration/server.js +41 -0
- package/lib/esm/hydration/serverMember.d.ts +14 -0
- package/lib/esm/hydration/serverMember.d.ts.map +1 -0
- package/lib/esm/hydration/serverMember.js +18 -0
- package/lib/esm/hydration/session.d.ts +8 -0
- package/lib/esm/hydration/session.d.ts.map +1 -0
- package/lib/esm/hydration/session.js +10 -0
- package/lib/esm/hydration/user.d.ts +43 -0
- package/lib/esm/hydration/user.d.ts.map +1 -0
- package/lib/esm/hydration/user.js +50 -0
- package/lib/esm/index.d.ts +9 -0
- package/lib/esm/index.d.ts.map +1 -0
- package/lib/esm/index.js +8 -0
- package/lib/esm/lib/merge.d.ts +15 -0
- package/lib/esm/lib/merge.d.ts.map +1 -0
- package/lib/esm/lib/merge.js +1 -0
- package/lib/esm/lib/regex.d.ts +13 -0
- package/lib/esm/lib/regex.d.ts.map +1 -0
- package/lib/esm/lib/regex.js +12 -0
- package/lib/esm/package.json +3 -0
- package/lib/esm/permissions/calculator.d.ts +19 -0
- package/lib/esm/permissions/calculator.d.ts.map +1 -0
- package/lib/esm/permissions/calculator.js +129 -0
- package/lib/esm/permissions/definitions.d.ts +73 -0
- package/lib/esm/permissions/definitions.d.ts.map +1 -0
- package/lib/esm/permissions/definitions.js +121 -0
- package/lib/esm/storage/ObjectStorage.d.ts +28 -0
- package/lib/esm/storage/ObjectStorage.d.ts.map +1 -0
- package/lib/esm/storage/ObjectStorage.js +39 -0
- package/package.json +59 -0
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
import { File } from "../index.js";
|
|
2
|
+
import { decodeTime } from "ulid";
|
|
3
|
+
/**
|
|
4
|
+
* Message Class
|
|
5
|
+
*/
|
|
6
|
+
export class Message {
|
|
7
|
+
#collection;
|
|
8
|
+
id;
|
|
9
|
+
/**
|
|
10
|
+
* Construct Message
|
|
11
|
+
* @param collection Collection
|
|
12
|
+
* @param id Message Id
|
|
13
|
+
*/
|
|
14
|
+
constructor(collection, id) {
|
|
15
|
+
this.#collection = collection;
|
|
16
|
+
this.id = id;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Whether this object exists
|
|
20
|
+
*/
|
|
21
|
+
get $exists() {
|
|
22
|
+
return !!this.#collection.getUnderlyingObject(this.id).id;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Time when this message was posted
|
|
26
|
+
*/
|
|
27
|
+
get createdAt() {
|
|
28
|
+
return new Date(decodeTime(this.id));
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Absolute pathname to this message in the client
|
|
32
|
+
*/
|
|
33
|
+
get path() {
|
|
34
|
+
return `${this.channel?.path}/${this.id}`;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* URL to this message
|
|
38
|
+
*/
|
|
39
|
+
get url() {
|
|
40
|
+
return this.#collection.client.configuration?.app + this.path;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Nonce value
|
|
44
|
+
*/
|
|
45
|
+
get nonce() {
|
|
46
|
+
return this.#collection.getUnderlyingObject(this.id).nonce;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Id of channel this message was sent in
|
|
50
|
+
*/
|
|
51
|
+
get channelId() {
|
|
52
|
+
return this.#collection.getUnderlyingObject(this.id).channelId;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Channel this message was sent in
|
|
56
|
+
*/
|
|
57
|
+
get channel() {
|
|
58
|
+
return this.#collection.client.channels.get(this.#collection.getUnderlyingObject(this.id).channelId);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Server this message was sent in
|
|
62
|
+
*/
|
|
63
|
+
get server() {
|
|
64
|
+
return this.channel?.server;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Member this message was sent by
|
|
68
|
+
*/
|
|
69
|
+
get member() {
|
|
70
|
+
return this.#collection.client.serverMembers.getByKey({
|
|
71
|
+
server: this.channel?.serverId,
|
|
72
|
+
user: this.authorId,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Id of user or webhook this message was sent by
|
|
77
|
+
*/
|
|
78
|
+
get authorId() {
|
|
79
|
+
return this.#collection.getUnderlyingObject(this.id).authorId;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* User this message was sent by
|
|
83
|
+
*/
|
|
84
|
+
get author() {
|
|
85
|
+
return this.#collection.client.users.get(this.#collection.getUnderlyingObject(this.id).authorId);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Webhook information for this message
|
|
89
|
+
*/
|
|
90
|
+
get webhook() {
|
|
91
|
+
return this.#collection.getUnderlyingObject(this.id).webhook;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Content
|
|
95
|
+
*/
|
|
96
|
+
get content() {
|
|
97
|
+
return this.#collection.getUnderlyingObject(this.id).content ?? "";
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* System message content
|
|
101
|
+
*/
|
|
102
|
+
get systemMessage() {
|
|
103
|
+
return this.#collection.getUnderlyingObject(this.id).systemMessage;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Attachments
|
|
107
|
+
*/
|
|
108
|
+
get attachments() {
|
|
109
|
+
return this.#collection.getUnderlyingObject(this.id).attachments;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Time at which this message was edited
|
|
113
|
+
*/
|
|
114
|
+
get editedAt() {
|
|
115
|
+
return this.#collection.getUnderlyingObject(this.id).editedAt;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Embeds
|
|
119
|
+
*/
|
|
120
|
+
get embeds() {
|
|
121
|
+
return this.#collection.getUnderlyingObject(this.id).embeds;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* IDs of users this message mentions
|
|
125
|
+
*/
|
|
126
|
+
get mentionIds() {
|
|
127
|
+
return this.#collection.getUnderlyingObject(this.id).mentionIds;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Whether this message mentions us
|
|
131
|
+
*/
|
|
132
|
+
get mentioned() {
|
|
133
|
+
return this.mentionIds?.includes(this.#collection.client.user.id);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* IDs of messages this message replies to
|
|
137
|
+
*/
|
|
138
|
+
get replyIds() {
|
|
139
|
+
return this.#collection.getUnderlyingObject(this.id).replyIds;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Reactions
|
|
143
|
+
*/
|
|
144
|
+
get reactions() {
|
|
145
|
+
return this.#collection.getUnderlyingObject(this.id).reactions;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Interactions
|
|
149
|
+
*/
|
|
150
|
+
get interactions() {
|
|
151
|
+
return this.#collection.getUnderlyingObject(this.id).interactions;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Masquerade
|
|
155
|
+
*/
|
|
156
|
+
get masquerade() {
|
|
157
|
+
return this.#collection.getUnderlyingObject(this.id).masquerade;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Flags
|
|
161
|
+
*/
|
|
162
|
+
get flags() {
|
|
163
|
+
return this.#collection.getUnderlyingObject(this.id).flags || 0;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Get the username for this message
|
|
167
|
+
*/
|
|
168
|
+
get username() {
|
|
169
|
+
const webhook = this.webhook;
|
|
170
|
+
return (this.masquerade?.name ??
|
|
171
|
+
(webhook ? webhook.name : this.member?.nickname ?? this.author?.username));
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Get the role colour for this message
|
|
175
|
+
*/
|
|
176
|
+
get roleColour() {
|
|
177
|
+
return this.masquerade?.colour ?? this.member?.roleColour;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Get the avatar URL for this message
|
|
181
|
+
*/
|
|
182
|
+
get avatarURL() {
|
|
183
|
+
const webhook = this.webhook;
|
|
184
|
+
return (this.masqueradeAvatarURL ??
|
|
185
|
+
(webhook
|
|
186
|
+
? webhook.avatarURL
|
|
187
|
+
: this.member?.avatarURL ?? this.author?.avatarURL));
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Get the animated avatar URL for this message
|
|
191
|
+
*/
|
|
192
|
+
get animatedAvatarURL() {
|
|
193
|
+
const webhook = this.webhook;
|
|
194
|
+
return (this.masqueradeAvatarURL ??
|
|
195
|
+
(webhook
|
|
196
|
+
? webhook.avatarURL
|
|
197
|
+
: this.member
|
|
198
|
+
? this.member?.animatedAvatarURL
|
|
199
|
+
: this.author?.animatedAvatarURL));
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Avatar URL from the masquerade
|
|
203
|
+
*/
|
|
204
|
+
get masqueradeAvatarURL() {
|
|
205
|
+
const avatar = this.masquerade?.avatar;
|
|
206
|
+
return avatar ? this.#collection.client.proxyFile(avatar) : undefined;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Whether this message has suppressed desktop/push notifications
|
|
210
|
+
*/
|
|
211
|
+
get isSuppressed() {
|
|
212
|
+
return (this.flags & 1) === 1;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Edit a message
|
|
216
|
+
* @param data Message edit route data
|
|
217
|
+
*/
|
|
218
|
+
async edit(data) {
|
|
219
|
+
return await this.#collection.client.api.patch(`/channels/${this.channelId}/messages/${this.id}`, data);
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Delete a message
|
|
223
|
+
*/
|
|
224
|
+
async delete() {
|
|
225
|
+
return await this.#collection.client.api.delete(`/channels/${this.channelId}/messages/${this.id}`);
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Acknowledge this message as read
|
|
229
|
+
*/
|
|
230
|
+
ack() {
|
|
231
|
+
this.channel?.ack(this);
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Reply to Message
|
|
235
|
+
*/
|
|
236
|
+
reply(data, mention = true) {
|
|
237
|
+
const obj = typeof data === "string" ? { content: data } : data;
|
|
238
|
+
return this.channel?.sendMessage({
|
|
239
|
+
...obj,
|
|
240
|
+
replies: [{ id: this.id, mention }],
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Clear all reactions from this message
|
|
245
|
+
*/
|
|
246
|
+
async clearReactions() {
|
|
247
|
+
return await this.#collection.client.api.delete(`/channels/${this.channelId}/messages/${this.id}/reactions`);
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* React to a message
|
|
251
|
+
* @param emoji Unicode or emoji ID
|
|
252
|
+
*/
|
|
253
|
+
async react(emoji) {
|
|
254
|
+
return await this.#collection.client.api.put(`/channels/${this.channelId}/messages/${this.id}/reactions/${emoji}`);
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Un-react from a message
|
|
258
|
+
* @param emoji Unicode or emoji ID
|
|
259
|
+
*/
|
|
260
|
+
async unreact(emoji) {
|
|
261
|
+
return await this.#collection.client.api.delete(`/channels/${this.channelId}/messages/${this.id}/reactions/${emoji}`);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Message Webhook Class
|
|
266
|
+
*/
|
|
267
|
+
export class MessageWebhook {
|
|
268
|
+
#client;
|
|
269
|
+
id;
|
|
270
|
+
name;
|
|
271
|
+
avatar;
|
|
272
|
+
/**
|
|
273
|
+
* Construct Message Webhook
|
|
274
|
+
* @param client Client
|
|
275
|
+
* @param webhook Webhook data
|
|
276
|
+
*/
|
|
277
|
+
constructor(client, webhook, id) {
|
|
278
|
+
this.#client = client;
|
|
279
|
+
this.id = id;
|
|
280
|
+
this.name = webhook.name;
|
|
281
|
+
this.avatar = webhook.avatar
|
|
282
|
+
? new File(client, {
|
|
283
|
+
_id: webhook.avatar,
|
|
284
|
+
tag: "avatars",
|
|
285
|
+
metadata: {
|
|
286
|
+
type: "Image",
|
|
287
|
+
width: 256,
|
|
288
|
+
height: 256,
|
|
289
|
+
},
|
|
290
|
+
})
|
|
291
|
+
: undefined;
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Get the avatar URL for this message webhook
|
|
295
|
+
*/
|
|
296
|
+
get avatarURL() {
|
|
297
|
+
return (this.avatar?.createFileURL({ max_side: 256 }) ??
|
|
298
|
+
`${this.#client.options.baseURL}/users/${this.id}/default_avatar`);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { API, Client, File } from "../index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Message Embed
|
|
4
|
+
*/
|
|
5
|
+
export declare abstract class MessageEmbed {
|
|
6
|
+
protected client?: Client;
|
|
7
|
+
readonly type: API.Embed["type"];
|
|
8
|
+
/**
|
|
9
|
+
* Construct Embed
|
|
10
|
+
* @param client Client
|
|
11
|
+
* @param type Type
|
|
12
|
+
*/
|
|
13
|
+
constructor(client?: Client, type?: API.Embed["type"]);
|
|
14
|
+
/**
|
|
15
|
+
* Create an Embed from an API Embed
|
|
16
|
+
* @param client Client
|
|
17
|
+
* @param embed Data
|
|
18
|
+
* @returns Embed
|
|
19
|
+
*/
|
|
20
|
+
static from(client: Client, embed: API.Embed): MessageEmbed;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Embed of unknown type
|
|
24
|
+
*/
|
|
25
|
+
export declare class UnknownEmbed extends MessageEmbed {
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Image Embed
|
|
29
|
+
*/
|
|
30
|
+
export declare class ImageEmbed extends MessageEmbed {
|
|
31
|
+
readonly url: string;
|
|
32
|
+
readonly width: number;
|
|
33
|
+
readonly height: number;
|
|
34
|
+
readonly size: API.ImageSize;
|
|
35
|
+
/**
|
|
36
|
+
* Construct Image Embed
|
|
37
|
+
* @param client Client
|
|
38
|
+
* @param embed Embed
|
|
39
|
+
*/
|
|
40
|
+
constructor(client: Client, embed: Omit<API.Embed & {
|
|
41
|
+
type: "Image";
|
|
42
|
+
}, "type">);
|
|
43
|
+
/**
|
|
44
|
+
* Proxied image URL
|
|
45
|
+
*/
|
|
46
|
+
get proxiedURL(): string | undefined;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Video Embed
|
|
50
|
+
*/
|
|
51
|
+
export declare class VideoEmbed extends MessageEmbed {
|
|
52
|
+
readonly url: string;
|
|
53
|
+
readonly width: number;
|
|
54
|
+
readonly height: number;
|
|
55
|
+
/**
|
|
56
|
+
* Construct Video Embed
|
|
57
|
+
* @param client Client
|
|
58
|
+
* @param embed Embed
|
|
59
|
+
*/
|
|
60
|
+
constructor(client: Client, embed: Omit<API.Embed & {
|
|
61
|
+
type: "Video";
|
|
62
|
+
}, "type">);
|
|
63
|
+
/**
|
|
64
|
+
* Proxied video URL
|
|
65
|
+
*/
|
|
66
|
+
get proxiedURL(): string | undefined;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Website Embed
|
|
70
|
+
*/
|
|
71
|
+
export declare class WebsiteEmbed extends MessageEmbed {
|
|
72
|
+
readonly url?: string;
|
|
73
|
+
readonly originalUrl?: string;
|
|
74
|
+
readonly specialContent?: API.Special;
|
|
75
|
+
readonly title?: string;
|
|
76
|
+
readonly description?: string;
|
|
77
|
+
readonly image?: ImageEmbed;
|
|
78
|
+
readonly video?: VideoEmbed;
|
|
79
|
+
readonly siteName?: string;
|
|
80
|
+
readonly iconUrl?: string;
|
|
81
|
+
readonly colour?: string;
|
|
82
|
+
/**
|
|
83
|
+
* Construct Video Embed
|
|
84
|
+
* @param client Client
|
|
85
|
+
* @param embed Embed
|
|
86
|
+
*/
|
|
87
|
+
constructor(client: Client, embed: Omit<API.Embed & {
|
|
88
|
+
type: "Website";
|
|
89
|
+
}, "type">);
|
|
90
|
+
/**
|
|
91
|
+
* Proxied icon URL
|
|
92
|
+
*/
|
|
93
|
+
get proxiedIconURL(): string | undefined;
|
|
94
|
+
/**
|
|
95
|
+
* If special content is present, generate the embed URL
|
|
96
|
+
*/
|
|
97
|
+
get embedURL(): string | undefined;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Text Embed
|
|
101
|
+
*/
|
|
102
|
+
export declare class TextEmbed extends MessageEmbed {
|
|
103
|
+
readonly iconUrl?: string;
|
|
104
|
+
readonly url?: string;
|
|
105
|
+
readonly title?: string;
|
|
106
|
+
readonly description?: string;
|
|
107
|
+
readonly media?: File;
|
|
108
|
+
readonly colour?: string;
|
|
109
|
+
/**
|
|
110
|
+
* Construct Video Embed
|
|
111
|
+
* @param client Client
|
|
112
|
+
* @param embed Embed
|
|
113
|
+
*/
|
|
114
|
+
constructor(client: Client, embed: Omit<API.Embed & {
|
|
115
|
+
type: "Text";
|
|
116
|
+
}, "type">);
|
|
117
|
+
/**
|
|
118
|
+
* Proxied icon URL
|
|
119
|
+
*/
|
|
120
|
+
get proxiedIconURL(): string | undefined;
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=MessageEmbed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessageEmbed.d.ts","sourceRoot":"","sources":["../../../src/classes/MessageEmbed.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import { File } from "../index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Message Embed
|
|
4
|
+
*/
|
|
5
|
+
export class MessageEmbed {
|
|
6
|
+
client;
|
|
7
|
+
type;
|
|
8
|
+
/**
|
|
9
|
+
* Construct Embed
|
|
10
|
+
* @param client Client
|
|
11
|
+
* @param type Type
|
|
12
|
+
*/
|
|
13
|
+
constructor(client, type = "None") {
|
|
14
|
+
this.client = client;
|
|
15
|
+
this.type = type;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Create an Embed from an API Embed
|
|
19
|
+
* @param client Client
|
|
20
|
+
* @param embed Data
|
|
21
|
+
* @returns Embed
|
|
22
|
+
*/
|
|
23
|
+
static from(client, embed) {
|
|
24
|
+
switch (embed.type) {
|
|
25
|
+
case "Image":
|
|
26
|
+
return new ImageEmbed(client, embed);
|
|
27
|
+
case "Video":
|
|
28
|
+
return new VideoEmbed(client, embed);
|
|
29
|
+
case "Website":
|
|
30
|
+
return new WebsiteEmbed(client, embed);
|
|
31
|
+
case "Text":
|
|
32
|
+
return new TextEmbed(client, embed);
|
|
33
|
+
default:
|
|
34
|
+
return new UnknownEmbed(client);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Embed of unknown type
|
|
40
|
+
*/
|
|
41
|
+
export class UnknownEmbed extends MessageEmbed {
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Image Embed
|
|
45
|
+
*/
|
|
46
|
+
export class ImageEmbed extends MessageEmbed {
|
|
47
|
+
url;
|
|
48
|
+
width;
|
|
49
|
+
height;
|
|
50
|
+
size;
|
|
51
|
+
/**
|
|
52
|
+
* Construct Image Embed
|
|
53
|
+
* @param client Client
|
|
54
|
+
* @param embed Embed
|
|
55
|
+
*/
|
|
56
|
+
constructor(client, embed) {
|
|
57
|
+
super(client, "Image");
|
|
58
|
+
this.url = embed.url;
|
|
59
|
+
this.width = embed.width;
|
|
60
|
+
this.height = embed.height;
|
|
61
|
+
this.size = embed.size;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Proxied image URL
|
|
65
|
+
*/
|
|
66
|
+
get proxiedURL() {
|
|
67
|
+
return this.client?.proxyFile(this.url);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Video Embed
|
|
72
|
+
*/
|
|
73
|
+
export class VideoEmbed extends MessageEmbed {
|
|
74
|
+
url;
|
|
75
|
+
width;
|
|
76
|
+
height;
|
|
77
|
+
/**
|
|
78
|
+
* Construct Video Embed
|
|
79
|
+
* @param client Client
|
|
80
|
+
* @param embed Embed
|
|
81
|
+
*/
|
|
82
|
+
constructor(client, embed) {
|
|
83
|
+
super(client, "Video");
|
|
84
|
+
this.url = embed.url;
|
|
85
|
+
this.width = embed.width;
|
|
86
|
+
this.height = embed.height;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Proxied video URL
|
|
90
|
+
*/
|
|
91
|
+
get proxiedURL() {
|
|
92
|
+
return this.client?.proxyFile(this.url);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Website Embed
|
|
97
|
+
*/
|
|
98
|
+
export class WebsiteEmbed extends MessageEmbed {
|
|
99
|
+
url;
|
|
100
|
+
originalUrl;
|
|
101
|
+
specialContent;
|
|
102
|
+
title;
|
|
103
|
+
description;
|
|
104
|
+
image;
|
|
105
|
+
video;
|
|
106
|
+
siteName;
|
|
107
|
+
iconUrl;
|
|
108
|
+
colour;
|
|
109
|
+
/**
|
|
110
|
+
* Construct Video Embed
|
|
111
|
+
* @param client Client
|
|
112
|
+
* @param embed Embed
|
|
113
|
+
*/
|
|
114
|
+
constructor(client, embed) {
|
|
115
|
+
super(client, "Website");
|
|
116
|
+
this.url = embed.url;
|
|
117
|
+
this.originalUrl = embed.original_url;
|
|
118
|
+
this.specialContent = embed.special;
|
|
119
|
+
this.title = embed.title;
|
|
120
|
+
this.description = embed.description;
|
|
121
|
+
this.image = embed.image ? new ImageEmbed(client, embed.image) : undefined;
|
|
122
|
+
this.video = embed.video ? new VideoEmbed(client, embed.video) : undefined;
|
|
123
|
+
this.siteName = embed.site_name;
|
|
124
|
+
this.iconUrl = embed.icon_url;
|
|
125
|
+
this.colour = embed.colour;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Proxied icon URL
|
|
129
|
+
*/
|
|
130
|
+
get proxiedIconURL() {
|
|
131
|
+
return this.iconUrl ? this.client?.proxyFile(this.iconUrl) : undefined;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* If special content is present, generate the embed URL
|
|
135
|
+
*/
|
|
136
|
+
get embedURL() {
|
|
137
|
+
switch (this.specialContent?.type) {
|
|
138
|
+
case "YouTube": {
|
|
139
|
+
let timestamp = "";
|
|
140
|
+
if (this.specialContent.timestamp) {
|
|
141
|
+
timestamp = `&start=${this.specialContent.timestamp}`;
|
|
142
|
+
}
|
|
143
|
+
return `https://www.youtube-nocookie.com/embed/${this.specialContent.id}?modestbranding=1${timestamp}`;
|
|
144
|
+
}
|
|
145
|
+
case "Twitch":
|
|
146
|
+
return `https://player.twitch.tv/?${this.specialContent.content_type.toLowerCase()}=${this.specialContent.id}&parent=${(window ?? {})?.location?.hostname}&autoplay=false`;
|
|
147
|
+
case "Lightspeed":
|
|
148
|
+
return `https://new.lightspeed.tv/embed/${this.specialContent.id}/stream`;
|
|
149
|
+
case "Spotify":
|
|
150
|
+
return `https://open.spotify.com/embed/${this.specialContent.content_type}/${this.specialContent.id}`;
|
|
151
|
+
case "Soundcloud":
|
|
152
|
+
return `https://w.soundcloud.com/player/?url=${encodeURIComponent(this.url)}&color=%23FF7F50&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true&visual=true`;
|
|
153
|
+
case "Bandcamp": {
|
|
154
|
+
return `https://bandcamp.com/EmbeddedPlayer/${this.specialContent.content_type.toLowerCase()}=${this.specialContent.id}/size=large/bgcol=181a1b/linkcol=056cc4/tracklist=false/transparent=true/`;
|
|
155
|
+
}
|
|
156
|
+
case "Streamable": {
|
|
157
|
+
return `https://streamable.com/e/${this.specialContent.id}?loop=0`;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Text Embed
|
|
164
|
+
*/
|
|
165
|
+
export class TextEmbed extends MessageEmbed {
|
|
166
|
+
iconUrl;
|
|
167
|
+
url;
|
|
168
|
+
title;
|
|
169
|
+
description;
|
|
170
|
+
media;
|
|
171
|
+
colour;
|
|
172
|
+
/**
|
|
173
|
+
* Construct Video Embed
|
|
174
|
+
* @param client Client
|
|
175
|
+
* @param embed Embed
|
|
176
|
+
*/
|
|
177
|
+
constructor(client, embed) {
|
|
178
|
+
super(client, "Text");
|
|
179
|
+
this.iconUrl = embed.icon_url;
|
|
180
|
+
this.url = embed.url;
|
|
181
|
+
this.title = embed.title;
|
|
182
|
+
this.description = embed.description;
|
|
183
|
+
this.media = embed.media ? new File(client, embed.media) : undefined;
|
|
184
|
+
this.colour = embed.colour;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Proxied icon URL
|
|
188
|
+
*/
|
|
189
|
+
get proxiedIconURL() {
|
|
190
|
+
return this.iconUrl ? this.client?.proxyFile(this.iconUrl) : undefined;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { API, Channel, Client, File, Server } from "../index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Public Bot Class
|
|
4
|
+
*/
|
|
5
|
+
export declare class PublicBot {
|
|
6
|
+
#private;
|
|
7
|
+
readonly id: string;
|
|
8
|
+
readonly username: string;
|
|
9
|
+
readonly avatar?: File;
|
|
10
|
+
readonly description?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Construct Public Bot
|
|
13
|
+
* @param client Client
|
|
14
|
+
* @param data Data
|
|
15
|
+
*/
|
|
16
|
+
constructor(client: Client, data: API.PublicBot);
|
|
17
|
+
/**
|
|
18
|
+
* Add the bot to a server
|
|
19
|
+
* @param server Server
|
|
20
|
+
*/
|
|
21
|
+
addToServer(server: Server | string): void;
|
|
22
|
+
/**
|
|
23
|
+
* Add the bot to a group
|
|
24
|
+
* @param group Group
|
|
25
|
+
*/
|
|
26
|
+
addToGroup(group: Channel | string): void;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=PublicBot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PublicBot.d.ts","sourceRoot":"","sources":["../../../src/classes/PublicBot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEjE;;GAEG;AACH,qBAAa,SAAS;;IAGpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B;;;;OAIG;gBACS,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS;IAa/C;;;OAGG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAMnC;;;OAGG;IACH,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;CAMnC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Channel, File, Server } from "../index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Public Bot Class
|
|
4
|
+
*/
|
|
5
|
+
export class PublicBot {
|
|
6
|
+
#client;
|
|
7
|
+
id;
|
|
8
|
+
username;
|
|
9
|
+
avatar;
|
|
10
|
+
description;
|
|
11
|
+
/**
|
|
12
|
+
* Construct Public Bot
|
|
13
|
+
* @param client Client
|
|
14
|
+
* @param data Data
|
|
15
|
+
*/
|
|
16
|
+
constructor(client, data) {
|
|
17
|
+
this.#client = client;
|
|
18
|
+
this.id = data._id;
|
|
19
|
+
this.username = data.username;
|
|
20
|
+
this.avatar = data.avatar
|
|
21
|
+
? new File(client, {
|
|
22
|
+
_id: data.avatar,
|
|
23
|
+
tag: "avatars",
|
|
24
|
+
})
|
|
25
|
+
: undefined;
|
|
26
|
+
this.description = data.description;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Add the bot to a server
|
|
30
|
+
* @param server Server
|
|
31
|
+
*/
|
|
32
|
+
addToServer(server) {
|
|
33
|
+
this.#client.api.post(`/bots/${this.id}/invite`, {
|
|
34
|
+
server: server instanceof Server ? server.id : server,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Add the bot to a group
|
|
39
|
+
* @param group Group
|
|
40
|
+
*/
|
|
41
|
+
addToGroup(group) {
|
|
42
|
+
// TODO: should use GroupChannel once that is added
|
|
43
|
+
this.#client.api.post(`/bots/${this.id}/invite`, {
|
|
44
|
+
group: group instanceof Channel ? group.id : group,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
}
|