mirror of
https://github.com/Tyrrrz/DiscordChatExporter.git
synced 2024-09-19 20:28:46 -04:00
parent
8ecc2940b0
commit
b7dca87fb9
2 changed files with 25 additions and 0 deletions
|
@ -44,6 +44,12 @@ internal static class FilterGrammar
|
||||||
.Select(v => (MessageFilter) new MentionsMessageFilter(v))
|
.Select(v => (MessageFilter) new MentionsMessageFilter(v))
|
||||||
.Named("mentions:<value>");
|
.Named("mentions:<value>");
|
||||||
|
|
||||||
|
private static readonly TextParser<MessageFilter> ReactionFilter = Span
|
||||||
|
.EqualToIgnoreCase("reaction:")
|
||||||
|
.IgnoreThen(String)
|
||||||
|
.Select(v => (MessageFilter) new ReactionMessageFilter(v))
|
||||||
|
.Named("reaction:<value>");
|
||||||
|
|
||||||
private static readonly TextParser<MessageFilter> HasFilter = Span
|
private static readonly TextParser<MessageFilter> HasFilter = Span
|
||||||
.EqualToIgnoreCase("has:")
|
.EqualToIgnoreCase("has:")
|
||||||
.IgnoreThen(Parse.OneOf(
|
.IgnoreThen(Parse.OneOf(
|
||||||
|
@ -72,6 +78,7 @@ internal static class FilterGrammar
|
||||||
GroupedFilter,
|
GroupedFilter,
|
||||||
FromFilter,
|
FromFilter,
|
||||||
MentionsFilter,
|
MentionsFilter,
|
||||||
|
ReactionFilter,
|
||||||
HasFilter,
|
HasFilter,
|
||||||
ContainsFilter
|
ContainsFilter
|
||||||
);
|
);
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
using DiscordChatExporter.Core.Discord.Data;
|
||||||
|
|
||||||
|
namespace DiscordChatExporter.Core.Exporting.Filtering;
|
||||||
|
|
||||||
|
internal class ReactionMessageFilter : MessageFilter
|
||||||
|
{
|
||||||
|
private readonly string _value;
|
||||||
|
|
||||||
|
public ReactionMessageFilter(string value) => _value = value;
|
||||||
|
|
||||||
|
public override bool IsMatch(Message message) => message.Reactions.Any(r =>
|
||||||
|
string.Equals(_value, r.Emoji.Id?.ToString(), StringComparison.OrdinalIgnoreCase) ||
|
||||||
|
string.Equals(_value, r.Emoji.Name, StringComparison.OrdinalIgnoreCase) ||
|
||||||
|
string.Equals(_value, r.Emoji.Code, StringComparison.OrdinalIgnoreCase)
|
||||||
|
);
|
||||||
|
}
|
Loading…
Reference in a new issue