From c65c7477fd4796cc6f1dfa78b443d15b879aa833 Mon Sep 17 00:00:00 2001 From: Ludvig Lundgren Date: Sun, 2 Jan 2022 00:17:22 +0100 Subject: [PATCH] fix(filters): check except_releases properly (#62) --- internal/domain/release.go | 2 +- internal/domain/release_test.go | 80 +++++++++++++++++++++++++++++++++ 2 files changed, 81 insertions(+), 1 deletion(-) diff --git a/internal/domain/release.go b/internal/domain/release.go index 0144c3a..02621ab 100644 --- a/internal/domain/release.go +++ b/internal/domain/release.go @@ -534,7 +534,7 @@ func (r *Release) CheckFilter(filter Filter) bool { return false } - if filter.ExceptReleases != "" && !checkMultipleFilterStrings(filter.ExceptReleases, r.TorrentName, r.Clean) { + if filter.ExceptReleases != "" && checkMultipleFilterStrings(filter.ExceptReleases, r.TorrentName, r.Clean) { r.addRejection("except_releases: unwanted release") return false } diff --git a/internal/domain/release_test.go b/internal/domain/release_test.go index 2b51634..c4f9700 100644 --- a/internal/domain/release_test.go +++ b/internal/domain/release_test.go @@ -783,6 +783,86 @@ func TestRelease_CheckFilter(t *testing.T) { }, want: true, }, + { + name: "except_release_1", + fields: &Release{ + TorrentName: "Good show shift S02 NORDiC 2160p ATVP WEB-DL DDP 5.1 Atmos DV HEVC-GROUP", + Category: "TV", + Uploader: "Uploader1", + }, + args: args{ + filter: Filter{ + Enabled: true, + MatchCategories: "*tv*", + MatchUploaders: "Uploader1,Uploader2", + ExceptUploaders: "Anonymous", + Shows: "Good show shift", + MatchReleaseGroups: "GROUP", + ExceptReleases: "Good show shift", + }, + }, + want: false, + }, + { + name: "except_release_2", + fields: &Release{ + TorrentName: "Good show shift S02 NORDiC 2160p ATVP WEB-DL DDP 5.1 Atmos DV HEVC-GROUP", + Category: "TV", + Uploader: "Uploader1", + }, + args: args{ + filter: Filter{ + Enabled: true, + MatchCategories: "*tv*", + MatchUploaders: "Uploader1,Uploader2", + ExceptUploaders: "Anonymous", + Shows: "Good show shift", + MatchReleaseGroups: "GROUP", + ExceptReleases: "NORDiC", + }, + }, + want: false, + }, + { + name: "except_release_3", + fields: &Release{ + TorrentName: "Good show shift S02 2160p ATVP WEB-DL DDP 5.1 Atmos DV HEVC-GROUP", + Category: "TV", + Uploader: "Uploader1", + }, + args: args{ + filter: Filter{ + Enabled: true, + MatchCategories: "*tv*", + MatchUploaders: "Uploader1,Uploader2", + ExceptUploaders: "Anonymous", + Shows: "Good show shift", + MatchReleaseGroups: "GROUP", + ExceptReleases: "NORDiC", + }, + }, + want: true, + }, + { + name: "except_release_4", + fields: &Release{ + TorrentName: "Good show shift S02 2160p ATVP WEB-DL DDP 5.1 Atmos DV HEVC-GROUP", + Category: "TV", + Uploader: "Uploader1", + }, + args: args{ + filter: Filter{ + Enabled: true, + MatchCategories: "*tv*", + MatchUploaders: "Uploader1,Uploader2", + ExceptUploaders: "Anonymous", + Shows: "Good show shift", + MatchReleaseGroups: "GROUP", + ExceptReleases: "NORDiC,*shift*", + }, + }, + want: false, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) {