Make use of go≥1.21 slices package instead of hand-rolled loops
This makes the code a tad smaller, moderner, and maybe even marginally faster, yay!
This commit is contained in:
parent
2be5051b19
commit
b48ad6dbfb
2 changed files with 9 additions and 20 deletions
|
@ -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",
|
||||
|
|
|
@ -8,6 +8,7 @@ import (
|
|||
"html/template"
|
||||
"math"
|
||||
"net/mail"
|
||||
"slices"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
|
@ -72,12 +73,7 @@ func (f *funcMap) Map() template.FuncMap {
|
|||
return link
|
||||
},
|
||||
"mustBeProxyfied": func(mediaType string) bool {
|
||||
for _, t := range config.Opts.ProxyMediaTypes() {
|
||||
if t == mediaType {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
return slices.Contains(config.Opts.ProxyMediaTypes(), mediaType)
|
||||
},
|
||||
"domain": func(websiteURL string) string {
|
||||
return urllib.Domain(websiteURL)
|
||||
|
|
Loading…
Reference in a new issue