From 4b322864b21615b730208cae3b80c7ffcd2c0335 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Szymon=20Gasto=C5=82?= Date: Wed, 18 Dec 2024 17:42:25 +0100 Subject: [PATCH] SearchFilter.ExcludeTag implementation --- Runtime/Classes/SearchFilter.cs | 6 ++++++ Runtime/ModIO.Implementation/Statics/FilterUtil.cs | 11 +++++++++++ 2 files changed, 17 insertions(+) diff --git a/Runtime/Classes/SearchFilter.cs b/Runtime/Classes/SearchFilter.cs index 054841a..9e50993 100644 --- a/Runtime/Classes/SearchFilter.cs +++ b/Runtime/Classes/SearchFilter.cs @@ -22,6 +22,7 @@ public class SearchFilter internal int pageSize; internal List searchPhrases = new List(); internal List tags = new List(); + internal List excludedTags = new List(); internal List users = new List(); #endregion /// @@ -33,6 +34,11 @@ public void AddSearchPhrase(string phrase) searchPhrases.Add(phrase); } + public void ExcludeTag(string tag) + { + excludedTags.Add(tag); + } + /// /// Adds a tag to be used in filtering mods for a request. /// diff --git a/Runtime/ModIO.Implementation/Statics/FilterUtil.cs b/Runtime/ModIO.Implementation/Statics/FilterUtil.cs index 7bb2b42..ec90956 100644 --- a/Runtime/ModIO.Implementation/Statics/FilterUtil.cs +++ b/Runtime/ModIO.Implementation/Statics/FilterUtil.cs @@ -43,6 +43,17 @@ public static string ConvertToURL(SearchFilter searchFilter) url += $"&{Filtering.FullTextSearch}{phrase}"; } } + + if(searchFilter.excludedTags != null && searchFilter.excludedTags.Count > 0) + { + url += "&tags-not-in="; + foreach(string tag in searchFilter.excludedTags) + { + url += $"{tag},"; + } + url = url.Trim(','); + } + // add tags to filter if(searchFilter.tags.Count > 0) {