using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Threading.Tasks; using Jackett.Common.Indexers.Abstract; using Jackett.Common.Models; using Jackett.Common.Services.Interfaces; using NLog; using WebClient = Jackett.Common.Utils.Clients.WebClient; namespace Jackett.Common.Indexers { [ExcludeFromCodeCoverage] public class Redacted : GazelleTracker { protected override string DownloadUrl => SiteLink + "torrents.php?action=download&usetoken=" + (useTokens ? "1" : "0") + "&id="; public Redacted(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) : base(id: "redacted", name: "Redacted", description: "A music tracker", link: "https://redacted.ch/", caps: new TorznabCapabilities { TvSearchParams = new List { TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep }, MovieSearchParams = new List { MovieSearchParam.Q }, MusicSearchParams = new List { MusicSearchParam.Q, MusicSearchParam.Album, MusicSearchParam.Artist, MusicSearchParam.Label, MusicSearchParam.Year }, BookSearchParams = new List { BookSearchParam.Q } }, configService: configService, client: wc, logger: l, p: ps, cs: cs, supportsFreeleechTokens: true, has2Fa: true, useApiKey: false ) { Language = "en-us"; Type = "private"; webclient.EmulateBrowser = false; // Issue #9751 AddCategoryMapping(1, TorznabCatType.Audio, "Music"); AddCategoryMapping(2, TorznabCatType.PC, "Applications"); AddCategoryMapping(3, TorznabCatType.Books, "E-Books"); AddCategoryMapping(4, TorznabCatType.AudioAudiobook, "Audiobooks"); AddCategoryMapping(5, TorznabCatType.Movies, "E-Learning Videos"); AddCategoryMapping(6, TorznabCatType.TV, "Comedy"); AddCategoryMapping(7, TorznabCatType.Books, "Comics"); } protected override async Task> PerformQuery(TorznabQuery query) { var results = await base.PerformQuery(query); // results must contain search terms results = results.Where(release => query.MatchQueryStringAND(release.Title)); return results; } } }