Fixed TTS using StreamElements. Fixed several issues.
This commit is contained in:
@@ -110,37 +110,29 @@ namespace TwitchChatTTS.Twitch.Redemptions
|
||||
|
||||
private void Add(string twitchRedemptionId, string redemptionId)
|
||||
{
|
||||
_rwls.EnterWriteLock();
|
||||
try
|
||||
if (!_redeems.TryGetValue(twitchRedemptionId, out var redeems))
|
||||
_redeems.Add(twitchRedemptionId, redeems = new List<string>());
|
||||
|
||||
var item = _redemptions.TryGetValue(redemptionId, out var r) ? r : null;
|
||||
if (item == null)
|
||||
return;
|
||||
|
||||
var redemptions = redeems.Select(r => _redemptions.TryGetValue(r, out var rr) ? rr : null);
|
||||
bool added = false;
|
||||
for (int i = 0; i < redeems.Count; i++)
|
||||
{
|
||||
if (!_redeems.TryGetValue(twitchRedemptionId, out var redeems))
|
||||
_redeems.Add(twitchRedemptionId, redeems = new List<string>());
|
||||
|
||||
var item = _redemptions.TryGetValue(redemptionId, out var r) ? r : null;
|
||||
if (item == null)
|
||||
return;
|
||||
|
||||
var redemptions = redeems.Select(r => _redemptions.TryGetValue(r, out var rr) ? rr : null);
|
||||
bool added = false;
|
||||
for (int i = 0; i < redeems.Count; i++)
|
||||
if (redeems[i] != null && _redemptions.TryGetValue(redeems[i], out var rr))
|
||||
{
|
||||
if (redeems[i] != null && _redemptions.TryGetValue(redeems[i], out var rr))
|
||||
if (item.Order > rr.Order)
|
||||
{
|
||||
if (item.Order > rr.Order)
|
||||
{
|
||||
redeems.Insert(i, redemptionId);
|
||||
added = true;
|
||||
break;
|
||||
}
|
||||
redeems.Insert(i, redemptionId);
|
||||
added = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!added)
|
||||
redeems.Add(redemptionId);
|
||||
}
|
||||
finally
|
||||
{
|
||||
_rwls.ExitWriteLock();
|
||||
}
|
||||
if (!added)
|
||||
redeems.Add(redemptionId);
|
||||
_logger.Debug($"Added redemption action [redemption id: {redemptionId}][twitch redemption id: {twitchRedemptionId}]");
|
||||
}
|
||||
|
||||
|
||||
@@ -120,8 +120,7 @@ namespace TwitchChatTTS.Twitch.Socket.Handlers
|
||||
private int GetTotalBits(TwitchChatFragment[] fragments)
|
||||
{
|
||||
return fragments.Where(f => f.Type == "cheermote" && f.Cheermote != null)
|
||||
.Select(f => f.Cheermote!.Bits)
|
||||
.Sum();
|
||||
.Sum(f => f.Cheermote!.Bits);
|
||||
}
|
||||
|
||||
private string GetPermissionPath(string? customRewardId, int bits)
|
||||
|
||||
@@ -142,14 +142,14 @@ namespace TwitchChatTTS.Twitch.Socket
|
||||
_logger.Warning($"Twitch client has been identified, but isn't main or backup [client: {client.UID}][main: {_identified.UID}][backup: {_backup?.UID}]");
|
||||
clientDisconnect = true;
|
||||
}
|
||||
|
||||
if (clientDisconnect)
|
||||
client.DisconnectAsync(new SocketDisconnectionEventArgs("Closed", "No need for a tertiary client.")).Wait();
|
||||
}
|
||||
finally
|
||||
{
|
||||
_mutex.ReleaseMutex();
|
||||
}
|
||||
|
||||
if (clientDisconnect)
|
||||
await client.DisconnectAsync(new SocketDisconnectionEventArgs("Closed", "No need for a tertiary client."));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -183,7 +183,7 @@ namespace TwitchChatTTS.Twitch.Socket
|
||||
while (current < total)
|
||||
{
|
||||
var size = Encoding.UTF8.GetBytes(content.Substring(current), array);
|
||||
await _socket!.SendAsync(array, WebSocketMessageType.Text, current + size >= total, _cts!.Token);
|
||||
await _socket!.SendAsync(array, WebSocketMessageType.Text, current + size >= total, CancellationToken.None);
|
||||
current += size;
|
||||
}
|
||||
_logger.Debug("Twitch TX #" + type + ": " + content);
|
||||
|
||||
Reference in New Issue
Block a user