Fixed namespaces

This commit is contained in:
Cameron
2024-03-20 19:27:24 -05:00
parent 9a69404c66
commit 8302b2639b
17 changed files with 40 additions and 22 deletions

View File

@@ -5,7 +5,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TwitchLogger.IRC
namespace TwitchIrcClient.IRC
{
public record struct Badge(string Name, string Version)
{

View File

@@ -3,9 +3,9 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TwitchLogger.IRC.Messages;
using TwitchIrcClient.IRC.Messages;
namespace TwitchLogger.IRC
namespace TwitchIrcClient.IRC
{
//public class IrcMessageEventArgs(ReceivedMessage message) : EventArgs
//{

View File

@@ -13,9 +13,9 @@ using System.Threading;
using System.Threading.Tasks;
using System.Timers;
using TwitchIrcClient.IRC.Messages;
using TwitchLogger.IRC.Messages;
using TwitchIrcClient.IRC.Messages;
namespace TwitchLogger.IRC
namespace TwitchIrcClient.IRC
{
/// <summary>
/// Connects to a single Twitch chat channel via limited IRC implementation.

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TwitchLogger.IRC
namespace TwitchIrcClient.IRC
{
public enum IrcMessageType
{

View File

@@ -8,7 +8,7 @@ using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace TwitchLogger.IRC
namespace TwitchIrcClient.IRC
{
/// <summary>
/// Holds key-value pairs of tags. Tag names are case-sensitive and DO NOT parse

View File

@@ -5,7 +5,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TwitchLogger.IRC.Messages
namespace TwitchIrcClient.IRC.Messages
{
public class ClearChat : ReceivedMessage
{

View File

@@ -5,7 +5,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TwitchLogger.IRC.Messages
namespace TwitchIrcClient.IRC.Messages
{
/// <summary>
/// Indicates that a message was deleted.
@@ -34,7 +34,7 @@ namespace TwitchLogger.IRC.Messages
string s = TryGetTag("tmi-sent-ts");
if (!double.TryParse(s, out double d))
return null;
return DateTime.UnixEpoch.AddSeconds(d);
return DateTime.UnixEpoch.AddSeconds(d / 1000);
}
}
public ClearMsg(ReceivedMessage message) : base(message)

View File

@@ -5,11 +5,12 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TwitchLogger.IRC.Messages
namespace TwitchIrcClient.IRC.Messages
{
public class Join : ReceivedMessage
{
public string Username => Prefix?.Split('!', 2).First() ?? "";
public string ChannelName => Parameters.Single().TrimStart('#');
public Join(ReceivedMessage message) : base(message)
{
Debug.Assert(MessageType == IrcMessageType.JOIN,

View File

@@ -5,14 +5,14 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TwitchLogger.IRC.Messages
namespace TwitchIrcClient.IRC.Messages
{
public class NamReply : ReceivedMessage
{
public IEnumerable<string> Users =>
Parameters.Last().Split(' ', StringSplitOptions.TrimEntries
| StringSplitOptions.RemoveEmptyEntries);
public string ChannelName => Parameters.TakeLast(2).First().TrimStart('#');
public NamReply(ReceivedMessage message) : base(message)
{
Debug.Assert(MessageType == IrcMessageType.RPL_NAMREPLY,

View File

@@ -6,7 +6,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TwitchLogger.IRC.Messages
namespace TwitchIrcClient.IRC.Messages
{
public class Notice : ReceivedMessage
{

View File

@@ -5,11 +5,12 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TwitchLogger.IRC.Messages
namespace TwitchIrcClient.IRC.Messages
{
public class Part : ReceivedMessage
{
public string Username => Prefix?.Split('!', 2).First() ?? "";
public string ChannelName => Parameters.Single().TrimStart('#');
public Part(ReceivedMessage message) : base(message)
{
Debug.Assert(MessageType == IrcMessageType.PART,

View File

@@ -7,7 +7,7 @@ using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
namespace TwitchLogger.IRC.Messages
namespace TwitchIrcClient.IRC.Messages
{
/// <summary>
///
@@ -109,6 +109,15 @@ namespace TwitchLogger.IRC.Messages
return value == "1";
}
}
public DateTime Timestamp
{ get
{
var s = TryGetTag("tmi-sent-ts");
if (!double.TryParse(s, out double result))
throw new InvalidDataException();
return DateTime.UnixEpoch.AddSeconds(result / 1000);
}
}
/// <summary>
/// A Boolean value that indicates whether the user has site-wide commercial
/// free mode enabled
@@ -157,6 +166,7 @@ namespace TwitchLogger.IRC.Messages
/// A Boolean value that determines whether the user that sent the chat is a VIP.
/// </summary>
public bool Vip => MessageTags.ContainsKey("vip");
public bool FirstMessage => TryGetTag("first-msg") == "1";
public string ChatMessage => Parameters.Last();
public Privmsg(ReceivedMessage message) : base(message)
{

View File

@@ -6,7 +6,7 @@ using System.Reflection.Metadata.Ecma335;
using System.Text;
using System.Threading.Tasks;
namespace TwitchLogger.IRC.Messages
namespace TwitchIrcClient.IRC.Messages
{
/// <summary>
///
@@ -109,6 +109,8 @@ namespace TwitchLogger.IRC.Messages
return new Part(message);
case IrcMessageType.RPL_NAMREPLY:
return new NamReply(message);
case IrcMessageType.ROOMSTATE:
return new Roomstate(message);
default:
return message;
}

View File

@@ -6,8 +6,8 @@ using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
using TwitchLogger.IRC;
using TwitchLogger.IRC.Messages;
using TwitchIrcClient.IRC;
using TwitchIrcClient.IRC.Messages;
namespace TwitchIrcClient.IRC.Messages
{
@@ -86,6 +86,10 @@ namespace TwitchIrcClient.IRC.Messages
throw new InvalidDataException($"tag \"subs-only\" does not have a proper value: {value}");
}
}
/// <summary>
///
/// </summary>
public string ChannelName => Parameters.Last().TrimStart('#');
public Roomstate(ReceivedMessage other) : base(other)
{
Debug.Assert(MessageType == IrcMessageType.ROOMSTATE,

View File

@@ -8,7 +8,7 @@ using System.Net.WebSockets;
using System.Text;
using System.Threading.Tasks;
namespace TwitchLogger.IRC.Messages
namespace TwitchIrcClient.IRC.Messages
{
public class UserNotice : ReceivedMessage
{

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TwitchLogger.IRC
namespace TwitchIrcClient.IRC
{
/// <summary>
/// Prevents sending too many messages in a time period. A single rate limiter can

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TwitchLogger.IRC
namespace TwitchIrcClient.IRC
{
public enum UserType
{