diff --git a/internal/reader/processor/processor.go b/internal/reader/processor/processor.go index a3c53be6..8a5bdf56 100644 --- a/internal/reader/processor/processor.go +++ b/internal/reader/processor/processor.go @@ -123,7 +123,7 @@ func isBlockedEntry(feed *model.Feed, entry *model.Entry) bool { } } - if matchField(feed.BlocklistRules, entry.URL) || matchField(feed.BlocklistRules, entry.Title) || containsBlockedTag { + if matchField(feed.BlocklistRules, entry.URL) || matchField(feed.BlocklistRules, entry.Title) || matchField(feed.BlocklistRules, entry.Author) || containsBlockedTag { slog.Debug("Blocking entry based on rule", slog.Int64("entry_id", entry.ID), slog.String("entry_url", entry.URL), @@ -148,7 +148,7 @@ func isAllowedEntry(feed *model.Feed, entry *model.Entry) bool { } } - if matchField(feed.KeeplistRules, entry.URL) || matchField(feed.KeeplistRules, entry.Title) || containsAllowedTag { + if matchField(feed.KeeplistRules, entry.URL) || matchField(feed.KeeplistRules, entry.Title) || matchField(feed.KeeplistRules, entry.Author) || containsAllowedTag { slog.Debug("Allow entry based on rule", slog.Int64("entry_id", entry.ID), slog.String("entry_url", entry.URL), diff --git a/internal/reader/processor/processor_test.go b/internal/reader/processor/processor_test.go index 72469429..a0d5f6f5 100644 --- a/internal/reader/processor/processor_test.go +++ b/internal/reader/processor/processor_test.go @@ -24,6 +24,8 @@ func TestBlockingEntries(t *testing.T) { {&model.Feed{ID: 1, BlocklistRules: "(?i)example"}, &model.Entry{Title: "Example", Tags: []string{"example", "something else"}}, true}, {&model.Feed{ID: 1, BlocklistRules: "(?i)example"}, &model.Entry{Title: "Example", Tags: []string{"something different", "something else"}}, true}, {&model.Feed{ID: 1, BlocklistRules: "(?i)example"}, &model.Entry{Title: "Something different", Tags: []string{"something different", "something else"}}, false}, + {&model.Feed{ID: 1, BlocklistRules: "(?i)example"}, &model.Entry{Title: "Something different", Author: "Example"}, true}, + {&model.Feed{ID: 1, BlocklistRules: "(?i)example"}, &model.Entry{Title: "Something different", Author: "Something different"}, false}, {&model.Feed{ID: 1}, &model.Entry{Title: "No rule defined"}, false}, } @@ -50,6 +52,8 @@ func TestAllowEntries(t *testing.T) { {&model.Feed{ID: 1, KeeplistRules: "(?i)example"}, &model.Entry{Title: "Example", Tags: []string{"example", "something else"}}, true}, {&model.Feed{ID: 1, KeeplistRules: "(?i)example"}, &model.Entry{Title: "Example", Tags: []string{"something different", "something else"}}, true}, {&model.Feed{ID: 1, KeeplistRules: "(?i)example"}, &model.Entry{Title: "Something more", Tags: []string{"something different", "something else"}}, false}, + {&model.Feed{ID: 1, KeeplistRules: "(?i)example"}, &model.Entry{Title: "Something different", Author: "Example"}, true}, + {&model.Feed{ID: 1, KeeplistRules: "(?i)example"}, &model.Entry{Title: "Something different", Author: "Something different"}, false}, } for _, tc := range scenarios {