Fixed command permissions. Moved to using Twitch's EventSub via websockets. Cleaned some code up. Added detection for subscription messages (no TTS), message deletion, full or partial chat clear. Removes messages from TTS queue if applicable. Added command aliases for static parameters. Word filters use compiled regex if possible. Fixed TTS voice deletion.
This commit is contained in:
12
User.cs
12
User.cs
@@ -16,16 +16,16 @@ namespace TwitchChatTTS
|
||||
|
||||
public string DefaultTTSVoice { get; set; }
|
||||
// voice id -> voice name
|
||||
public IDictionary<string, string> VoicesAvailable { get => _voicesAvailable; set { _voicesAvailable = value; WordFilterRegex = GenerateEnabledVoicesRegex(); } }
|
||||
public IDictionary<string, string> VoicesAvailable { get => _voicesAvailable; set { _voicesAvailable = value; VoiceNameRegex = GenerateEnabledVoicesRegex(); } }
|
||||
// chatter/twitch id -> voice id
|
||||
public IDictionary<long, string> VoicesSelected { get; set; }
|
||||
// voice names
|
||||
public HashSet<string> VoicesEnabled { get => _voicesEnabled; set { _voicesEnabled = value; WordFilterRegex = GenerateEnabledVoicesRegex(); } }
|
||||
public HashSet<string> VoicesEnabled { get => _voicesEnabled; set { _voicesEnabled = value; VoiceNameRegex = GenerateEnabledVoicesRegex(); } }
|
||||
|
||||
public IDictionary<string, TTSUsernameFilter> ChatterFilters { get; set; }
|
||||
public IList<TTSWordFilter> RegexFilters { get; set; }
|
||||
public HashSet<long> Chatters { get; set; }
|
||||
public TTSWordFilter[] RegexFilters { get; set; }
|
||||
[JsonIgnore]
|
||||
public Regex? WordFilterRegex { get; set; }
|
||||
public Regex? VoiceNameRegex { get; set; }
|
||||
|
||||
private IDictionary<string, string> _voicesAvailable;
|
||||
private HashSet<string> _voicesEnabled;
|
||||
@@ -37,7 +37,7 @@ namespace TwitchChatTTS
|
||||
return null;
|
||||
|
||||
var enabledVoicesString = string.Join("|", VoicesAvailable.Where(v => VoicesEnabled == null || !VoicesEnabled.Any() || VoicesEnabled.Contains(v.Value)).Select(v => v.Value));
|
||||
return new Regex($@"\b({enabledVoicesString})\:(.*?)(?=\Z|\b(?:{enabledVoicesString})\:)", RegexOptions.IgnoreCase);
|
||||
return new Regex($@"\b({enabledVoicesString})\:(.*?)(?=\Z|\b(?:{enabledVoicesString})\:)", RegexOptions.IgnoreCase | RegexOptions.Compiled);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user