Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: ChannelSuspiciousUserMessage, ChannelSuspiciousUserUpdate #29

Merged
merged 3 commits into from
Jun 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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 / check-buildstatus

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 / check-buildstatus

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 / check-buildstatus

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 / check-buildstatus

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;
}
Loading