Skip to content

Commit

Permalink
feat: ChannelSuspiciousUserMessage, ChannelSuspiciousUserUpdate
Browse files Browse the repository at this point in the history
feat: ChannelSuspiciousUserMessage, ChannelSuspiciousUserUpdate
  • Loading branch information
Mahsaap authored Jun 12, 2024
2 parents 5c56f4a + 86380c3 commit e1a92de
Show file tree
Hide file tree
Showing 7 changed files with 175 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace TwitchLib.EventSub.Core.Models.ChannelSuspiciousUser;

/// <summary>
/// Channel suspicious user base class.
/// </summary>
public abstract class ChannelSuspiciousUserBase
{
/// <summary>
/// The ID of the channel where the treatment for a suspicious user was updated.
/// </summary>
public string BroadcasterUserId { get; set; } = string.Empty;
/// <summary>
/// The display name of the channel where the treatment for a suspicious user was updated.
/// </summary>
public string BroadcasterUserName { get; set; } = string.Empty;
/// <summary>
/// The login of the channel where the treatment for a suspicious user was updated.
/// </summary>
public string BroadcasterUserLogin { get; set; } = string.Empty;
/// <summary>
/// The user ID of the user that sent the message.
/// </summary>
public string UserId { get; set; } = string.Empty;
/// <summary>
/// The user name of the user that sent the message.
/// </summary>
public string UserName { get; set; } = string.Empty;
/// <summary>
/// The user login of the user that sent the message.
/// </summary>
public string UserLogin { get; set; } = string.Empty;
/// <summary>
/// The status set for the suspicious user. Can be the following: “no_treatment”, “active_monitoring”, or “restricted”
/// </summary>
public string LowTrustStatus { get; set; } = string.Empty;
}
21 changes: 21 additions & 0 deletions TwitchLib.EventSub.Core/Models/ChannelSuspiciousUser/Message.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace TwitchLib.EventSub.Core.Models.ChannelSuspiciousUser;

public sealed class SuspiciousUserMessage

Check warning on line 7 in TwitchLib.EventSub.Core/Models/ChannelSuspiciousUser/Message.cs

View workflow job for this annotation

GitHub Actions / release-preview

Missing XML comment for publicly visible type or member 'SuspiciousUserMessage'
{
/// <summary>
/// The UUID that identifies the message.
/// </summary>
public string MessageId { get; set; } = string.Empty;
/// <summary>
/// The chat message in plain text.
/// </summary>
public string Text { get; set; } = string.Empty;
/// <summary>
/// Ordered list of chat message fragments.
/// </summary>
public MessageFragment[] Fragments { get; set; } = [];
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace TwitchLib.EventSub.Core.Models.ChannelSuspiciousUser;

public sealed class MessageFragment

Check warning on line 7 in TwitchLib.EventSub.Core/Models/ChannelSuspiciousUser/MessageFragment.cs

View workflow job for this annotation

GitHub Actions / release-preview

Missing XML comment for publicly visible type or member 'MessageFragment'
{
/// <summary>
/// The type of message fragment. Possible values: -text -cheermote -emote
/// </summary>
public string Type { get; set; } = string.Empty;
/// <summary>
/// Message text in fragment.
/// </summary>
public string Text { get; set; } = string.Empty;
/// <summary>
/// Optional. Metadata pertaining to the cheermote.
/// </summary>
public FragmentCheermote? Cheermote { get; set; }
/// <summary>
/// Optional. Metadata pertaining to the emote.
/// </summary>
public FragmentEmote? Emote { get; set; }
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace TwitchLib.EventSub.Core.Models.ChannelSuspiciousUser;

public sealed class FragmentCheermote

Check warning on line 7 in TwitchLib.EventSub.Core/Models/ChannelSuspiciousUser/MessageFragmentCheermote.cs

View workflow job for this annotation

GitHub Actions / release-preview

Missing XML comment for publicly visible type or member 'FragmentCheermote'
{
/// <summary>
/// The name portion of the Cheermote string that you use in chat to cheer Bits. The full Cheermote string is the concatenation of {prefix} + {number of Bits}.
///
/// For example, if the prefix is “Cheer” and you want to cheer 100 Bits, the full Cheermote string is Cheer100.When the Cheermote string is entered in chat, Twitch converts it to the image associated with the Bits tier that was cheered.
/// </summary>
public string Prefix { get; set; } = string.Empty;
/// <summary>
/// The amount of bits cheered.
/// </summary>
public int Bits { get; set; } = 0;
/// <summary>
/// The tier level of the cheermote.
/// </summary>
public int Tier { get; set; } = 0;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace TwitchLib.EventSub.Core.Models.ChannelSuspiciousUser;

public sealed class FragmentEmote

Check warning on line 7 in TwitchLib.EventSub.Core/Models/ChannelSuspiciousUser/MessageFragmentEmote.cs

View workflow job for this annotation

GitHub Actions / release-preview

Missing XML comment for publicly visible type or member 'FragmentEmote'
{
/// <summary>
/// An ID that uniquely identifies this emote.
/// </summary>
public string Id { get; set; } = string.Empty;
/// <summary>
/// An ID that identifies the emote set that the emote belongs to.
/// </summary>
public string EmoteSetId { get; set; } = string.Empty;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
using TwitchLib.EventSub.Core.Models.ChannelSuspiciousUser;

namespace TwitchLib.EventSub.Core.SubscriptionTypes.Channel;

public sealed class ChannelSuspiciousUserMessage : ChannelSuspiciousUserBase
{
/// <summary>
/// A list of channel IDs where the suspicious user is also banned.
/// </summary>
public string[] SharedBanChannelIds { get; set; } = [];
/// <summary>
/// User types (if any) that apply to the suspicious user, can be “manually_added”, “ban_evader_detector”, or “shared_channel_ban”.
/// </summary>
public string[] Types { get; set; } = [];
/// <summary>
/// A ban evasion likelihood value (if any) that as been applied to the user automatically by Twitch, can be “unknown”, “possible”, or “likely”.
/// </summary>
public string BanEvasionEvaluation { get; set; } = string.Empty;
/// <summary>
/// The structured chat message.
/// </summary>
public SuspiciousUserMessage Message { get; set; } = new SuspiciousUserMessage();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Text;
using TwitchLib.EventSub.Core.Models.ChannelSuspiciousUser;

namespace TwitchLib.EventSub.Core.SubscriptionTypes.Channel;

public sealed class ChannelSuspiciousUserUpdate : ChannelSuspiciousUserBase
{
/// <summary>
/// The ID of the moderator that updated the treatment for a suspicious user.
/// </summary>
public string ModeratorUserId { get; set; } = string.Empty;
/// <summary>
/// The display name of the moderator that updated the treatment for a suspicious user.
/// </summary>
public string ModeratorUserName { get; set; } = string.Empty;
/// <summary>
/// The login of the moderator that updated the treatment for a suspicious user.
/// </summary>
public string ModeratorUserLogin { get; set; } = string.Empty;
}

0 comments on commit e1a92de

Please sign in to comment.