Added groups & permissions. Fixed 7tv reconnection. Added more subcommands for refresh.

This commit is contained in:
Tom
2024-07-12 17:36:09 +00:00
parent af3763a837
commit 9fb966474f
37 changed files with 806 additions and 159 deletions

43
Seven/ChatterDatabase.cs Normal file
View File

@@ -0,0 +1,43 @@
namespace TwitchChatTTS.Seven
{
public class ChatterDatabase
{
private readonly IDictionary<string, long> _chatters;
//private readonly HashSet<long> _chatterIds;
public ChatterDatabase()
{
_chatters = new Dictionary<string, long>();
//_chatterIds = new HashSet<long>();
}
public void Add(string username, long chatterId)
{
// if (_chatterIds.TryGetValue(chatterId, out var _)) {
// // TODO: send message to update username for id.
// } else
// _chatterIds.Add(chatterId);
if (_chatters.ContainsKey(username))
_chatters[username] = chatterId;
else
_chatters.Add(username, chatterId);
}
public void Clear()
{
_chatters.Clear();
}
public long? Get(string emoteName)
{
return _chatters.TryGetValue(emoteName, out var chatterId) ? chatterId : null;
}
public void Remove(string emoteName)
{
_chatters.Remove(emoteName);
}
}
}

View File

@@ -30,8 +30,7 @@ namespace TwitchChatTTS.Seven
public void Remove(string emoteName)
{
if (_emotes.ContainsKey(emoteName))
_emotes.Remove(emoteName);
_emotes.Remove(emoteName);
}
}

View File

@@ -18,7 +18,7 @@ namespace TwitchChatTTS.Seven.Socket.Handlers
public int OperationCode { get; } = 7;
public EndOfStreamHandler(ILogger logger, User user, IServiceProvider serviceProvider)
public EndOfStreamHandler(User user, IServiceProvider serviceProvider, ILogger logger)
{
_logger = logger;
_user = user;
@@ -76,7 +76,10 @@ namespace TwitchChatTTS.Seven.Socket.Handlers
}
if (string.IsNullOrWhiteSpace(_user.SevenEmoteSetId))
{
_logger.Warning("Connected to 7tv websocket previously, but no emote set id was set.");
return;
}
var context = _serviceProvider.GetRequiredService<ReconnectContext>();
if (_reconnectDelay[code] > 0)
@@ -90,11 +93,11 @@ namespace TwitchChatTTS.Seven.Socket.Handlers
if (context.SessionId != null)
{
await sender.Send(34, new ResumeMessage() { SessionId = context.SessionId });
_logger.Information("Resumed connection to 7tv websocket.");
_logger.Debug("Resumed connection to 7tv websocket.");
}
else
{
_logger.Information("Resumed connection to 7tv websocket on a different session.");
_logger.Debug("Resumed connection to 7tv websocket on a different session.");
}
}
}