mirror of
https://github.com/Ikatono/TwitchIrcClient.git
synced 2025-10-29 04:56:12 -05:00
Fixed namespaces
This commit is contained in:
@@ -5,7 +5,7 @@ using System.Linq;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace TwitchLogger.IRC
|
namespace TwitchIrcClient.IRC
|
||||||
{
|
{
|
||||||
public record struct Badge(string Name, string Version)
|
public record struct Badge(string Name, string Version)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3,9 +3,9 @@ using System.Collections.Generic;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using TwitchLogger.IRC.Messages;
|
using TwitchIrcClient.IRC.Messages;
|
||||||
|
|
||||||
namespace TwitchLogger.IRC
|
namespace TwitchIrcClient.IRC
|
||||||
{
|
{
|
||||||
//public class IrcMessageEventArgs(ReceivedMessage message) : EventArgs
|
//public class IrcMessageEventArgs(ReceivedMessage message) : EventArgs
|
||||||
//{
|
//{
|
||||||
|
|||||||
@@ -13,9 +13,9 @@ using System.Threading;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Timers;
|
using System.Timers;
|
||||||
using TwitchIrcClient.IRC.Messages;
|
using TwitchIrcClient.IRC.Messages;
|
||||||
using TwitchLogger.IRC.Messages;
|
using TwitchIrcClient.IRC.Messages;
|
||||||
|
|
||||||
namespace TwitchLogger.IRC
|
namespace TwitchIrcClient.IRC
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Connects to a single Twitch chat channel via limited IRC implementation.
|
/// Connects to a single Twitch chat channel via limited IRC implementation.
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ using System.Linq;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace TwitchLogger.IRC
|
namespace TwitchIrcClient.IRC
|
||||||
{
|
{
|
||||||
public enum IrcMessageType
|
public enum IrcMessageType
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ using System.Security.Cryptography;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace TwitchLogger.IRC
|
namespace TwitchIrcClient.IRC
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Holds key-value pairs of tags. Tag names are case-sensitive and DO NOT parse
|
/// Holds key-value pairs of tags. Tag names are case-sensitive and DO NOT parse
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ using System.Linq;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace TwitchLogger.IRC.Messages
|
namespace TwitchIrcClient.IRC.Messages
|
||||||
{
|
{
|
||||||
public class ClearChat : ReceivedMessage
|
public class ClearChat : ReceivedMessage
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ using System.Linq;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace TwitchLogger.IRC.Messages
|
namespace TwitchIrcClient.IRC.Messages
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Indicates that a message was deleted.
|
/// Indicates that a message was deleted.
|
||||||
@@ -34,7 +34,7 @@ namespace TwitchLogger.IRC.Messages
|
|||||||
string s = TryGetTag("tmi-sent-ts");
|
string s = TryGetTag("tmi-sent-ts");
|
||||||
if (!double.TryParse(s, out double d))
|
if (!double.TryParse(s, out double d))
|
||||||
return null;
|
return null;
|
||||||
return DateTime.UnixEpoch.AddSeconds(d);
|
return DateTime.UnixEpoch.AddSeconds(d / 1000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public ClearMsg(ReceivedMessage message) : base(message)
|
public ClearMsg(ReceivedMessage message) : base(message)
|
||||||
|
|||||||
@@ -5,11 +5,12 @@ using System.Linq;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace TwitchLogger.IRC.Messages
|
namespace TwitchIrcClient.IRC.Messages
|
||||||
{
|
{
|
||||||
public class Join : ReceivedMessage
|
public class Join : ReceivedMessage
|
||||||
{
|
{
|
||||||
public string Username => Prefix?.Split('!', 2).First() ?? "";
|
public string Username => Prefix?.Split('!', 2).First() ?? "";
|
||||||
|
public string ChannelName => Parameters.Single().TrimStart('#');
|
||||||
public Join(ReceivedMessage message) : base(message)
|
public Join(ReceivedMessage message) : base(message)
|
||||||
{
|
{
|
||||||
Debug.Assert(MessageType == IrcMessageType.JOIN,
|
Debug.Assert(MessageType == IrcMessageType.JOIN,
|
||||||
|
|||||||
@@ -5,14 +5,14 @@ using System.Linq;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace TwitchLogger.IRC.Messages
|
namespace TwitchIrcClient.IRC.Messages
|
||||||
{
|
{
|
||||||
public class NamReply : ReceivedMessage
|
public class NamReply : ReceivedMessage
|
||||||
{
|
{
|
||||||
public IEnumerable<string> Users =>
|
public IEnumerable<string> Users =>
|
||||||
Parameters.Last().Split(' ', StringSplitOptions.TrimEntries
|
Parameters.Last().Split(' ', StringSplitOptions.TrimEntries
|
||||||
| StringSplitOptions.RemoveEmptyEntries);
|
| StringSplitOptions.RemoveEmptyEntries);
|
||||||
|
public string ChannelName => Parameters.TakeLast(2).First().TrimStart('#');
|
||||||
public NamReply(ReceivedMessage message) : base(message)
|
public NamReply(ReceivedMessage message) : base(message)
|
||||||
{
|
{
|
||||||
Debug.Assert(MessageType == IrcMessageType.RPL_NAMREPLY,
|
Debug.Assert(MessageType == IrcMessageType.RPL_NAMREPLY,
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ using System.Linq;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace TwitchLogger.IRC.Messages
|
namespace TwitchIrcClient.IRC.Messages
|
||||||
{
|
{
|
||||||
public class Notice : ReceivedMessage
|
public class Notice : ReceivedMessage
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -5,11 +5,12 @@ using System.Linq;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace TwitchLogger.IRC.Messages
|
namespace TwitchIrcClient.IRC.Messages
|
||||||
{
|
{
|
||||||
public class Part : ReceivedMessage
|
public class Part : ReceivedMessage
|
||||||
{
|
{
|
||||||
public string Username => Prefix?.Split('!', 2).First() ?? "";
|
public string Username => Prefix?.Split('!', 2).First() ?? "";
|
||||||
|
public string ChannelName => Parameters.Single().TrimStart('#');
|
||||||
public Part(ReceivedMessage message) : base(message)
|
public Part(ReceivedMessage message) : base(message)
|
||||||
{
|
{
|
||||||
Debug.Assert(MessageType == IrcMessageType.PART,
|
Debug.Assert(MessageType == IrcMessageType.PART,
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ using System.Text;
|
|||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace TwitchLogger.IRC.Messages
|
namespace TwitchIrcClient.IRC.Messages
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
@@ -109,6 +109,15 @@ namespace TwitchLogger.IRC.Messages
|
|||||||
return value == "1";
|
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>
|
/// <summary>
|
||||||
/// A Boolean value that indicates whether the user has site-wide commercial
|
/// A Boolean value that indicates whether the user has site-wide commercial
|
||||||
/// free mode enabled
|
/// 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.
|
/// A Boolean value that determines whether the user that sent the chat is a VIP.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool Vip => MessageTags.ContainsKey("vip");
|
public bool Vip => MessageTags.ContainsKey("vip");
|
||||||
|
public bool FirstMessage => TryGetTag("first-msg") == "1";
|
||||||
public string ChatMessage => Parameters.Last();
|
public string ChatMessage => Parameters.Last();
|
||||||
public Privmsg(ReceivedMessage message) : base(message)
|
public Privmsg(ReceivedMessage message) : base(message)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ using System.Reflection.Metadata.Ecma335;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace TwitchLogger.IRC.Messages
|
namespace TwitchIrcClient.IRC.Messages
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
@@ -109,6 +109,8 @@ namespace TwitchLogger.IRC.Messages
|
|||||||
return new Part(message);
|
return new Part(message);
|
||||||
case IrcMessageType.RPL_NAMREPLY:
|
case IrcMessageType.RPL_NAMREPLY:
|
||||||
return new NamReply(message);
|
return new NamReply(message);
|
||||||
|
case IrcMessageType.ROOMSTATE:
|
||||||
|
return new Roomstate(message);
|
||||||
default:
|
default:
|
||||||
return message;
|
return message;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ using System.Linq;
|
|||||||
using System.Security.Cryptography.X509Certificates;
|
using System.Security.Cryptography.X509Certificates;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using TwitchLogger.IRC;
|
using TwitchIrcClient.IRC;
|
||||||
using TwitchLogger.IRC.Messages;
|
using TwitchIrcClient.IRC.Messages;
|
||||||
|
|
||||||
namespace 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}");
|
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)
|
public Roomstate(ReceivedMessage other) : base(other)
|
||||||
{
|
{
|
||||||
Debug.Assert(MessageType == IrcMessageType.ROOMSTATE,
|
Debug.Assert(MessageType == IrcMessageType.ROOMSTATE,
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ using System.Net.WebSockets;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace TwitchLogger.IRC.Messages
|
namespace TwitchIrcClient.IRC.Messages
|
||||||
{
|
{
|
||||||
public class UserNotice : ReceivedMessage
|
public class UserNotice : ReceivedMessage
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ using System.Linq;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace TwitchLogger.IRC
|
namespace TwitchIrcClient.IRC
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Prevents sending too many messages in a time period. A single rate limiter can
|
/// Prevents sending too many messages in a time period. A single rate limiter can
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ using System.Linq;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace TwitchLogger.IRC
|
namespace TwitchIrcClient.IRC
|
||||||
{
|
{
|
||||||
public enum UserType
|
public enum UserType
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user