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) {