From b48ad6dbfb31ce113313c3120fd98a19522da699 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Sat, 24 Feb 2024 14:12:07 +0100 Subject: Make use of go≥1.21 slices package instead of hand-rolled loops MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This makes the code a tad smaller, moderner, and maybe even marginally faster, yay! --- internal/reader/processor/processor.go | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) (limited to 'internal/reader/processor/processor.go') diff --git a/internal/reader/processor/processor.go b/internal/reader/processor/processor.go index 8a5bdf56..9068d4c2 100644 --- a/internal/reader/processor/processor.go +++ b/internal/reader/processor/processor.go @@ -8,6 +8,7 @@ import ( "fmt" "log/slog" "regexp" + "slices" "strconv" "time" @@ -115,13 +116,9 @@ func ProcessFeedEntries(store *storage.Storage, feed *model.Feed, user *model.Us func isBlockedEntry(feed *model.Feed, entry *model.Entry) bool { if feed.BlocklistRules != "" { - var containsBlockedTag bool = false - for _, tag := range entry.Tags { - if matchField(feed.BlocklistRules, tag) { - containsBlockedTag = true - break - } - } + containsBlockedTag := slices.ContainsFunc(entry.Tags, func(tag string) bool { + return matchField(feed.BlocklistRules, tag) + }) if matchField(feed.BlocklistRules, entry.URL) || matchField(feed.BlocklistRules, entry.Title) || matchField(feed.BlocklistRules, entry.Author) || containsBlockedTag { slog.Debug("Blocking entry based on rule", @@ -140,13 +137,9 @@ func isBlockedEntry(feed *model.Feed, entry *model.Entry) bool { func isAllowedEntry(feed *model.Feed, entry *model.Entry) bool { if feed.KeeplistRules != "" { - var containsAllowedTag bool = false - for _, tag := range entry.Tags { - if matchField(feed.KeeplistRules, tag) { - containsAllowedTag = true - break - } - } + containsAllowedTag := slices.ContainsFunc(entry.Tags, func(tag string) bool { + return matchField(feed.KeeplistRules, tag) + }) if matchField(feed.KeeplistRules, entry.URL) || matchField(feed.KeeplistRules, entry.Title) || matchField(feed.KeeplistRules, entry.Author) || containsAllowedTag { slog.Debug("Allow entry based on rule", -- cgit v1.2.3