UNPKG

@twurple/eventsub-base

Version:

Base for the other Twurple EventSub packages

123 lines (122 loc) 4.06 kB
import { __decorate } from "tslib"; import { Enumerable } from '@d-fischer/shared-utils'; import { checkRelationAssertion, DataObject, rawDataSymbol, rtfm } from '@twurple/common'; import { EventSubAutoModMessageAutoMod } from './common/EventSubAutoModMessageAutoMod.js'; import { EventSubAutoModMessageBlockedTerm } from './common/EventSubAutoModMessageBlockedTerm.js'; /** * An EventSub event representing chat message being held by AutoMod in a channel. */ let EventSubAutoModMessageHoldV2Event = class EventSubAutoModMessageHoldV2Event extends DataObject { /** @internal */ _client; /** @internal */ constructor(data, client) { super(data); this._client = client; } /** * The ID of the broadcaster in whose channel the message has been held by AutoMod. */ get broadcasterId() { return this[rawDataSymbol].broadcaster_user_id; } /** * The name of the broadcaster in whose channel the message has been held by AutoMod. */ get broadcasterName() { return this[rawDataSymbol].broadcaster_user_login; } /** * The display name of the broadcaster in whose channel the message has been held by AutoMod. */ get broadcasterDisplayName() { return this[rawDataSymbol].broadcaster_user_name; } /** * Gets more information about the broadcaster. */ async getBroadcaster() { return checkRelationAssertion(await this._client.users.getUserById(this[rawDataSymbol].broadcaster_user_id)); } /** * The ID of the user whose message has been held by AutoMod. */ get userId() { return this[rawDataSymbol].user_id; } /** * The name of the user whose message has been held by AutoMod. */ get userName() { return this[rawDataSymbol].user_login; } /** * The display name of the user whose message has been held by AutoMod. */ get userDisplayName() { return this[rawDataSymbol].user_name; } /** * Gets more information about the user. */ async getUser() { return checkRelationAssertion(await this._client.users.getUserById(this[rawDataSymbol].user_id)); } /** * The ID of the chat message held by AutoMod. */ get messageId() { return this[rawDataSymbol].message_id; } /** * The plain text of the message. */ get messageText() { return this[rawDataSymbol].message.text; } /** * The pre-parsed message parts. */ get messageParts() { return this[rawDataSymbol].message.fragments; } /** * The reason why the message was caught. */ get reason() { return this[rawDataSymbol].reason; } /** * The AutoMod violation data if the message was caught by AutoMod. * * This is only relevant if {@link EventSubAutoModMessageHoldEvent#reason} is `automod`, otherwise it is `null`. */ get autoMod() { return this[rawDataSymbol].automod ? new EventSubAutoModMessageAutoMod(this[rawDataSymbol].automod, this.messageText) : null; } /** * The list of blocked terms caused the message to be caught. * * This is only relevant if {@link EventSubAutoModMessageHoldEvent#reason} is `blocked_term`, otherwise it is * `null`. */ get blockedTerms() { return this[rawDataSymbol].blocked_term ? this[rawDataSymbol].blocked_term.terms_found.map(term => new EventSubAutoModMessageBlockedTerm(term, this.messageText)) : null; } /** * The date of when AutoMod held the message. */ get holdDate() { return new Date(this[rawDataSymbol].held_at); } }; __decorate([ Enumerable(false) ], EventSubAutoModMessageHoldV2Event.prototype, "_client", void 0); EventSubAutoModMessageHoldV2Event = __decorate([ rtfm('eventsub-base', 'EventSubAutoModMessageHoldV2Event', 'messageId') ], EventSubAutoModMessageHoldV2Event); export { EventSubAutoModMessageHoldV2Event };