Fixed groups & their websocket support.
This commit is contained in:
@ -21,26 +21,27 @@ namespace TwitchChatTTS.Chat.Groups
|
|||||||
|
|
||||||
public void Add(Group group)
|
public void Add(Group group)
|
||||||
{
|
{
|
||||||
_groups.Add(group.Name, group);
|
_groups.Add(group.Id, group);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Add(long chatter, string groupId)
|
public void Add(long chatterId, string groupId)
|
||||||
{
|
{
|
||||||
if (_chatters.TryGetValue(chatter, out var list))
|
if (_chatters.TryGetValue(chatterId, out var list))
|
||||||
list.Add(groupId);
|
if (!list.Contains(groupId))
|
||||||
|
list.Add(groupId);
|
||||||
else
|
else
|
||||||
_chatters.Add(chatter, new List<string>() { groupId });
|
_chatters.Add(chatterId, new List<string>() { groupId });
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Add(long chatter, ICollection<string> groupNames)
|
public void Add(long chatter, ICollection<string> groupIds)
|
||||||
{
|
{
|
||||||
if (_chatters.TryGetValue(chatter, out var list))
|
if (_chatters.TryGetValue(chatter, out var list))
|
||||||
{
|
{
|
||||||
foreach (var group in groupNames)
|
foreach (var group in groupIds)
|
||||||
list.Add(group);
|
list.Add(group);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
_chatters.Add(chatter, groupNames);
|
_chatters.Add(chatter, groupIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Clear()
|
public void Clear()
|
||||||
@ -49,9 +50,9 @@ namespace TwitchChatTTS.Chat.Groups
|
|||||||
_chatters.Clear();
|
_chatters.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Group? Get(string groupName)
|
public Group? Get(string groupId)
|
||||||
{
|
{
|
||||||
if (_groups.TryGetValue(groupName, out var group))
|
if (_groups.TryGetValue(groupId, out var group))
|
||||||
return group;
|
return group;
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -59,7 +60,9 @@ namespace TwitchChatTTS.Chat.Groups
|
|||||||
public IEnumerable<string> GetGroupNamesFor(long chatter)
|
public IEnumerable<string> GetGroupNamesFor(long chatter)
|
||||||
{
|
{
|
||||||
if (_chatters.TryGetValue(chatter, out var groups))
|
if (_chatters.TryGetValue(chatter, out var groups))
|
||||||
return groups.Select(g => _groups[g].Name);
|
return groups.Select(g => _groups.TryGetValue(g, out var group) ? group.Name : null)
|
||||||
|
.Where(g => g != null)
|
||||||
|
.Cast<string>();
|
||||||
|
|
||||||
return Array.Empty<string>();
|
return Array.Empty<string>();
|
||||||
}
|
}
|
||||||
@ -72,9 +75,9 @@ namespace TwitchChatTTS.Chat.Groups
|
|||||||
return GetPriorityFor(groups);
|
return GetPriorityFor(groups);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int GetPriorityFor(IEnumerable<string> groupNames)
|
public int GetPriorityFor(IEnumerable<string> groupIds)
|
||||||
{
|
{
|
||||||
var values = groupNames.Select(g => _groups.TryGetValue(g, out var group) ? group : null).Where(g => g != null);
|
var values = groupIds.Select(g => _groups.TryGetValue(g, out var group) ? group : null).Where(g => g != null);
|
||||||
if (values.Any())
|
if (values.Any())
|
||||||
return values.Max(g => g!.Priority);
|
return values.Max(g => g!.Priority);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -7,7 +7,7 @@ namespace TwitchChatTTS.Hermes.Socket.Requests
|
|||||||
{
|
{
|
||||||
public class UpdateGroupAck : IRequestAck
|
public class UpdateGroupAck : IRequestAck
|
||||||
{
|
{
|
||||||
public string Name => "create_group";
|
public string Name => "update_group";
|
||||||
private readonly IChatterGroupManager _groups;
|
private readonly IChatterGroupManager _groups;
|
||||||
private readonly JsonSerializerOptions _options;
|
private readonly JsonSerializerOptions _options;
|
||||||
private readonly ILogger _logger;
|
private readonly ILogger _logger;
|
||||||
|
@ -87,12 +87,16 @@ s.AddTransient<ICommandFactory, CommandFactory>();
|
|||||||
|
|
||||||
// Request acks
|
// Request acks
|
||||||
s.AddSingleton<RequestAckManager>();
|
s.AddSingleton<RequestAckManager>();
|
||||||
|
s.AddTransient<IRequestAck, CreateGroupAck>();
|
||||||
|
s.AddTransient<IRequestAck, CreateGroupChatterAck>();
|
||||||
s.AddTransient<IRequestAck, CreatePolicyAck>();
|
s.AddTransient<IRequestAck, CreatePolicyAck>();
|
||||||
s.AddTransient<IRequestAck, CreateRedeemableActionAck>();
|
s.AddTransient<IRequestAck, CreateRedeemableActionAck>();
|
||||||
s.AddTransient<IRequestAck, CreateRedemptionAck>();
|
s.AddTransient<IRequestAck, CreateRedemptionAck>();
|
||||||
s.AddTransient<IRequestAck, CreateTTSFilterAck>();
|
s.AddTransient<IRequestAck, CreateTTSFilterAck>();
|
||||||
s.AddTransient<IRequestAck, CreateTTSUserAck>();
|
s.AddTransient<IRequestAck, CreateTTSUserAck>();
|
||||||
s.AddTransient<IRequestAck, CreateTTSVoiceAck>();
|
s.AddTransient<IRequestAck, CreateTTSVoiceAck>();
|
||||||
|
s.AddTransient<IRequestAck, DeleteGroupAck>();
|
||||||
|
s.AddTransient<IRequestAck, DeleteGroupChatterAck>();
|
||||||
s.AddTransient<IRequestAck, DeletePolicyAck>();
|
s.AddTransient<IRequestAck, DeletePolicyAck>();
|
||||||
s.AddTransient<IRequestAck, DeleteRedeemableActionAck>();
|
s.AddTransient<IRequestAck, DeleteRedeemableActionAck>();
|
||||||
s.AddTransient<IRequestAck, DeleteRedemptionAck>();
|
s.AddTransient<IRequestAck, DeleteRedemptionAck>();
|
||||||
@ -110,6 +114,8 @@ s.AddTransient<IRequestAck, GetRedemptionsAck>();
|
|||||||
s.AddTransient<IRequestAck, GetTTSUsersAck>();
|
s.AddTransient<IRequestAck, GetTTSUsersAck>();
|
||||||
s.AddTransient<IRequestAck, GetTTSVoicesAck>();
|
s.AddTransient<IRequestAck, GetTTSVoicesAck>();
|
||||||
s.AddTransient<IRequestAck, GetTTSWordFiltersAck>();
|
s.AddTransient<IRequestAck, GetTTSWordFiltersAck>();
|
||||||
|
s.AddTransient<IRequestAck, UpdateGroupAck>();
|
||||||
|
s.AddTransient<IRequestAck, UpdateGroupChatterAck>();
|
||||||
s.AddTransient<IRequestAck, UpdateDefaultTTSVoiceAck>();
|
s.AddTransient<IRequestAck, UpdateDefaultTTSVoiceAck>();
|
||||||
s.AddTransient<IRequestAck, UpdatePolicyAck>();
|
s.AddTransient<IRequestAck, UpdatePolicyAck>();
|
||||||
s.AddTransient<IRequestAck, UpdateRedeemableActionAck>();
|
s.AddTransient<IRequestAck, UpdateRedeemableActionAck>();
|
||||||
|
Reference in New Issue
Block a user