diff --git a/src/Jackett.Common/Indexers/Abstract/AvistazTracker.cs b/src/Jackett.Common/Indexers/Abstract/AvistazTracker.cs index 9a8675b9a..ea45b2291 100644 --- a/src/Jackett.Common/Indexers/Abstract/AvistazTracker.cs +++ b/src/Jackett.Common/Indexers/Abstract/AvistazTracker.cs @@ -137,9 +137,8 @@ namespace Jackett.Common.Indexers.Abstract return cats; } - protected AvistazTracker(IIndexerConfigurationService configService, WebClient client, Logger logger, IProtectionService p, ICacheService cs, TorznabCapabilities caps) - : base(caps: caps, - configService: configService, + protected AvistazTracker(IIndexerConfigurationService configService, WebClient client, Logger logger, IProtectionService p, ICacheService cs) + : base(configService: configService, client: client, logger: logger, p: p, diff --git a/src/Jackett.Common/Indexers/Abstract/CouchPotatoTracker.cs b/src/Jackett.Common/Indexers/Abstract/CouchPotatoTracker.cs index cd967151f..044513977 100644 --- a/src/Jackett.Common/Indexers/Abstract/CouchPotatoTracker.cs +++ b/src/Jackett.Common/Indexers/Abstract/CouchPotatoTracker.cs @@ -26,10 +26,8 @@ namespace Jackett.Common.Indexers.Abstract } protected CouchPotatoTracker(IIndexerConfigurationService configService, WebClient client, Logger logger, - IProtectionService p, ICacheService cs, TorznabCapabilities caps, - ConfigurationData configData, string endpoint) - : base(caps: caps, - configService: configService, + IProtectionService p, ICacheService cs, ConfigurationData configData, string endpoint) + : base(configService: configService, client: client, logger: logger, p: p, diff --git a/src/Jackett.Common/Indexers/Abstract/GazelleTracker.cs b/src/Jackett.Common/Indexers/Abstract/GazelleTracker.cs index 06dae04f2..557c2dffb 100644 --- a/src/Jackett.Common/Indexers/Abstract/GazelleTracker.cs +++ b/src/Jackett.Common/Indexers/Abstract/GazelleTracker.cs @@ -50,11 +50,11 @@ namespace Jackett.Common.Indexers.Abstract } protected GazelleTracker(IIndexerConfigurationService configService, WebClient client, Logger logger, - IProtectionService p, ICacheService cs, TorznabCapabilities caps, - bool supportsFreeleechTokens = false, bool supportsFreeleechOnly = false, bool imdbInTags = false, bool has2Fa = false, - bool useApiKey = false, bool usePassKey = false, bool useAuthKey = false, string instructionMessageOptional = null) - : base(caps: caps, - configService: configService, + IProtectionService p, ICacheService cs, + bool supportsFreeleechTokens = false, bool supportsFreeleechOnly = false, + bool imdbInTags = false, bool has2Fa = false, bool useApiKey = false, + bool usePassKey = false, bool useAuthKey = false, string instructionMessageOptional = null) + : base(configService: configService, client: client, logger: logger, p: p, diff --git a/src/Jackett.Common/Indexers/Abstract/SpeedAppTracker.cs b/src/Jackett.Common/Indexers/Abstract/SpeedAppTracker.cs index fe3ba0a63..2edeeb036 100644 --- a/src/Jackett.Common/Indexers/Abstract/SpeedAppTracker.cs +++ b/src/Jackett.Common/Indexers/Abstract/SpeedAppTracker.cs @@ -37,9 +37,8 @@ namespace Jackett.Common.Indexers.Abstract private new ConfigurationDataBasicLoginWithEmail configData => (ConfigurationDataBasicLoginWithEmail)base.configData; - protected SpeedAppTracker(IIndexerConfigurationService configService, WebClient client, Logger logger, IProtectionService p, ICacheService cs, TorznabCapabilities caps) - : base(caps: caps, - configService: configService, + protected SpeedAppTracker(IIndexerConfigurationService configService, WebClient client, Logger logger, IProtectionService p, ICacheService cs) + : base(configService: configService, client: client, logger: logger, p: p, diff --git a/src/Jackett.Common/Indexers/AlphaRatio.cs b/src/Jackett.Common/Indexers/AlphaRatio.cs index 31e871439..2ae369c8b 100644 --- a/src/Jackett.Common/Indexers/AlphaRatio.cs +++ b/src/Jackett.Common/Indexers/AlphaRatio.cs @@ -19,21 +19,11 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + public AlphaRatio(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, - ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep - }, - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId - } - }, - configService: configService, + ICacheService cs) + : base(configService: configService, client: wc, logger: l, p: ps, @@ -42,36 +32,54 @@ namespace Jackett.Common.Indexers supportsFreeleechOnly: true, imdbInTags: true) { - AddCategoryMapping(1, TorznabCatType.TVSD, "TvSD"); - AddCategoryMapping(2, TorznabCatType.TVHD, "TvHD"); - AddCategoryMapping(3, TorznabCatType.TVUHD, "TvUHD"); - AddCategoryMapping(4, TorznabCatType.TVSD, "TvDVDRip"); - AddCategoryMapping(5, TorznabCatType.TVSD, "TvPackSD"); - AddCategoryMapping(6, TorznabCatType.TVHD, "TvPackHD"); - AddCategoryMapping(7, TorznabCatType.TVUHD, "TvPackUHD"); - AddCategoryMapping(8, TorznabCatType.MoviesSD, "MovieSD"); - AddCategoryMapping(9, TorznabCatType.MoviesHD, "MovieHD"); - AddCategoryMapping(10, TorznabCatType.MoviesUHD, "MovieUHD"); - AddCategoryMapping(11, TorznabCatType.MoviesSD, "MoviePackSD"); - AddCategoryMapping(12, TorznabCatType.MoviesHD, "MoviePackHD"); - AddCategoryMapping(13, TorznabCatType.MoviesUHD, "MoviePackUHD"); - AddCategoryMapping(14, TorznabCatType.XXX, "MovieXXX"); - AddCategoryMapping(15, TorznabCatType.MoviesBluRay, "Bluray"); - AddCategoryMapping(16, TorznabCatType.TVAnime, "AnimeSD"); - AddCategoryMapping(17, TorznabCatType.TVAnime, "AnimeHD"); - AddCategoryMapping(18, TorznabCatType.PCGames, "GamesPC"); - AddCategoryMapping(19, TorznabCatType.ConsoleXBox, "GamesxBox"); - AddCategoryMapping(20, TorznabCatType.ConsolePS4, "GamesPS"); - AddCategoryMapping(21, TorznabCatType.ConsoleWii, "GamesNin"); - AddCategoryMapping(22, TorznabCatType.PC0day, "AppsWindows"); - AddCategoryMapping(23, TorznabCatType.PCMac, "AppsMAC"); - AddCategoryMapping(24, TorznabCatType.PC0day, "AppsLinux"); - AddCategoryMapping(25, TorznabCatType.PCMobileOther, "AppsMobile"); - AddCategoryMapping(26, TorznabCatType.XXX, "0dayXXX"); - AddCategoryMapping(27, TorznabCatType.Books, "eBook"); - AddCategoryMapping(28, TorznabCatType.AudioAudiobook, "AudioBook"); - AddCategoryMapping(29, TorznabCatType.AudioOther, "Music"); - AddCategoryMapping(30, TorznabCatType.Other, "Misc"); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId + } + }; + + caps.Categories.AddCategoryMapping(1, TorznabCatType.TVSD, "TvSD"); + caps.Categories.AddCategoryMapping(2, TorznabCatType.TVHD, "TvHD"); + caps.Categories.AddCategoryMapping(3, TorznabCatType.TVUHD, "TvUHD"); + caps.Categories.AddCategoryMapping(4, TorznabCatType.TVSD, "TvDVDRip"); + caps.Categories.AddCategoryMapping(5, TorznabCatType.TVSD, "TvPackSD"); + caps.Categories.AddCategoryMapping(6, TorznabCatType.TVHD, "TvPackHD"); + caps.Categories.AddCategoryMapping(7, TorznabCatType.TVUHD, "TvPackUHD"); + caps.Categories.AddCategoryMapping(8, TorznabCatType.MoviesSD, "MovieSD"); + caps.Categories.AddCategoryMapping(9, TorznabCatType.MoviesHD, "MovieHD"); + caps.Categories.AddCategoryMapping(10, TorznabCatType.MoviesUHD, "MovieUHD"); + caps.Categories.AddCategoryMapping(11, TorznabCatType.MoviesSD, "MoviePackSD"); + caps.Categories.AddCategoryMapping(12, TorznabCatType.MoviesHD, "MoviePackHD"); + caps.Categories.AddCategoryMapping(13, TorznabCatType.MoviesUHD, "MoviePackUHD"); + caps.Categories.AddCategoryMapping(14, TorznabCatType.XXX, "MovieXXX"); + caps.Categories.AddCategoryMapping(15, TorznabCatType.MoviesBluRay, "Bluray"); + caps.Categories.AddCategoryMapping(16, TorznabCatType.TVAnime, "AnimeSD"); + caps.Categories.AddCategoryMapping(17, TorznabCatType.TVAnime, "AnimeHD"); + caps.Categories.AddCategoryMapping(18, TorznabCatType.PCGames, "GamesPC"); + caps.Categories.AddCategoryMapping(19, TorznabCatType.ConsoleXBox, "GamesxBox"); + caps.Categories.AddCategoryMapping(20, TorznabCatType.ConsolePS4, "GamesPS"); + caps.Categories.AddCategoryMapping(21, TorznabCatType.ConsoleWii, "GamesNin"); + caps.Categories.AddCategoryMapping(22, TorznabCatType.PC0day, "AppsWindows"); + caps.Categories.AddCategoryMapping(23, TorznabCatType.PCMac, "AppsMAC"); + caps.Categories.AddCategoryMapping(24, TorznabCatType.PC0day, "AppsLinux"); + caps.Categories.AddCategoryMapping(25, TorznabCatType.PCMobileOther, "AppsMobile"); + caps.Categories.AddCategoryMapping(26, TorznabCatType.XXX, "0dayXXX"); + caps.Categories.AddCategoryMapping(27, TorznabCatType.Books, "eBook"); + caps.Categories.AddCategoryMapping(28, TorznabCatType.AudioAudiobook, "AudioBook"); + caps.Categories.AddCategoryMapping(29, TorznabCatType.AudioOther, "Music"); + caps.Categories.AddCategoryMapping(30, TorznabCatType.Other, "Misc"); + + return caps; } protected override async Task> PerformQuery(TorznabQuery query) diff --git a/src/Jackett.Common/Indexers/AniDUB.cs b/src/Jackett.Common/Indexers/AniDUB.cs index bfa209114..afc9e9ed3 100644 --- a/src/Jackett.Common/Indexers/AniDUB.cs +++ b/src/Jackett.Common/Indexers/AniDUB.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; -using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using AngleSharp.Dom; @@ -29,6 +28,8 @@ namespace Jackett.Common.Indexers public override string Language => "ru-RU"; public override string Type => "semi-private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private static readonly Regex EpisodeInfoRegex = new Regex(@"\[(.*?)(?: \(.*?\))? из (.*?)\]$", RegexOptions.Compiled | RegexOptions.IgnoreCase); private static readonly Regex SeasonInfoQueryRegex = new Regex(@"S(\d+)(?:E\d*)", RegexOptions.Compiled | RegexOptions.IgnoreCase); private static readonly Regex SeasonInfoRegex = new Regex(@"(?:(?:TV-)|(?:ТВ-))(\d+)", RegexOptions.Compiled | RegexOptions.IgnoreCase); @@ -36,23 +37,7 @@ namespace Jackett.Common.Indexers public AniDUB(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep - }, - MusicSearchParams = new List - { - MusicSearchParam.Q - }, - BookSearchParams = new List - { - BookSearchParam.Q - } - }, - configService: configService, + : base(configService: configService, client: wc, logger: l, p: ps, @@ -60,24 +45,45 @@ namespace Jackett.Common.Indexers configData: new ConfigurationDataAniDub()) { webclient.AddTrustedCertificate(new Uri(SiteLink).Host, "392E98CE1447B59CA62BAB8824CA1EEFC2ED3D37"); + } - AddCategoryMapping(2, TorznabCatType.TVAnime, "Аниме TV"); - AddCategoryMapping(14, TorznabCatType.TVAnime, "Аниме TV / Законченные сериалы"); - AddCategoryMapping(10, TorznabCatType.TVAnime, "Аниме TV / Аниме Ongoing"); - AddCategoryMapping(11, TorznabCatType.TVAnime, "Аниме TV / Многосерийный сёнэн"); - AddCategoryMapping(13, TorznabCatType.XXX, "18+"); - AddCategoryMapping(15, TorznabCatType.BooksComics, "Манга"); - AddCategoryMapping(16, TorznabCatType.Audio, "OST"); - AddCategoryMapping(17, TorznabCatType.Audio, "Подкасты"); - AddCategoryMapping(3, TorznabCatType.TVAnime, "Аниме Фильмы"); - AddCategoryMapping(4, TorznabCatType.TVAnime, "Аниме OVA"); - AddCategoryMapping(5, TorznabCatType.TVAnime, "Аниме OVA |- Аниме ONA"); - AddCategoryMapping(9, TorznabCatType.TV, "Дорамы"); - AddCategoryMapping(6, TorznabCatType.TV, "Дорамы / Японские Сериалы и Фильмы"); - AddCategoryMapping(7, TorznabCatType.TV, "Дорамы / Корейские Сериалы и Фильмы"); - AddCategoryMapping(8, TorznabCatType.TV, "Дорамы / Китайские Сериалы и Фильмы"); - AddCategoryMapping(12, TorznabCatType.Other, "Аниме Ongoing Анонсы"); - AddCategoryMapping(1, TorznabCatType.Other, "Новости проекта Anidub"); + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep + }, + MusicSearchParams = new List + { + MusicSearchParam.Q + }, + BookSearchParams = new List + { + BookSearchParam.Q + } + }; + + caps.Categories.AddCategoryMapping(2, TorznabCatType.TVAnime, "Аниме TV"); + caps.Categories.AddCategoryMapping(14, TorznabCatType.TVAnime, "Аниме TV / Законченные сериалы"); + caps.Categories.AddCategoryMapping(10, TorznabCatType.TVAnime, "Аниме TV / Аниме Ongoing"); + caps.Categories.AddCategoryMapping(11, TorznabCatType.TVAnime, "Аниме TV / Многосерийный сёнэн"); + caps.Categories.AddCategoryMapping(13, TorznabCatType.XXX, "18+"); + caps.Categories.AddCategoryMapping(15, TorznabCatType.BooksComics, "Манга"); + caps.Categories.AddCategoryMapping(16, TorznabCatType.Audio, "OST"); + caps.Categories.AddCategoryMapping(17, TorznabCatType.Audio, "Подкасты"); + caps.Categories.AddCategoryMapping(3, TorznabCatType.TVAnime, "Аниме Фильмы"); + caps.Categories.AddCategoryMapping(4, TorznabCatType.TVAnime, "Аниме OVA"); + caps.Categories.AddCategoryMapping(5, TorznabCatType.TVAnime, "Аниме OVA |- Аниме ONA"); + caps.Categories.AddCategoryMapping(9, TorznabCatType.TV, "Дорамы"); + caps.Categories.AddCategoryMapping(6, TorznabCatType.TV, "Дорамы / Японские Сериалы и Фильмы"); + caps.Categories.AddCategoryMapping(7, TorznabCatType.TV, "Дорамы / Корейские Сериалы и Фильмы"); + caps.Categories.AddCategoryMapping(8, TorznabCatType.TV, "Дорамы / Китайские Сериалы и Фильмы"); + caps.Categories.AddCategoryMapping(12, TorznabCatType.Other, "Аниме Ongoing Анонсы"); + caps.Categories.AddCategoryMapping(1, TorznabCatType.Other, "Новости проекта Anidub"); + + return caps; } private static Dictionary CategoriesMap => new Dictionary diff --git a/src/Jackett.Common/Indexers/Anidex.cs b/src/Jackett.Common/Indexers/Anidex.cs index 600a7454b..9e8a403dd 100644 --- a/src/Jackett.Common/Indexers/Anidex.cs +++ b/src/Jackett.Common/Indexers/Anidex.cs @@ -29,49 +29,17 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "public"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + public Anidex(IIndexerConfigurationService configService, Utils.Clients.WebClient wc, Logger l, - IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q - }, - MusicSearchParams = new List - { - MusicSearchParam.Q, - }, - BookSearchParams = new List - { - BookSearchParam.Q, - } - }, - configService: configService, + IProtectionService ps, ICacheService cs) + : base(configService: configService, client: wc, logger: l, p: ps, cacheService: cs, configData: new ConfigurationData()) { - // Configure the category mappings - AddCategoryMapping(1, TorznabCatType.TVAnime, "Anime - Sub"); - AddCategoryMapping(2, TorznabCatType.TVAnime, "Anime - Raw"); - AddCategoryMapping(3, TorznabCatType.TVAnime, "Anime - Dub"); - AddCategoryMapping(4, TorznabCatType.TVAnime, "LA - Sub"); - AddCategoryMapping(5, TorznabCatType.TVAnime, "LA - Raw"); - AddCategoryMapping(6, TorznabCatType.BooksEBook, "Light Novel"); - AddCategoryMapping(7, TorznabCatType.BooksComics, "Manga - TLed"); - AddCategoryMapping(8, TorznabCatType.BooksComics, "Manga - Raw"); - AddCategoryMapping(9, TorznabCatType.AudioMP3, "♫ - Lossy"); - AddCategoryMapping(10, TorznabCatType.AudioLossless, "♫ - Lossless"); - AddCategoryMapping(11, TorznabCatType.AudioVideo, "♫ - Video"); - AddCategoryMapping(12, TorznabCatType.PCGames, "Games"); - AddCategoryMapping(13, TorznabCatType.PC0day, "Applications"); - AddCategoryMapping(14, TorznabCatType.XXXImageSet, "Pictures"); - AddCategoryMapping(15, TorznabCatType.XXX, "Adult Video"); - AddCategoryMapping(16, TorznabCatType.Other, "Other"); - configData.AddDynamic("DDoS-Guard", new DisplayInfoConfigurationItem("DDoS-Guard", "This site may use DDoS-Guard Protection, therefore Jackett requires FlareSolverr to access it.")); AddLanguageConfiguration(); @@ -98,6 +66,45 @@ namespace Jackett.Common.Indexers EnableConfigurableRetryAttempts(); } + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q + }, + MusicSearchParams = new List + { + MusicSearchParam.Q, + }, + BookSearchParams = new List + { + BookSearchParam.Q, + } + }; + + // Configure the category mappings + caps.Categories.AddCategoryMapping(1, TorznabCatType.TVAnime, "Anime - Sub"); + caps.Categories.AddCategoryMapping(2, TorznabCatType.TVAnime, "Anime - Raw"); + caps.Categories.AddCategoryMapping(3, TorznabCatType.TVAnime, "Anime - Dub"); + caps.Categories.AddCategoryMapping(4, TorznabCatType.TVAnime, "LA - Sub"); + caps.Categories.AddCategoryMapping(5, TorznabCatType.TVAnime, "LA - Raw"); + caps.Categories.AddCategoryMapping(6, TorznabCatType.BooksEBook, "Light Novel"); + caps.Categories.AddCategoryMapping(7, TorznabCatType.BooksComics, "Manga - TLed"); + caps.Categories.AddCategoryMapping(8, TorznabCatType.BooksComics, "Manga - Raw"); + caps.Categories.AddCategoryMapping(9, TorznabCatType.AudioMP3, "♫ - Lossy"); + caps.Categories.AddCategoryMapping(10, TorznabCatType.AudioLossless, "♫ - Lossless"); + caps.Categories.AddCategoryMapping(11, TorznabCatType.AudioVideo, "♫ - Video"); + caps.Categories.AddCategoryMapping(12, TorznabCatType.PCGames, "Games"); + caps.Categories.AddCategoryMapping(13, TorznabCatType.PC0day, "Applications"); + caps.Categories.AddCategoryMapping(14, TorznabCatType.XXXImageSet, "Pictures"); + caps.Categories.AddCategoryMapping(15, TorznabCatType.XXX, "Adult Video"); + caps.Categories.AddCategoryMapping(16, TorznabCatType.Other, "Other"); + + return caps; + } + private void AddLanguageConfiguration() { // Configure the language select option diff --git a/src/Jackett.Common/Indexers/AnimeBytes.cs b/src/Jackett.Common/Indexers/AnimeBytes.cs index df250c101..8ec10ac47 100644 --- a/src/Jackett.Common/Indexers/AnimeBytes.cs +++ b/src/Jackett.Common/Indexers/AnimeBytes.cs @@ -29,6 +29,8 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string ScrapeUrl => SiteLink + "scrape.php"; private bool AllowRaws => ConfigData.IncludeRaw.Value; private bool PadEpisode => ConfigData.PadEpisode != null && ConfigData.PadEpisode.Value; @@ -44,49 +46,55 @@ namespace Jackett.Common.Indexers IProtectionService ps, ICacheService cs) : base(configService: configService, client: client, - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep - }, - MovieSearchParams = new List - { - MovieSearchParam.Q - }, - MusicSearchParams = new List - { - MusicSearchParam.Q - }, - BookSearchParams = new List - { - BookSearchParam.Q - }, - SupportsRawSearch = true - }, logger: l, p: ps, cacheService: cs, configData: new ConfigurationDataAnimeBytes("Note: Go to AnimeBytes site and open your account settings. Go to 'Account' tab, move cursor over black part near 'Passkey' and copy its value. Your username is case sensitive.")) { webclient.EmulateBrowser = false; // Animebytes doesn't like fake user agents (issue #1535) + } - AddCategoryMapping("anime[tv_series]", TorznabCatType.TVAnime, "TV Series"); - AddCategoryMapping("anime[tv_special]", TorznabCatType.TVAnime, "TV Special"); - AddCategoryMapping("anime[ova]", TorznabCatType.TVAnime, "OVA"); - AddCategoryMapping("anime[ona]", TorznabCatType.TVAnime, "ONA"); - AddCategoryMapping("anime[dvd_special]", TorznabCatType.TVAnime, "DVD Special"); - AddCategoryMapping("anime[bd_special]", TorznabCatType.TVAnime, "BD Special"); - AddCategoryMapping("anime[movie]", TorznabCatType.Movies, "Movie"); - AddCategoryMapping("audio", TorznabCatType.Audio, "Music"); - AddCategoryMapping("gamec[game]", TorznabCatType.PCGames, "Game"); - AddCategoryMapping("gamec[visual_novel]", TorznabCatType.PCGames, "Game Visual Novel"); - AddCategoryMapping("printedtype[manga]", TorznabCatType.BooksComics, "Manga"); - AddCategoryMapping("printedtype[oneshot]", TorznabCatType.BooksComics, "Oneshot"); - AddCategoryMapping("printedtype[anthology]", TorznabCatType.BooksComics, "Anthology"); - AddCategoryMapping("printedtype[manhwa]", TorznabCatType.BooksComics, "Manhwa"); - AddCategoryMapping("printedtype[light_novel]", TorznabCatType.BooksComics, "Light Novel"); - AddCategoryMapping("printedtype[artbook]", TorznabCatType.BooksComics, "Artbook"); + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep + }, + MovieSearchParams = new List + { + MovieSearchParam.Q + }, + MusicSearchParams = new List + { + MusicSearchParam.Q + }, + BookSearchParams = new List + { + BookSearchParam.Q + }, + SupportsRawSearch = true + }; + + caps.Categories.AddCategoryMapping("anime[tv_series]", TorznabCatType.TVAnime, "TV Series"); + caps.Categories.AddCategoryMapping("anime[tv_special]", TorznabCatType.TVAnime, "TV Special"); + caps.Categories.AddCategoryMapping("anime[ova]", TorznabCatType.TVAnime, "OVA"); + caps.Categories.AddCategoryMapping("anime[ona]", TorznabCatType.TVAnime, "ONA"); + caps.Categories.AddCategoryMapping("anime[dvd_special]", TorznabCatType.TVAnime, "DVD Special"); + caps.Categories.AddCategoryMapping("anime[bd_special]", TorznabCatType.TVAnime, "BD Special"); + caps.Categories.AddCategoryMapping("anime[movie]", TorznabCatType.Movies, "Movie"); + caps.Categories.AddCategoryMapping("audio", TorznabCatType.Audio, "Music"); + caps.Categories.AddCategoryMapping("gamec[game]", TorznabCatType.PCGames, "Game"); + caps.Categories.AddCategoryMapping("gamec[visual_novel]", TorznabCatType.PCGames, "Game Visual Novel"); + caps.Categories.AddCategoryMapping("printedtype[manga]", TorznabCatType.BooksComics, "Manga"); + caps.Categories.AddCategoryMapping("printedtype[oneshot]", TorznabCatType.BooksComics, "Oneshot"); + caps.Categories.AddCategoryMapping("printedtype[anthology]", TorznabCatType.BooksComics, "Anthology"); + caps.Categories.AddCategoryMapping("printedtype[manhwa]", TorznabCatType.BooksComics, "Manhwa"); + caps.Categories.AddCategoryMapping("printedtype[light_novel]", TorznabCatType.BooksComics, "Light Novel"); + caps.Categories.AddCategoryMapping("printedtype[artbook]", TorznabCatType.BooksComics, "Artbook"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/AnimeTorrents.cs b/src/Jackett.Common/Indexers/AnimeTorrents.cs index b90002a0b..6d3e7e827 100644 --- a/src/Jackett.Common/Indexers/AnimeTorrents.cs +++ b/src/Jackett.Common/Indexers/AnimeTorrents.cs @@ -28,6 +28,8 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string LoginUrl => SiteLink + "login.php"; private string SearchUrl => SiteLink + "ajax/torrents_data.php"; private string SearchUrlReferer => SiteLink + "torrents.php?cat=0&searchin=filename&search="; @@ -40,44 +42,50 @@ namespace Jackett.Common.Indexers public AnimeTorrents(IIndexerConfigurationService configService, WebClient c, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep - }, - MovieSearchParams = new List - { - MovieSearchParam.Q - } - }, - configService: configService, + : base(configService: configService, client: c, logger: l, p: ps, cacheService: cs, configData: new ConfigurationDataBasicLogin()) { - AddCategoryMapping(1, TorznabCatType.MoviesSD, "Anime Movie"); - AddCategoryMapping(6, TorznabCatType.MoviesHD, "Anime Movie HD"); - AddCategoryMapping(2, TorznabCatType.TVAnime, "Anime Series"); - AddCategoryMapping(7, TorznabCatType.TVAnime, "Anime Series HD"); - AddCategoryMapping(5, TorznabCatType.XXXDVD, "Hentai (censored)"); - AddCategoryMapping(9, TorznabCatType.XXXDVD, "Hentai (censored) HD"); - AddCategoryMapping(4, TorznabCatType.XXXDVD, "Hentai (un-censored)"); - AddCategoryMapping(8, TorznabCatType.XXXDVD, "Hentai (un-censored) HD"); - AddCategoryMapping(13, TorznabCatType.BooksForeign, "Light Novel"); - AddCategoryMapping(3, TorznabCatType.BooksComics, "Manga"); - AddCategoryMapping(10, TorznabCatType.BooksComics, "Manga 18+"); - AddCategoryMapping(11, TorznabCatType.TVAnime, "OVA"); - AddCategoryMapping(12, TorznabCatType.TVAnime, "OVA HD"); - AddCategoryMapping(14, TorznabCatType.BooksComics, "Doujin Anime"); - AddCategoryMapping(15, TorznabCatType.XXXDVD, "Doujin Anime 18+"); - AddCategoryMapping(16, TorznabCatType.AudioForeign, "Doujin Music"); - AddCategoryMapping(17, TorznabCatType.BooksComics, "Doujinshi"); - AddCategoryMapping(18, TorznabCatType.BooksComics, "Doujinshi 18+"); - AddCategoryMapping(19, TorznabCatType.Audio, "OST"); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep + }, + MovieSearchParams = new List + { + MovieSearchParam.Q + } + }; + + caps.Categories.AddCategoryMapping(1, TorznabCatType.MoviesSD, "Anime Movie"); + caps.Categories.AddCategoryMapping(6, TorznabCatType.MoviesHD, "Anime Movie HD"); + caps.Categories.AddCategoryMapping(2, TorznabCatType.TVAnime, "Anime Series"); + caps.Categories.AddCategoryMapping(7, TorznabCatType.TVAnime, "Anime Series HD"); + caps.Categories.AddCategoryMapping(5, TorznabCatType.XXXDVD, "Hentai (censored)"); + caps.Categories.AddCategoryMapping(9, TorznabCatType.XXXDVD, "Hentai (censored) HD"); + caps.Categories.AddCategoryMapping(4, TorznabCatType.XXXDVD, "Hentai (un-censored)"); + caps.Categories.AddCategoryMapping(8, TorznabCatType.XXXDVD, "Hentai (un-censored) HD"); + caps.Categories.AddCategoryMapping(13, TorznabCatType.BooksForeign, "Light Novel"); + caps.Categories.AddCategoryMapping(3, TorznabCatType.BooksComics, "Manga"); + caps.Categories.AddCategoryMapping(10, TorznabCatType.BooksComics, "Manga 18+"); + caps.Categories.AddCategoryMapping(11, TorznabCatType.TVAnime, "OVA"); + caps.Categories.AddCategoryMapping(12, TorznabCatType.TVAnime, "OVA HD"); + caps.Categories.AddCategoryMapping(14, TorznabCatType.BooksComics, "Doujin Anime"); + caps.Categories.AddCategoryMapping(15, TorznabCatType.XXXDVD, "Doujin Anime 18+"); + caps.Categories.AddCategoryMapping(16, TorznabCatType.AudioForeign, "Doujin Music"); + caps.Categories.AddCategoryMapping(17, TorznabCatType.BooksComics, "Doujinshi"); + caps.Categories.AddCategoryMapping(18, TorznabCatType.BooksComics, "Doujinshi 18+"); + caps.Categories.AddCategoryMapping(19, TorznabCatType.Audio, "OST"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/Aro.cs b/src/Jackett.Common/Indexers/Aro.cs index 1fbc20053..01856f83f 100644 --- a/src/Jackett.Common/Indexers/Aro.cs +++ b/src/Jackett.Common/Indexers/Aro.cs @@ -18,34 +18,41 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + public Aro(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, - ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q - }, - MovieSearchParams = new List - { - MovieSearchParam.Q - } - }, - configService: configService, + ICacheService cs) + : base(configService: configService, client: wc, logger: l, p: ps, cs: cs, has2Fa: true, - supportsFreeleechTokens: true - ) + supportsFreeleechTokens: true) { - AddCategoryMapping(1, TorznabCatType.Movies, "Movies"); - AddCategoryMapping(2, TorznabCatType.TVAnime, "Anime"); - AddCategoryMapping(3, TorznabCatType.Books, "Manga"); - AddCategoryMapping(4, TorznabCatType.Console, "Games"); - AddCategoryMapping(5, TorznabCatType.Other, "Other"); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q + }, + MovieSearchParams = new List + { + MovieSearchParam.Q + } + }; + + caps.Categories.AddCategoryMapping(1, TorznabCatType.Movies, "Movies"); + caps.Categories.AddCategoryMapping(2, TorznabCatType.TVAnime, "Anime"); + caps.Categories.AddCategoryMapping(3, TorznabCatType.Books, "Manga"); + caps.Categories.AddCategoryMapping(4, TorznabCatType.Console, "Games"); + caps.Categories.AddCategoryMapping(5, TorznabCatType.Other, "Other"); + + return caps; } } } diff --git a/src/Jackett.Common/Indexers/AudioBookBay.cs b/src/Jackett.Common/Indexers/AudioBookBay.cs index 6585d1848..38886b777 100644 --- a/src/Jackett.Common/Indexers/AudioBookBay.cs +++ b/src/Jackett.Common/Indexers/AudioBookBay.cs @@ -63,16 +63,10 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "public"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + public AudioBookBay(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - BookSearchParams = new List - { - BookSearchParam.Q - } - }, - configService: configService, + : base(configService: configService, client: wc, logger: l, p: ps, @@ -80,65 +74,78 @@ namespace Jackett.Common.Indexers configData: new ConfigurationData()) { webclient.requestDelay = 3.1; + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + BookSearchParams = new List + { + BookSearchParam.Q + } + }; // Age - AddCategoryMapping("children", TorznabCatType.AudioAudiobook, "Children"); - AddCategoryMapping("teen-young-adult", TorznabCatType.AudioAudiobook, "Teen & Young Adult"); - AddCategoryMapping("adults", TorznabCatType.AudioAudiobook, "Adults"); + caps.Categories.AddCategoryMapping("children", TorznabCatType.AudioAudiobook, "Children"); + caps.Categories.AddCategoryMapping("teen-young-adult", TorznabCatType.AudioAudiobook, "Teen & Young Adult"); + caps.Categories.AddCategoryMapping("adults", TorznabCatType.AudioAudiobook, "Adults"); // Category - AddCategoryMapping("postapocalyptic", TorznabCatType.AudioAudiobook, "(Post)apocalyptic"); - AddCategoryMapping("action", TorznabCatType.AudioAudiobook, "Action"); - AddCategoryMapping("adventure", TorznabCatType.AudioAudiobook, "Adventure"); - AddCategoryMapping("art", TorznabCatType.AudioAudiobook, "Art"); - AddCategoryMapping("autobiography-biographies", TorznabCatType.AudioAudiobook, "Autobiography & Biographies"); - AddCategoryMapping("business", TorznabCatType.AudioAudiobook, "Business"); - AddCategoryMapping("computer", TorznabCatType.AudioAudiobook, "Computer"); - AddCategoryMapping("contemporary", TorznabCatType.AudioAudiobook, "Contemporary"); - AddCategoryMapping("crime", TorznabCatType.AudioAudiobook, "Crime"); - AddCategoryMapping("detective", TorznabCatType.AudioAudiobook, "Detective"); - AddCategoryMapping("doctor-who-sci-fi", TorznabCatType.AudioAudiobook, "Doctor Who"); - AddCategoryMapping("education", TorznabCatType.AudioAudiobook, "Education"); - AddCategoryMapping("fantasy", TorznabCatType.AudioAudiobook, "Fantasy"); - AddCategoryMapping("general-fiction", TorznabCatType.AudioAudiobook, "General Fiction"); - AddCategoryMapping("historical-fiction", TorznabCatType.AudioAudiobook, "Historical Fiction"); - AddCategoryMapping("history", TorznabCatType.AudioAudiobook, "History"); - AddCategoryMapping("horror", TorznabCatType.AudioAudiobook, "Horror"); - AddCategoryMapping("humor", TorznabCatType.AudioAudiobook, "Humor"); - AddCategoryMapping("lecture", TorznabCatType.AudioAudiobook, "Lecture"); - AddCategoryMapping("lgbt", TorznabCatType.AudioAudiobook, "LGBT"); - AddCategoryMapping("literature", TorznabCatType.AudioAudiobook, "Literature"); - AddCategoryMapping("litrpg", TorznabCatType.AudioAudiobook, "LitRPG"); - AddCategoryMapping("general-non-fiction", TorznabCatType.AudioAudiobook, "Misc. Non-fiction"); - AddCategoryMapping("mystery", TorznabCatType.AudioAudiobook, "Mystery"); - AddCategoryMapping("paranormal", TorznabCatType.AudioAudiobook, "Paranormal"); - AddCategoryMapping("plays-theater", TorznabCatType.AudioAudiobook, "Plays & Theater"); - AddCategoryMapping("poetry", TorznabCatType.AudioAudiobook, "Poetry"); - AddCategoryMapping("political", TorznabCatType.AudioAudiobook, "Political"); - AddCategoryMapping("radio-productions", TorznabCatType.AudioAudiobook, "Radio Productions"); - AddCategoryMapping("romance", TorznabCatType.AudioAudiobook, "Romance"); - AddCategoryMapping("sci-fi", TorznabCatType.AudioAudiobook, "Sci-Fi"); - AddCategoryMapping("science", TorznabCatType.AudioAudiobook, "Science"); - AddCategoryMapping("self-help", TorznabCatType.AudioAudiobook, "Self-help"); - AddCategoryMapping("spiritual", TorznabCatType.AudioAudiobook, "Spiritual & Religious"); - AddCategoryMapping("sports", TorznabCatType.AudioAudiobook, "Sport & Recreation"); - AddCategoryMapping("suspense", TorznabCatType.AudioAudiobook, "Suspense"); - AddCategoryMapping("thriller", TorznabCatType.AudioAudiobook, "Thriller"); - AddCategoryMapping("true-crime", TorznabCatType.AudioAudiobook, "True Crime"); - AddCategoryMapping("tutorial", TorznabCatType.AudioAudiobook, "Tutorial"); - AddCategoryMapping("westerns", TorznabCatType.AudioAudiobook, "Westerns"); - AddCategoryMapping("zombies", TorznabCatType.AudioAudiobook, "Zombies"); + caps.Categories.AddCategoryMapping("postapocalyptic", TorznabCatType.AudioAudiobook, "(Post)apocalyptic"); + caps.Categories.AddCategoryMapping("action", TorznabCatType.AudioAudiobook, "Action"); + caps.Categories.AddCategoryMapping("adventure", TorznabCatType.AudioAudiobook, "Adventure"); + caps.Categories.AddCategoryMapping("art", TorznabCatType.AudioAudiobook, "Art"); + caps.Categories.AddCategoryMapping("autobiography-biographies", TorznabCatType.AudioAudiobook, "Autobiography & Biographies"); + caps.Categories.AddCategoryMapping("business", TorznabCatType.AudioAudiobook, "Business"); + caps.Categories.AddCategoryMapping("computer", TorznabCatType.AudioAudiobook, "Computer"); + caps.Categories.AddCategoryMapping("contemporary", TorznabCatType.AudioAudiobook, "Contemporary"); + caps.Categories.AddCategoryMapping("crime", TorznabCatType.AudioAudiobook, "Crime"); + caps.Categories.AddCategoryMapping("detective", TorznabCatType.AudioAudiobook, "Detective"); + caps.Categories.AddCategoryMapping("doctor-who-sci-fi", TorznabCatType.AudioAudiobook, "Doctor Who"); + caps.Categories.AddCategoryMapping("education", TorznabCatType.AudioAudiobook, "Education"); + caps.Categories.AddCategoryMapping("fantasy", TorznabCatType.AudioAudiobook, "Fantasy"); + caps.Categories.AddCategoryMapping("general-fiction", TorznabCatType.AudioAudiobook, "General Fiction"); + caps.Categories.AddCategoryMapping("historical-fiction", TorznabCatType.AudioAudiobook, "Historical Fiction"); + caps.Categories.AddCategoryMapping("history", TorznabCatType.AudioAudiobook, "History"); + caps.Categories.AddCategoryMapping("horror", TorznabCatType.AudioAudiobook, "Horror"); + caps.Categories.AddCategoryMapping("humor", TorznabCatType.AudioAudiobook, "Humor"); + caps.Categories.AddCategoryMapping("lecture", TorznabCatType.AudioAudiobook, "Lecture"); + caps.Categories.AddCategoryMapping("lgbt", TorznabCatType.AudioAudiobook, "LGBT"); + caps.Categories.AddCategoryMapping("literature", TorznabCatType.AudioAudiobook, "Literature"); + caps.Categories.AddCategoryMapping("litrpg", TorznabCatType.AudioAudiobook, "LitRPG"); + caps.Categories.AddCategoryMapping("general-non-fiction", TorznabCatType.AudioAudiobook, "Misc. Non-fiction"); + caps.Categories.AddCategoryMapping("mystery", TorznabCatType.AudioAudiobook, "Mystery"); + caps.Categories.AddCategoryMapping("paranormal", TorznabCatType.AudioAudiobook, "Paranormal"); + caps.Categories.AddCategoryMapping("plays-theater", TorznabCatType.AudioAudiobook, "Plays & Theater"); + caps.Categories.AddCategoryMapping("poetry", TorznabCatType.AudioAudiobook, "Poetry"); + caps.Categories.AddCategoryMapping("political", TorznabCatType.AudioAudiobook, "Political"); + caps.Categories.AddCategoryMapping("radio-productions", TorznabCatType.AudioAudiobook, "Radio Productions"); + caps.Categories.AddCategoryMapping("romance", TorznabCatType.AudioAudiobook, "Romance"); + caps.Categories.AddCategoryMapping("sci-fi", TorznabCatType.AudioAudiobook, "Sci-Fi"); + caps.Categories.AddCategoryMapping("science", TorznabCatType.AudioAudiobook, "Science"); + caps.Categories.AddCategoryMapping("self-help", TorznabCatType.AudioAudiobook, "Self-help"); + caps.Categories.AddCategoryMapping("spiritual", TorznabCatType.AudioAudiobook, "Spiritual & Religious"); + caps.Categories.AddCategoryMapping("sports", TorznabCatType.AudioAudiobook, "Sport & Recreation"); + caps.Categories.AddCategoryMapping("suspense", TorznabCatType.AudioAudiobook, "Suspense"); + caps.Categories.AddCategoryMapping("thriller", TorznabCatType.AudioAudiobook, "Thriller"); + caps.Categories.AddCategoryMapping("true-crime", TorznabCatType.AudioAudiobook, "True Crime"); + caps.Categories.AddCategoryMapping("tutorial", TorznabCatType.AudioAudiobook, "Tutorial"); + caps.Categories.AddCategoryMapping("westerns", TorznabCatType.AudioAudiobook, "Westerns"); + caps.Categories.AddCategoryMapping("zombies", TorznabCatType.AudioAudiobook, "Zombies"); // Category Modifiers - AddCategoryMapping("anthology", TorznabCatType.AudioAudiobook, "Anthology"); - AddCategoryMapping("bestsellers", TorznabCatType.AudioAudiobook, "Bestsellers"); - AddCategoryMapping("classic", TorznabCatType.AudioAudiobook, "Classic"); - AddCategoryMapping("documentary", TorznabCatType.AudioAudiobook, "Documentary"); - AddCategoryMapping("full-cast", TorznabCatType.AudioAudiobook, "Full Cast"); - AddCategoryMapping("libertarian", TorznabCatType.AudioAudiobook, "Libertarian"); - AddCategoryMapping("military", TorznabCatType.AudioAudiobook, "Military"); - AddCategoryMapping("novel", TorznabCatType.AudioAudiobook, "Novel"); - AddCategoryMapping("short-story", TorznabCatType.AudioAudiobook, "Short Story"); + caps.Categories.AddCategoryMapping("anthology", TorznabCatType.AudioAudiobook, "Anthology"); + caps.Categories.AddCategoryMapping("bestsellers", TorznabCatType.AudioAudiobook, "Bestsellers"); + caps.Categories.AddCategoryMapping("classic", TorznabCatType.AudioAudiobook, "Classic"); + caps.Categories.AddCategoryMapping("documentary", TorznabCatType.AudioAudiobook, "Documentary"); + caps.Categories.AddCategoryMapping("full-cast", TorznabCatType.AudioAudiobook, "Full Cast"); + caps.Categories.AddCategoryMapping("libertarian", TorznabCatType.AudioAudiobook, "Libertarian"); + caps.Categories.AddCategoryMapping("military", TorznabCatType.AudioAudiobook, "Military"); + caps.Categories.AddCategoryMapping("novel", TorznabCatType.AudioAudiobook, "Novel"); + caps.Categories.AddCategoryMapping("short-story", TorznabCatType.AudioAudiobook, "Short Story"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/AvistaZ.cs b/src/Jackett.Common/Indexers/AvistaZ.cs index 36aad4f4b..fb3d06b06 100644 --- a/src/Jackett.Common/Indexers/AvistaZ.cs +++ b/src/Jackett.Common/Indexers/AvistaZ.cs @@ -17,40 +17,47 @@ namespace Jackett.Common.Indexers public override string Description => "Aka AsiaTorrents"; public override string SiteLink { get; protected set; } = "https://avistaz.to/"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + public AvistaZ(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, - ICacheService cs) - : base( - caps: new TorznabCapabilities - { - LimitsDefault = 50, - LimitsMax = 50, - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId, TvSearchParam.TvdbId, TvSearchParam.Genre - }, - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.TmdbId, MovieSearchParam.Genre - }, - SupportsRawSearch = true, - TvSearchImdbAvailable = true - }, - configService: configService, + ICacheService cs) + : base(configService: configService, client: wc, logger: l, p: ps, - cs: cs - ) + cs: cs) { - AddCategoryMapping(1, TorznabCatType.Movies); - AddCategoryMapping(1, TorznabCatType.MoviesUHD); - AddCategoryMapping(1, TorznabCatType.MoviesHD); - AddCategoryMapping(1, TorznabCatType.MoviesSD); - AddCategoryMapping(2, TorznabCatType.TV); - AddCategoryMapping(2, TorznabCatType.TVUHD); - AddCategoryMapping(2, TorznabCatType.TVHD); - AddCategoryMapping(2, TorznabCatType.TVSD); - AddCategoryMapping(3, TorznabCatType.Audio); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + LimitsDefault = 50, + LimitsMax = 50, + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId, TvSearchParam.TvdbId, TvSearchParam.Genre + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.TmdbId, MovieSearchParam.Genre + }, + SupportsRawSearch = true, + TvSearchImdbAvailable = true + }; + + caps.Categories.AddCategoryMapping(1, TorznabCatType.Movies); + caps.Categories.AddCategoryMapping(1, TorznabCatType.MoviesUHD); + caps.Categories.AddCategoryMapping(1, TorznabCatType.MoviesHD); + caps.Categories.AddCategoryMapping(1, TorznabCatType.MoviesSD); + caps.Categories.AddCategoryMapping(2, TorznabCatType.TV); + caps.Categories.AddCategoryMapping(2, TorznabCatType.TVUHD); + caps.Categories.AddCategoryMapping(2, TorznabCatType.TVHD); + caps.Categories.AddCategoryMapping(2, TorznabCatType.TVSD); + caps.Categories.AddCategoryMapping(3, TorznabCatType.Audio); + + return caps; } // Avistaz has episodes without season. eg Running Man E323 diff --git a/src/Jackett.Common/Indexers/BJShare.cs b/src/Jackett.Common/Indexers/BJShare.cs index 31e1561e0..2d33ae8dc 100644 --- a/src/Jackett.Common/Indexers/BJShare.cs +++ b/src/Jackett.Common/Indexers/BJShare.cs @@ -32,6 +32,8 @@ namespace Jackett.Common.Indexers public override string Language => "pt-BR"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string BrowseUrl => SiteLink + "torrents.php"; private string TodayUrl => SiteLink + "torrents.php?action=today"; private static readonly Regex _EpisodeRegex = new Regex(@"(?:[SsEe]\d{2,4}){1,2}"); @@ -64,56 +66,63 @@ namespace Jackett.Common.Indexers public BJShare(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep - }, - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId - }, - MusicSearchParams = new List - { - MusicSearchParam.Q - }, - BookSearchParams = new List - { - BookSearchParam.Q - } - }, - configService: configService, + : base(configService: configService, client: wc, logger: l, p: ps, cacheService: cs, configData: new ConfigurationDataCookieUA()) { - AddCategoryMapping(1, TorznabCatType.Movies, "Filmes"); - AddCategoryMapping(2, TorznabCatType.TV, "Seriados"); - AddCategoryMapping(3, TorznabCatType.PC, "Aplicativos"); - AddCategoryMapping(4, TorznabCatType.PCGames, "Jogos"); - AddCategoryMapping(5, TorznabCatType.BooksComics, "Mangás"); - AddCategoryMapping(6, TorznabCatType.TV, "Vídeos de TV"); - AddCategoryMapping(7, TorznabCatType.Other, "Outros"); - AddCategoryMapping(8, TorznabCatType.TVSport, "Esportes"); - AddCategoryMapping(9, TorznabCatType.BooksMags, "Revistas"); - AddCategoryMapping(10, TorznabCatType.BooksEBook, "E-Books"); - AddCategoryMapping(11, TorznabCatType.AudioAudiobook, "Audiobook"); - AddCategoryMapping(12, TorznabCatType.BooksComics, "HQs"); - AddCategoryMapping(13, TorznabCatType.TVOther, "Stand Up Comedy"); - AddCategoryMapping(14, TorznabCatType.TVAnime, "Animes"); - AddCategoryMapping(15, TorznabCatType.XXXImageSet, "Fotos Adultas"); - AddCategoryMapping(16, TorznabCatType.TVOther, "Desenhos Animado"); - AddCategoryMapping(17, TorznabCatType.TVDocumentary, "Documentários"); - AddCategoryMapping(18, TorznabCatType.Other, "Cursos"); - AddCategoryMapping(19, TorznabCatType.XXX, "Filmes Adultos"); - AddCategoryMapping(20, TorznabCatType.XXXOther, "Jogos Adultos"); - AddCategoryMapping(21, TorznabCatType.XXXOther, "Mangás Adultos"); - AddCategoryMapping(22, TorznabCatType.XXXOther, "Animes Adultos"); - AddCategoryMapping(23, TorznabCatType.XXXOther, "HQs Adultos"); + } + + private TorznabCapabilities SetCapabilities() + { + + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId + }, + MusicSearchParams = new List + { + MusicSearchParam.Q + }, + BookSearchParams = new List + { + BookSearchParam.Q + } + }; + + caps.Categories.AddCategoryMapping(1, TorznabCatType.Movies, "Filmes"); + caps.Categories.AddCategoryMapping(2, TorznabCatType.TV, "Seriados"); + caps.Categories.AddCategoryMapping(3, TorznabCatType.PC, "Aplicativos"); + caps.Categories.AddCategoryMapping(4, TorznabCatType.PCGames, "Jogos"); + caps.Categories.AddCategoryMapping(5, TorznabCatType.BooksComics, "Mangás"); + caps.Categories.AddCategoryMapping(6, TorznabCatType.TV, "Vídeos de TV"); + caps.Categories.AddCategoryMapping(7, TorznabCatType.Other, "Outros"); + caps.Categories.AddCategoryMapping(8, TorznabCatType.TVSport, "Esportes"); + caps.Categories.AddCategoryMapping(9, TorznabCatType.BooksMags, "Revistas"); + caps.Categories.AddCategoryMapping(10, TorznabCatType.BooksEBook, "E-Books"); + caps.Categories.AddCategoryMapping(11, TorznabCatType.AudioAudiobook, "Audiobook"); + caps.Categories.AddCategoryMapping(12, TorznabCatType.BooksComics, "HQs"); + caps.Categories.AddCategoryMapping(13, TorznabCatType.TVOther, "Stand Up Comedy"); + caps.Categories.AddCategoryMapping(14, TorznabCatType.TVAnime, "Animes"); + caps.Categories.AddCategoryMapping(15, TorznabCatType.XXXImageSet, "Fotos Adultas"); + caps.Categories.AddCategoryMapping(16, TorznabCatType.TVOther, "Desenhos Animado"); + caps.Categories.AddCategoryMapping(17, TorznabCatType.TVDocumentary, "Documentários"); + caps.Categories.AddCategoryMapping(18, TorznabCatType.Other, "Cursos"); + caps.Categories.AddCategoryMapping(19, TorznabCatType.XXX, "Filmes Adultos"); + caps.Categories.AddCategoryMapping(20, TorznabCatType.XXXOther, "Jogos Adultos"); + caps.Categories.AddCategoryMapping(21, TorznabCatType.XXXOther, "Mangás Adultos"); + caps.Categories.AddCategoryMapping(22, TorznabCatType.XXXOther, "Animes Adultos"); + caps.Categories.AddCategoryMapping(23, TorznabCatType.XXXOther, "HQs Adultos"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/BakaBT.cs b/src/Jackett.Common/Indexers/BakaBT.cs index a8e824a5d..cf12b15f6 100644 --- a/src/Jackett.Common/Indexers/BakaBT.cs +++ b/src/Jackett.Common/Indexers/BakaBT.cs @@ -4,7 +4,6 @@ using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Net; -using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using AngleSharp.Dom; @@ -29,6 +28,8 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string SearchUrl => SiteLink + "browse.php?only=0&hentai=1&incomplete=1&lossless=1&hd=1&multiaudio=1&bonus=1&reorder=1&q="; private string LoginUrl => SiteLink + "login.php"; private readonly string LogoutStr = "Logout"; @@ -45,48 +46,53 @@ namespace Jackett.Common.Indexers public BakaBT(IIndexerConfigurationService configService, Utils.Clients.WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep - }, - MusicSearchParams = new List - { - MusicSearchParam.Q - }, - BookSearchParams = new List - { - BookSearchParam.Q - } - }, - configService: configService, + : base(configService: configService, client: wc, logger: l, p: ps, cacheService: cs, - configData: new ConfigurationDataBakaBT("To prevent 0-results-error, Enable the " + - "Show-Adult-Content option in your BakaBT account Settings.")) + configData: new ConfigurationDataBakaBT("To prevent 0-results-error, Enable the Show-Adult-Content option in your BakaBT account Settings.")) { - AddCategoryMapping(1, TorznabCatType.TVAnime, "Anime Series"); - AddCategoryMapping(2, TorznabCatType.TVAnime, "OVA"); - AddCategoryMapping(3, TorznabCatType.AudioOther, "Soundtrack"); - AddCategoryMapping(4, TorznabCatType.BooksComics, "Manga"); - AddCategoryMapping(5, TorznabCatType.TVAnime, "Anime Movie"); - AddCategoryMapping(6, TorznabCatType.TVOther, "Live Action"); - AddCategoryMapping(7, TorznabCatType.BooksOther, "Artbook"); - AddCategoryMapping(8, TorznabCatType.AudioVideo, "Music Video"); - AddCategoryMapping(9, TorznabCatType.BooksEBook, "Light Novel"); - AddCategoryMapping(11, TorznabCatType.XXX, "Hentai Series"); - AddCategoryMapping(12, TorznabCatType.XXX, "Hentai OVA"); - AddCategoryMapping(13, TorznabCatType.XXX, "Hentai Soundtrack"); - AddCategoryMapping(14, TorznabCatType.XXX, "Hentai Manga"); - AddCategoryMapping(15, TorznabCatType.XXX, "Hentai Movie"); - AddCategoryMapping(16, TorznabCatType.XXX, "Hentai Live Action"); - AddCategoryMapping(17, TorznabCatType.XXX, "Hentai Artbook"); - AddCategoryMapping(18, TorznabCatType.XXX, "Hentai Music Video"); - AddCategoryMapping(19, TorznabCatType.XXX, "Hentai Light Novel"); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep + }, + MusicSearchParams = new List + { + MusicSearchParam.Q + }, + BookSearchParams = new List + { + BookSearchParam.Q + } + }; + + caps.Categories.AddCategoryMapping(1, TorznabCatType.TVAnime, "Anime Series"); + caps.Categories.AddCategoryMapping(2, TorznabCatType.TVAnime, "OVA"); + caps.Categories.AddCategoryMapping(3, TorznabCatType.AudioOther, "Soundtrack"); + caps.Categories.AddCategoryMapping(4, TorznabCatType.BooksComics, "Manga"); + caps.Categories.AddCategoryMapping(5, TorznabCatType.TVAnime, "Anime Movie"); + caps.Categories.AddCategoryMapping(6, TorznabCatType.TVOther, "Live Action"); + caps.Categories.AddCategoryMapping(7, TorznabCatType.BooksOther, "Artbook"); + caps.Categories.AddCategoryMapping(8, TorznabCatType.AudioVideo, "Music Video"); + caps.Categories.AddCategoryMapping(9, TorznabCatType.BooksEBook, "Light Novel"); + caps.Categories.AddCategoryMapping(11, TorznabCatType.XXX, "Hentai Series"); + caps.Categories.AddCategoryMapping(12, TorznabCatType.XXX, "Hentai OVA"); + caps.Categories.AddCategoryMapping(13, TorznabCatType.XXX, "Hentai Soundtrack"); + caps.Categories.AddCategoryMapping(14, TorznabCatType.XXX, "Hentai Manga"); + caps.Categories.AddCategoryMapping(15, TorznabCatType.XXX, "Hentai Movie"); + caps.Categories.AddCategoryMapping(16, TorznabCatType.XXX, "Hentai Live Action"); + caps.Categories.AddCategoryMapping(17, TorznabCatType.XXX, "Hentai Artbook"); + caps.Categories.AddCategoryMapping(18, TorznabCatType.XXX, "Hentai Music Video"); + caps.Categories.AddCategoryMapping(19, TorznabCatType.XXX, "Hentai Light Novel"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/BaseIndexer.cs b/src/Jackett.Common/Indexers/BaseIndexer.cs index cb8f13daa..18746864c 100644 --- a/src/Jackett.Common/Indexers/BaseIndexer.cs +++ b/src/Jackett.Common/Indexers/BaseIndexer.cs @@ -338,12 +338,11 @@ namespace Jackett.Common.Indexers { protected BaseWebIndexer(IIndexerConfigurationService configService, WebClient client, Logger logger, ConfigurationData configData, IProtectionService p, ICacheService cacheService, - TorznabCapabilities caps, string downloadBase = null) + string downloadBase = null) : base(configService: configService, logger: logger, configData: configData, p: p, cs: cacheService) { webclient = client; downloadUrlBase = downloadBase; - TorznabCaps = caps; } // minimal constructor used by e.g. cardigann generic indexer @@ -738,8 +737,8 @@ namespace Jackett.Common.Indexers { protected BaseCachingWebIndexer(IIndexerConfigurationService configService, WebClient client, Logger logger, ConfigurationData configData, IProtectionService p, ICacheService cacheService, - TorznabCapabilities caps = null, string downloadBase = null) - : base(configService: configService, client: client, logger: logger, configData: configData, p: p, cacheService: cacheService, caps: caps, downloadBase: downloadBase) + string downloadBase = null) + : base(configService: configService, client: client, logger: logger, configData: configData, p: p, cacheService: cacheService, downloadBase: downloadBase) { } diff --git a/src/Jackett.Common/Indexers/BeyondHDAPI.cs b/src/Jackett.Common/Indexers/BeyondHDAPI.cs index d4d33a752..517ceaf0f 100644 --- a/src/Jackett.Common/Indexers/BeyondHDAPI.cs +++ b/src/Jackett.Common/Indexers/BeyondHDAPI.cs @@ -2,7 +2,6 @@ using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Linq; -using System.Text; using System.Threading.Tasks; using Jackett.Common.Models; using Jackett.Common.Models.IndexerConfig.Bespoke; @@ -25,6 +24,8 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private readonly string APIBASE = "https://beyond-hd.me/api/torrents/"; private new ConfigurationDataBeyondHDApi configData @@ -35,29 +36,35 @@ namespace Jackett.Common.Indexers public BeyondHDAPI(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - LimitsDefault = 100, - LimitsMax = 100, - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId, TvSearchParam.TmdbId - }, - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.TmdbId - } - }, - configService: configService, + : base(configService: configService, client: wc, logger: l, p: ps, cacheService: cs, configData: new ConfigurationDataBeyondHDApi("Find the API and RSS keys under your security settings (your profile picture -> my security)")) { - AddCategoryMapping("Movies", TorznabCatType.Movies); - AddCategoryMapping("TV", TorznabCatType.TV); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + LimitsDefault = 100, + LimitsMax = 100, + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId, TvSearchParam.TmdbId + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.TmdbId + } + }; + + caps.Categories.AddCategoryMapping("Movies", TorznabCatType.Movies); + caps.Categories.AddCategoryMapping("TV", TorznabCatType.TV); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/BitHDTV.cs b/src/Jackett.Common/Indexers/BitHDTV.cs index 275567ef7..1a994daa4 100644 --- a/src/Jackett.Common/Indexers/BitHDTV.cs +++ b/src/Jackett.Common/Indexers/BitHDTV.cs @@ -29,38 +29,46 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string SearchUrl => SiteLink + "torrents.php"; private new ConfigurationDataCookie configData => (ConfigurationDataCookie)base.configData; public BitHDTV(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId, TvSearchParam.Genre - }, - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.Genre - } - }, - configService: configService, + : base(configService: configService, client: w, logger: l, p: ps, cacheService: cs, configData: new ConfigurationDataCookie("For best results, change the 'Torrents per page' setting to 100 in your profile.")) { - AddCategoryMapping(6, TorznabCatType.AudioLossless, "HQ Audio"); - AddCategoryMapping(7, TorznabCatType.Movies, "Movies"); - AddCategoryMapping(8, TorznabCatType.AudioVideo, "Music Videos"); - AddCategoryMapping(9, TorznabCatType.Other, "Other"); - AddCategoryMapping(10, TorznabCatType.TV, "TV"); - AddCategoryMapping(12, TorznabCatType.TV, "TV/Seasonpack"); - AddCategoryMapping(11, TorznabCatType.XXX, "XXX"); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId, TvSearchParam.Genre + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.Genre + } + }; + + caps.Categories.AddCategoryMapping(6, TorznabCatType.AudioLossless, "HQ Audio"); + caps.Categories.AddCategoryMapping(7, TorznabCatType.Movies, "Movies"); + caps.Categories.AddCategoryMapping(8, TorznabCatType.AudioVideo, "Music Videos"); + caps.Categories.AddCategoryMapping(9, TorznabCatType.Other, "Other"); + caps.Categories.AddCategoryMapping(10, TorznabCatType.TV, "TV"); + caps.Categories.AddCategoryMapping(12, TorznabCatType.TV, "TV/Seasonpack"); + caps.Categories.AddCategoryMapping(11, TorznabCatType.XXX, "XXX"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/BrasilTracker.cs b/src/Jackett.Common/Indexers/BrasilTracker.cs index 9bc463086..364706926 100644 --- a/src/Jackett.Common/Indexers/BrasilTracker.cs +++ b/src/Jackett.Common/Indexers/BrasilTracker.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using System.Collections.Specialized; using System.Diagnostics.CodeAnalysis; using System.Linq; -using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using AngleSharp.Html.Parser; @@ -27,6 +26,8 @@ namespace Jackett.Common.Indexers public override string Language => "pt-BR"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string LoginUrl => SiteLink + "login.php"; private string BrowseUrl => SiteLink + "torrents.php"; private static readonly Regex _EpisodeRegex = new Regex(@"(?:[SsEe]\d{2,4}){1,2}"); @@ -35,34 +36,40 @@ namespace Jackett.Common.Indexers public BrasilTracker(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.Genre - }, - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.Genre - }, - MusicSearchParams = new List - { - MusicSearchParam.Q, MusicSearchParam.Genre - }, - BookSearchParams = new List - { - BookSearchParam.Q, BookSearchParam.Genre - } - }, - configService: configService, - client: wc, - logger: l, - p: ps, - cacheService: cs, - configData: new ConfigurationDataBasicLogin("BrasilTracker does not return categories in its search results.
To add to your Apps' Torznab indexer, replace all categories with 8000(Other).
For best results, change the Torrents per page: setting to 100 on your account profile.")) + : base(configService: configService, + client: wc, + logger: l, + p: ps, + cacheService: cs, + configData: new ConfigurationDataBasicLogin("BrasilTracker does not return categories in its search results.
To add to your Apps' Torznab indexer, replace all categories with 8000(Other).
For best results, change the Torrents per page: setting to 100 on your account profile.")) { - AddCategoryMapping(1, TorznabCatType.Other, "Other"); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.Genre + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.Genre + }, + MusicSearchParams = new List + { + MusicSearchParam.Q, MusicSearchParam.Genre + }, + BookSearchParams = new List + { + BookSearchParam.Q, BookSearchParam.Genre + } + }; + + caps.Categories.AddCategoryMapping(1, TorznabCatType.Other, "Other"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/BroadcasTheNet.cs b/src/Jackett.Common/Indexers/BroadcasTheNet.cs index 638e61eeb..750af896e 100644 --- a/src/Jackett.Common/Indexers/BroadcasTheNet.cs +++ b/src/Jackett.Common/Indexers/BroadcasTheNet.cs @@ -2,7 +2,6 @@ using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Linq; -using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using Jackett.Common.Models; @@ -28,6 +27,8 @@ namespace Jackett.Common.Indexers public override bool SupportsPagination => true; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + // based on https://github.com/Prowlarr/Prowlarr/tree/develop/src/NzbDrone.Core/Indexers/Definitions/BroadcastheNet private readonly string APIBASE = "https://api.broadcasthe.net"; @@ -40,29 +41,35 @@ namespace Jackett.Common.Indexers public BroadcasTheNet(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - LimitsDefault = 100, - LimitsMax = 1000, - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.TvdbId - } - }, - configService: configService, + : base(configService: configService, client: wc, logger: l, p: ps, cacheService: cs, configData: new ConfigurationDataAPIKey()) { - AddCategoryMapping("SD", TorznabCatType.TVSD, "SD"); - AddCategoryMapping("720p", TorznabCatType.TVHD, "720p"); - AddCategoryMapping("1080p", TorznabCatType.TVHD, "1080p"); - AddCategoryMapping("1080i", TorznabCatType.TVHD, "1080i"); - AddCategoryMapping("2160p", TorznabCatType.TVHD, "2160p"); - AddCategoryMapping("Portable Device", TorznabCatType.TVSD, "Portable Device"); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + LimitsDefault = 100, + LimitsMax = 1000, + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.TvdbId + } + }; + + caps.Categories.AddCategoryMapping("SD", TorznabCatType.TVSD, "SD"); + caps.Categories.AddCategoryMapping("720p", TorznabCatType.TVHD, "720p"); + caps.Categories.AddCategoryMapping("1080p", TorznabCatType.TVHD, "1080p"); + caps.Categories.AddCategoryMapping("1080i", TorznabCatType.TVHD, "1080i"); + caps.Categories.AddCategoryMapping("2160p", TorznabCatType.TVHD, "2160p"); + caps.Categories.AddCategoryMapping("Portable Device", TorznabCatType.TVSD, "Portable Device"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/BrokenStones.cs b/src/Jackett.Common/Indexers/BrokenStones.cs index d660d483e..9c1fd5a88 100644 --- a/src/Jackett.Common/Indexers/BrokenStones.cs +++ b/src/Jackett.Common/Indexers/BrokenStones.cs @@ -21,10 +21,11 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + public BrokenStones(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, - ICacheService cs) - : base(caps: new TorznabCapabilities(), - configService: configService, + ICacheService cs) + : base(configService: configService, client: wc, logger: l, p: ps, @@ -32,14 +33,22 @@ namespace Jackett.Common.Indexers supportsFreeleechTokens: true, has2Fa: true) { - AddCategoryMapping(1, TorznabCatType.PCMac, "MacOS Apps"); - AddCategoryMapping(2, TorznabCatType.PCMac, "MacOS Games"); - AddCategoryMapping(3, TorznabCatType.PCMobileiOS, "iOS Apps"); - AddCategoryMapping(4, TorznabCatType.PCMobileiOS, "iOS Games"); - AddCategoryMapping(5, TorznabCatType.Other, "Graphics"); - AddCategoryMapping(6, TorznabCatType.Audio, "Audio"); - AddCategoryMapping(7, TorznabCatType.Other, "Tutorials"); - AddCategoryMapping(8, TorznabCatType.Other, "Other"); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities(); + + caps.Categories.AddCategoryMapping(1, TorznabCatType.PCMac, "MacOS Apps"); + caps.Categories.AddCategoryMapping(2, TorznabCatType.PCMac, "MacOS Games"); + caps.Categories.AddCategoryMapping(3, TorznabCatType.PCMobileiOS, "iOS Apps"); + caps.Categories.AddCategoryMapping(4, TorznabCatType.PCMobileiOS, "iOS Games"); + caps.Categories.AddCategoryMapping(5, TorznabCatType.Other, "Graphics"); + caps.Categories.AddCategoryMapping(6, TorznabCatType.Audio, "Audio"); + caps.Categories.AddCategoryMapping(7, TorznabCatType.Other, "Tutorials"); + caps.Categories.AddCategoryMapping(8, TorznabCatType.Other, "Other"); + + return caps; } } } diff --git a/src/Jackett.Common/Indexers/CGPeers.cs b/src/Jackett.Common/Indexers/CGPeers.cs index 658cafe8f..31a5753a3 100644 --- a/src/Jackett.Common/Indexers/CGPeers.cs +++ b/src/Jackett.Common/Indexers/CGPeers.cs @@ -21,23 +21,32 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + public CGPeers(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, - ICacheService cs) - : base(caps: new TorznabCapabilities(), - configService: configService, + ICacheService cs) + : base(configService: configService, client: wc, logger: l, p: ps, cs: cs, supportsFreeleechTokens: true) { - AddCategoryMapping(1, TorznabCatType.PCISO, "Full Applications"); - AddCategoryMapping(2, TorznabCatType.PC0day, "Plugins"); - AddCategoryMapping(3, TorznabCatType.Other, "Tutorials"); - AddCategoryMapping(4, TorznabCatType.Other, "Models"); - AddCategoryMapping(5, TorznabCatType.Other, "Materials"); - AddCategoryMapping(6, TorznabCatType.OtherMisc, "Misc"); - AddCategoryMapping(7, TorznabCatType.Other, "GameDev"); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities(); + + caps.Categories.AddCategoryMapping(1, TorznabCatType.PCISO, "Full Applications"); + caps.Categories.AddCategoryMapping(2, TorznabCatType.PC0day, "Plugins"); + caps.Categories.AddCategoryMapping(3, TorznabCatType.Other, "Tutorials"); + caps.Categories.AddCategoryMapping(4, TorznabCatType.Other, "Models"); + caps.Categories.AddCategoryMapping(5, TorznabCatType.Other, "Materials"); + caps.Categories.AddCategoryMapping(6, TorznabCatType.OtherMisc, "Misc"); + caps.Categories.AddCategoryMapping(7, TorznabCatType.Other, "GameDev"); + + return caps; } } } diff --git a/src/Jackett.Common/Indexers/CardigannIndexer.cs b/src/Jackett.Common/Indexers/CardigannIndexer.cs index 82c66f6c1..e93654b27 100644 --- a/src/Jackett.Common/Indexers/CardigannIndexer.cs +++ b/src/Jackett.Common/Indexers/CardigannIndexer.cs @@ -190,7 +190,7 @@ namespace Jackett.Common.Indexers logger.Error(string.Format("CardigannIndexer ({0}): invalid Torznab category for id {1}: {2}", Id, Category.Key, Category.Value)); continue; } - AddCategoryMapping(Category.Key, cat); + TorznabCaps.Categories.AddCategoryMapping(Category.Key, cat); } } @@ -209,7 +209,7 @@ namespace Jackett.Common.Indexers continue; } } - AddCategoryMapping(Categorymapping.id, TorznabCat, Categorymapping.desc); + TorznabCaps.Categories.AddCategoryMapping(Categorymapping.id, TorznabCat, Categorymapping.desc); if (Categorymapping.Default) DefaultCategories.Add(Categorymapping.id); } diff --git a/src/Jackett.Common/Indexers/Cinecalidad.cs b/src/Jackett.Common/Indexers/Cinecalidad.cs index c1da81275..8334ad5b8 100644 --- a/src/Jackett.Common/Indexers/Cinecalidad.cs +++ b/src/Jackett.Common/Indexers/Cinecalidad.cs @@ -45,24 +45,35 @@ namespace Jackett.Common.Indexers public override string Language => "es-419"; public override string Type => "public"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private const int MaxLatestPageLimit = 3; // 12 items per page * 3 pages = 36 private const int MaxSearchPageLimit = 6; public Cinecalidad(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - MovieSearchParams = new List { MovieSearchParam.Q } - }, - configService: configService, + : base(configService: configService, client: wc, logger: l, p: ps, cacheService: cs, configData: new ConfigurationData()) { - AddCategoryMapping(1, TorznabCatType.MoviesHD); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + MovieSearchParams = new List + { + MovieSearchParam.Q + } + }; + + caps.Categories.AddCategoryMapping(1, TorznabCatType.MoviesHD); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/CinemaZ.cs b/src/Jackett.Common/Indexers/CinemaZ.cs index 29f66811e..66ad58d85 100644 --- a/src/Jackett.Common/Indexers/CinemaZ.cs +++ b/src/Jackett.Common/Indexers/CinemaZ.cs @@ -16,37 +16,45 @@ namespace Jackett.Common.Indexers public override string Description => "Part of the Avistaz network."; public override string SiteLink { get; protected set; } = "https://cinemaz.to/"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + public CinemaZ(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, - ICacheService cs) - : base( - caps: new TorznabCapabilities - { - LimitsDefault = 50, - LimitsMax = 50, - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId, TvSearchParam.Genre - }, - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.Genre - } - }, - configService: configService, + ICacheService cs) + : base(configService: configService, client: wc, logger: l, p: ps, cs: cs ) { - AddCategoryMapping(1, TorznabCatType.Movies); - AddCategoryMapping(1, TorznabCatType.MoviesUHD); - AddCategoryMapping(1, TorznabCatType.MoviesHD); - AddCategoryMapping(1, TorznabCatType.MoviesSD); - AddCategoryMapping(2, TorznabCatType.TV); - AddCategoryMapping(2, TorznabCatType.TVUHD); - AddCategoryMapping(2, TorznabCatType.TVHD); - AddCategoryMapping(2, TorznabCatType.TVSD); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + LimitsDefault = 50, + LimitsMax = 50, + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId, TvSearchParam.Genre + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.Genre + } + }; + + caps.Categories.AddCategoryMapping(1, TorznabCatType.Movies); + caps.Categories.AddCategoryMapping(1, TorznabCatType.MoviesUHD); + caps.Categories.AddCategoryMapping(1, TorznabCatType.MoviesHD); + caps.Categories.AddCategoryMapping(1, TorznabCatType.MoviesSD); + caps.Categories.AddCategoryMapping(2, TorznabCatType.TV); + caps.Categories.AddCategoryMapping(2, TorznabCatType.TVUHD); + caps.Categories.AddCategoryMapping(2, TorznabCatType.TVHD); + caps.Categories.AddCategoryMapping(2, TorznabCatType.TVSD); + + return caps; } } } diff --git a/src/Jackett.Common/Indexers/DICMusic.cs b/src/Jackett.Common/Indexers/DICMusic.cs index f7eefa086..f5229bea7 100644 --- a/src/Jackett.Common/Indexers/DICMusic.cs +++ b/src/Jackett.Common/Indexers/DICMusic.cs @@ -8,8 +8,6 @@ using Jackett.Common.Services.Interfaces; using Jackett.Common.Utils.Clients; using NLog; -using static Jackett.Common.Models.IndexerConfig.ConfigurationData; - namespace Jackett.Common.Indexers { [ExcludeFromCodeCoverage] @@ -22,17 +20,11 @@ namespace Jackett.Common.Indexers public override string Language => "zh-CN"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + public DICMusic(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, - ICacheService cs) - : base( - caps: new TorznabCapabilities - { - MusicSearchParams = new List - { - MusicSearchParam.Q, MusicSearchParam.Album, MusicSearchParam.Artist, MusicSearchParam.Label, MusicSearchParam.Year - } - }, - configService: configService, + ICacheService cs) + : base(configService: configService, client: wc, logger: l, p: ps, @@ -41,8 +33,22 @@ namespace Jackett.Common.Indexers supportsFreeleechOnly: true, has2Fa: true) { - AddCategoryMapping(1, TorznabCatType.Audio, "Music"); - AddCategoryMapping(2, TorznabCatType.PC, "Applications"); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + MusicSearchParams = new List + { + MusicSearchParam.Q, MusicSearchParam.Album, MusicSearchParam.Artist, MusicSearchParam.Label, MusicSearchParam.Year + } + }; + + caps.Categories.AddCategoryMapping(1, TorznabCatType.Audio, "Music"); + caps.Categories.AddCategoryMapping(2, TorznabCatType.PC, "Applications"); + + return caps; } protected override async Task> PerformQuery(TorznabQuery query) diff --git a/src/Jackett.Common/Indexers/DarmoweTorrenty.cs b/src/Jackett.Common/Indexers/DarmoweTorrenty.cs index 0976fc8e0..04ebdd892 100644 --- a/src/Jackett.Common/Indexers/DarmoweTorrenty.cs +++ b/src/Jackett.Common/Indexers/DarmoweTorrenty.cs @@ -30,6 +30,8 @@ namespace Jackett.Common.Indexers public override string Language => "pl-PL"; public override string Type => "semi-private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string LoginUrl => SiteLink + "login.php"; private string BrowseUrl => SiteLink + "torrenty.php"; @@ -45,86 +47,92 @@ namespace Jackett.Common.Indexers public DarmoweTorenty(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep - }, - MovieSearchParams = new List - { - MovieSearchParam.Q - }, - MusicSearchParams = new List - { - MusicSearchParam.Q - }, - BookSearchParams = new List - { - BookSearchParam.Q - } - }, - configService: configService, + : base(configService: configService, client: wc, logger: l, p: ps, cacheService: cs, configData: new ConfigurationDataBasicLoginWithRSSAndDisplay()) { - AddCategoryMapping(14, TorznabCatType.Movies, "Filmy"); - AddCategoryMapping(27, TorznabCatType.MoviesDVD, "Filmy DVD-R"); - AddCategoryMapping(28, TorznabCatType.MoviesSD, "Filmy VCD/SVCD"); - AddCategoryMapping(29, TorznabCatType.MoviesBluRay, "Filmy BluRay/x264"); - AddCategoryMapping(30, TorznabCatType.MoviesSD, "Filmy DivX/XviD LEKTOR/NAPISY PL"); - AddCategoryMapping(72, TorznabCatType.MoviesSD, "Filmy DivX/XviD ENG/..."); - AddCategoryMapping(31, TorznabCatType.Movies, "Filmy RMVB"); - AddCategoryMapping(74, TorznabCatType.MoviesHD, "Filmy HD"); - AddCategoryMapping(75, TorznabCatType.Movies3D, "Filmy 3D"); - AddCategoryMapping(16, TorznabCatType.TV, "Seriale"); - AddCategoryMapping(25, TorznabCatType.TV, "Seriale Polskie"); - AddCategoryMapping(26, TorznabCatType.TV, "Seriale Zagraniczne"); - AddCategoryMapping(17, TorznabCatType.Movies, "Dla Dzieci"); - AddCategoryMapping(32, TorznabCatType.Movies, "Bajki Pl/Eng"); - AddCategoryMapping(18, TorznabCatType.PCGames, "Gry"); - AddCategoryMapping(34, TorznabCatType.PCGames, "Gry PC"); - AddCategoryMapping(35, TorznabCatType.ConsolePSP, "Gry PS2/PS3/PSP"); - AddCategoryMapping(36, TorznabCatType.ConsoleXBox, "Gry Xbox"); - AddCategoryMapping(37, TorznabCatType.Console, "Gry Inne Konsole"); - AddCategoryMapping(19, TorznabCatType.Audio, "Muzyka"); - AddCategoryMapping(38, TorznabCatType.Audio, "Muzyka Polska/Zagraniczna"); - AddCategoryMapping(39, TorznabCatType.Audio, "Muzyka Soundtracki"); - AddCategoryMapping(40, TorznabCatType.Audio, "Muzyka Teledyski/Koncerty"); - AddCategoryMapping(20, TorznabCatType.PCMobileOther, "GSM/PDA"); - AddCategoryMapping(42, TorznabCatType.PCMobileOther, "Tapety GSM/PDA"); - AddCategoryMapping(43, TorznabCatType.PCMobileOther, "Programy GSM/PDA"); - AddCategoryMapping(44, TorznabCatType.PCMobileOther, "Filmy GSM/PDA"); - AddCategoryMapping(45, TorznabCatType.PCMobileOther, "Dzwonki GSM/PDA"); - AddCategoryMapping(46, TorznabCatType.PCMobileOther, "Gry GSM/PDA"); - AddCategoryMapping(21, TorznabCatType.Books, "Książki/Czasopisma"); - AddCategoryMapping(47, TorznabCatType.BooksEBook, "Książki/Czasopisma E-Booki"); - AddCategoryMapping(48, TorznabCatType.AudioAudiobook, "Książki/Czasopisma Audio-Booki"); - AddCategoryMapping(49, TorznabCatType.BooksMags, "Książki/Czasopisma Czasopisma"); - AddCategoryMapping(50, TorznabCatType.BooksComics, "Książki/Czasopisma Komiksy"); - AddCategoryMapping(22, TorznabCatType.PC, "Programy"); - AddCategoryMapping(51, TorznabCatType.PC0day, "Programy Windows"); - AddCategoryMapping(52, TorznabCatType.PC, "Programy Linux"); - AddCategoryMapping(53, TorznabCatType.PCMac, "Programy Macintosh"); - AddCategoryMapping(23, TorznabCatType.Other, "Inne"); - AddCategoryMapping(55, TorznabCatType.Other, "Inne Tapety"); - AddCategoryMapping(54, TorznabCatType.Other, "Inne Śmieszne"); - AddCategoryMapping(56, TorznabCatType.TVSport, "Inne Sport"); - AddCategoryMapping(57, TorznabCatType.Other, "Inne Pozostałe"); - AddCategoryMapping(24, TorznabCatType.XXX, "Erotyka"); - AddCategoryMapping(58, TorznabCatType.XXX, "Erotyka Czasopisma"); - AddCategoryMapping(59, TorznabCatType.XXX, "Erotyka Zdjęcia"); - AddCategoryMapping(60, TorznabCatType.XXX, "Erotyka Filmy"); - AddCategoryMapping(61, TorznabCatType.XXX, "Erotyka Gry"); - AddCategoryMapping(63, TorznabCatType.XXX, "Erotyka Hentai+18"); - AddCategoryMapping(68, TorznabCatType.TVAnime, "Anime"); - AddCategoryMapping(69, TorznabCatType.TVAnime, "Anime Pl"); - AddCategoryMapping(70, TorznabCatType.TVAnime, "Anime"); - AddCategoryMapping(76, TorznabCatType.Other, "Archiwum"); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep + }, + MovieSearchParams = new List + { + MovieSearchParam.Q + }, + MusicSearchParams = new List + { + MusicSearchParam.Q + }, + BookSearchParams = new List + { + BookSearchParam.Q + } + }; + + caps.Categories.AddCategoryMapping(14, TorznabCatType.Movies, "Filmy"); + caps.Categories.AddCategoryMapping(27, TorznabCatType.MoviesDVD, "Filmy DVD-R"); + caps.Categories.AddCategoryMapping(28, TorznabCatType.MoviesSD, "Filmy VCD/SVCD"); + caps.Categories.AddCategoryMapping(29, TorznabCatType.MoviesBluRay, "Filmy BluRay/x264"); + caps.Categories.AddCategoryMapping(30, TorznabCatType.MoviesSD, "Filmy DivX/XviD LEKTOR/NAPISY PL"); + caps.Categories.AddCategoryMapping(72, TorznabCatType.MoviesSD, "Filmy DivX/XviD ENG/..."); + caps.Categories.AddCategoryMapping(31, TorznabCatType.Movies, "Filmy RMVB"); + caps.Categories.AddCategoryMapping(74, TorznabCatType.MoviesHD, "Filmy HD"); + caps.Categories.AddCategoryMapping(75, TorznabCatType.Movies3D, "Filmy 3D"); + caps.Categories.AddCategoryMapping(16, TorznabCatType.TV, "Seriale"); + caps.Categories.AddCategoryMapping(25, TorznabCatType.TV, "Seriale Polskie"); + caps.Categories.AddCategoryMapping(26, TorznabCatType.TV, "Seriale Zagraniczne"); + caps.Categories.AddCategoryMapping(17, TorznabCatType.Movies, "Dla Dzieci"); + caps.Categories.AddCategoryMapping(32, TorznabCatType.Movies, "Bajki Pl/Eng"); + caps.Categories.AddCategoryMapping(18, TorznabCatType.PCGames, "Gry"); + caps.Categories.AddCategoryMapping(34, TorznabCatType.PCGames, "Gry PC"); + caps.Categories.AddCategoryMapping(35, TorznabCatType.ConsolePSP, "Gry PS2/PS3/PSP"); + caps.Categories.AddCategoryMapping(36, TorznabCatType.ConsoleXBox, "Gry Xbox"); + caps.Categories.AddCategoryMapping(37, TorznabCatType.Console, "Gry Inne Konsole"); + caps.Categories.AddCategoryMapping(19, TorznabCatType.Audio, "Muzyka"); + caps.Categories.AddCategoryMapping(38, TorznabCatType.Audio, "Muzyka Polska/Zagraniczna"); + caps.Categories.AddCategoryMapping(39, TorznabCatType.Audio, "Muzyka Soundtracki"); + caps.Categories.AddCategoryMapping(40, TorznabCatType.Audio, "Muzyka Teledyski/Koncerty"); + caps.Categories.AddCategoryMapping(20, TorznabCatType.PCMobileOther, "GSM/PDA"); + caps.Categories.AddCategoryMapping(42, TorznabCatType.PCMobileOther, "Tapety GSM/PDA"); + caps.Categories.AddCategoryMapping(43, TorznabCatType.PCMobileOther, "Programy GSM/PDA"); + caps.Categories.AddCategoryMapping(44, TorznabCatType.PCMobileOther, "Filmy GSM/PDA"); + caps.Categories.AddCategoryMapping(45, TorznabCatType.PCMobileOther, "Dzwonki GSM/PDA"); + caps.Categories.AddCategoryMapping(46, TorznabCatType.PCMobileOther, "Gry GSM/PDA"); + caps.Categories.AddCategoryMapping(21, TorznabCatType.Books, "Książki/Czasopisma"); + caps.Categories.AddCategoryMapping(47, TorznabCatType.BooksEBook, "Książki/Czasopisma E-Booki"); + caps.Categories.AddCategoryMapping(48, TorznabCatType.AudioAudiobook, "Książki/Czasopisma Audio-Booki"); + caps.Categories.AddCategoryMapping(49, TorznabCatType.BooksMags, "Książki/Czasopisma Czasopisma"); + caps.Categories.AddCategoryMapping(50, TorznabCatType.BooksComics, "Książki/Czasopisma Komiksy"); + caps.Categories.AddCategoryMapping(22, TorznabCatType.PC, "Programy"); + caps.Categories.AddCategoryMapping(51, TorznabCatType.PC0day, "Programy Windows"); + caps.Categories.AddCategoryMapping(52, TorznabCatType.PC, "Programy Linux"); + caps.Categories.AddCategoryMapping(53, TorznabCatType.PCMac, "Programy Macintosh"); + caps.Categories.AddCategoryMapping(23, TorznabCatType.Other, "Inne"); + caps.Categories.AddCategoryMapping(55, TorznabCatType.Other, "Inne Tapety"); + caps.Categories.AddCategoryMapping(54, TorznabCatType.Other, "Inne Śmieszne"); + caps.Categories.AddCategoryMapping(56, TorznabCatType.TVSport, "Inne Sport"); + caps.Categories.AddCategoryMapping(57, TorznabCatType.Other, "Inne Pozostałe"); + caps.Categories.AddCategoryMapping(24, TorznabCatType.XXX, "Erotyka"); + caps.Categories.AddCategoryMapping(58, TorznabCatType.XXX, "Erotyka Czasopisma"); + caps.Categories.AddCategoryMapping(59, TorznabCatType.XXX, "Erotyka Zdjęcia"); + caps.Categories.AddCategoryMapping(60, TorznabCatType.XXX, "Erotyka Filmy"); + caps.Categories.AddCategoryMapping(61, TorznabCatType.XXX, "Erotyka Gry"); + caps.Categories.AddCategoryMapping(63, TorznabCatType.XXX, "Erotyka Hentai+18"); + caps.Categories.AddCategoryMapping(68, TorznabCatType.TVAnime, "Anime"); + caps.Categories.AddCategoryMapping(69, TorznabCatType.TVAnime, "Anime Pl"); + caps.Categories.AddCategoryMapping(70, TorznabCatType.TVAnime, "Anime"); + caps.Categories.AddCategoryMapping(76, TorznabCatType.Other, "Archiwum"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/DivxTotal.cs b/src/Jackett.Common/Indexers/DivxTotal.cs index 9619b2590..735efe311 100644 --- a/src/Jackett.Common/Indexers/DivxTotal.cs +++ b/src/Jackett.Common/Indexers/DivxTotal.cs @@ -50,6 +50,8 @@ namespace Jackett.Common.Indexers public override string Language => "es-ES"; public override string Type => "public"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private const string DownloadLink = "/download_tt.php"; private const int MaxNrOfResults = 100; private const int MaxPageLoads = 3; @@ -75,19 +77,7 @@ namespace Jackett.Common.Indexers public DivxTotal(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep - }, - MovieSearchParams = new List - { - MovieSearchParam.Q - } - }, - configService: configService, + : base(configService: configService, client: w, logger: l, p: ps, @@ -98,14 +88,31 @@ namespace Jackett.Common.Indexers configData.AddDynamic("MatchWords", matchWords); configData.AddDynamic("flaresolverr", new DisplayInfoConfigurationItem("FlareSolverr", "This site may use Cloudflare DDoS Protection, therefore Jackett requires FlareSolverr to access it.")); + } - AddCategoryMapping(DivxTotalCategories.Peliculas, TorznabCatType.MoviesSD, "Peliculas"); - AddCategoryMapping(DivxTotalCategories.PeliculasHd, TorznabCatType.MoviesHD, "Peliculas HD"); - AddCategoryMapping(DivxTotalCategories.Peliculas3D, TorznabCatType.Movies3D, "Peliculas 3D"); - AddCategoryMapping(DivxTotalCategories.PeliculasDvdr, TorznabCatType.MoviesDVD, "Peliculas DVD-r"); - AddCategoryMapping(DivxTotalCategories.Series, TorznabCatType.TVSD, "Series"); - AddCategoryMapping(DivxTotalCategories.Programas, TorznabCatType.PC, "Programas"); - AddCategoryMapping(DivxTotalCategories.Otros, TorznabCatType.OtherMisc, "Otros"); + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep + }, + MovieSearchParams = new List + { + MovieSearchParam.Q + } + }; + + caps.Categories.AddCategoryMapping(DivxTotalCategories.Peliculas, TorznabCatType.MoviesSD, "Peliculas"); + caps.Categories.AddCategoryMapping(DivxTotalCategories.PeliculasHd, TorznabCatType.MoviesHD, "Peliculas HD"); + caps.Categories.AddCategoryMapping(DivxTotalCategories.Peliculas3D, TorznabCatType.Movies3D, "Peliculas 3D"); + caps.Categories.AddCategoryMapping(DivxTotalCategories.PeliculasDvdr, TorznabCatType.MoviesDVD, "Peliculas DVD-r"); + caps.Categories.AddCategoryMapping(DivxTotalCategories.Series, TorznabCatType.TVSD, "Series"); + caps.Categories.AddCategoryMapping(DivxTotalCategories.Programas, TorznabCatType.PC, "Programas"); + caps.Categories.AddCategoryMapping(DivxTotalCategories.Otros, TorznabCatType.OtherMisc, "Otros"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/DonTorrent.cs b/src/Jackett.Common/Indexers/DonTorrent.cs index e40be3d88..786ef1f23 100644 --- a/src/Jackett.Common/Indexers/DonTorrent.cs +++ b/src/Jackett.Common/Indexers/DonTorrent.cs @@ -58,6 +58,8 @@ namespace Jackett.Common.Indexers public override string Language => "es-ES"; public override string Type => "public"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private static class DonTorrentCatType { public static string Pelicula => "pelicula"; @@ -85,23 +87,7 @@ namespace Jackett.Common.Indexers public DonTorrent(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep - }, - MovieSearchParams = new List - { - MovieSearchParam.Q - }, - MusicSearchParams = new List - { - MusicSearchParam.Q, - } - }, - configService: configService, + : base(configService: configService, client: w, logger: l, p: ps, @@ -113,12 +99,33 @@ namespace Jackett.Common.Indexers var matchWords = new BoolConfigurationItem("Match words in title") { Value = true }; configData.AddDynamic("MatchWords", matchWords); + } - AddCategoryMapping(DonTorrentCatType.Pelicula, TorznabCatType.Movies, "Pelicula"); - AddCategoryMapping(DonTorrentCatType.Pelicula4K, TorznabCatType.MoviesUHD, "Peliculas 4K"); - AddCategoryMapping(DonTorrentCatType.Serie, TorznabCatType.TVSD, "Serie"); - AddCategoryMapping(DonTorrentCatType.SerieHD, TorznabCatType.TVHD, "Serie HD"); - AddCategoryMapping(DonTorrentCatType.Musica, TorznabCatType.Audio, "Música"); + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep + }, + MovieSearchParams = new List + { + MovieSearchParam.Q + }, + MusicSearchParams = new List + { + MusicSearchParam.Q, + } + }; + + caps.Categories.AddCategoryMapping(DonTorrentCatType.Pelicula, TorznabCatType.Movies, "Pelicula"); + caps.Categories.AddCategoryMapping(DonTorrentCatType.Pelicula4K, TorznabCatType.MoviesUHD, "Peliculas 4K"); + caps.Categories.AddCategoryMapping(DonTorrentCatType.Serie, TorznabCatType.TVSD, "Serie"); + caps.Categories.AddCategoryMapping(DonTorrentCatType.SerieHD, TorznabCatType.TVHD, "Serie HD"); + caps.Categories.AddCategoryMapping(DonTorrentCatType.Musica, TorznabCatType.Audio, "Música"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/EpubLibre.cs b/src/Jackett.Common/Indexers/EpubLibre.cs index 59b94777d..c06b089e1 100644 --- a/src/Jackett.Common/Indexers/EpubLibre.cs +++ b/src/Jackett.Common/Indexers/EpubLibre.cs @@ -49,6 +49,8 @@ namespace Jackett.Common.Indexers public override string Language => "es-ES"; public override string Type => "public"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string SearchUrl => SiteLink + "catalogo/index/{0}/nuevo/todos/sin/todos/{1}/ajax"; private string SobrecargaUrl => SiteLink + "inicio/sobrecarga"; private const int MaxItemsPerPage = 18; @@ -75,22 +77,28 @@ namespace Jackett.Common.Indexers public EpubLibre(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - BookSearchParams = new List - { - BookSearchParam.Q // TODO: add more book parameters - } - }, - configService: configService, + : base(configService: configService, client: wc, logger: l, p: ps, cacheService: cs, configData: new ConfigurationData()) { - AddCategoryMapping(1, TorznabCatType.BooksEBook); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + BookSearchParams = new List + { + BookSearchParam.Q // TODO: add more book parameters + } + }; + + caps.Categories.AddCategoryMapping(1, TorznabCatType.BooksEBook); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/EraiRaws.cs b/src/Jackett.Common/Indexers/EraiRaws.cs index d16c59bd2..498118184 100644 --- a/src/Jackett.Common/Indexers/EraiRaws.cs +++ b/src/Jackett.Common/Indexers/EraiRaws.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using System.Xml; @@ -40,19 +39,13 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "semi-private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + const string RSS_PATH = "feed/?type=magnet"; public EraiRaws(IIndexerConfigurationService configService, Utils.Clients.WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q - } - }, - configService: configService, + : base(configService: configService, client: wc, logger: l, p: ps, @@ -81,9 +74,21 @@ namespace Jackett.Common.Indexers "title-detail-parsing-help", new DisplayInfoConfigurationItem("", "Title Detail Parsing will attempt to determine the season and episode number from the release names and reformat them as a suffix in the format S1E1. If successful, this should provide better matching in applications such as Sonarr.") ); + } - // Configure the category mappings - AddCategoryMapping(1, TorznabCatType.TVAnime, "Anime - Sub"); + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q + } + }; + + caps.Categories.AddCategoryMapping(1, TorznabCatType.TVAnime, "Anime - Sub"); + + return caps; } private TitleParser titleParser = new TitleParser(); diff --git a/src/Jackett.Common/Indexers/ExoticaZ.cs b/src/Jackett.Common/Indexers/ExoticaZ.cs index 955ffc09e..68c5a1530 100644 --- a/src/Jackett.Common/Indexers/ExoticaZ.cs +++ b/src/Jackett.Common/Indexers/ExoticaZ.cs @@ -24,26 +24,38 @@ namespace Jackett.Common.Indexers "https://torrents.yourexotic.com/" }; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private new ConfigurationDataAvistazTracker configData => (ConfigurationDataAvistazTracker)base.configData; public ExoticaZ(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base(caps: new TorznabCapabilities(), - configService: configService, + : base(configService: configService, client: wc, logger: l, p: ps, - cs: cs - ) + cs: cs) { - AddCategoryMapping(1, TorznabCatType.XXXx264, "Video Clip"); - AddCategoryMapping(2, TorznabCatType.XXXPack, "Video Pack"); - AddCategoryMapping(3, TorznabCatType.XXXPack, "Siterip Pack"); - AddCategoryMapping(4, TorznabCatType.XXXPack, "Pornstar Pack"); - AddCategoryMapping(5, TorznabCatType.XXXDVD, "DVD"); - AddCategoryMapping(6, TorznabCatType.XXXx264, "BluRay"); - AddCategoryMapping(7, TorznabCatType.XXXImageSet, "Photo Pack"); - AddCategoryMapping(8, TorznabCatType.XXXImageSet, "Books & Magazines"); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + LimitsDefault = 50, + LimitsMax = 50 + }; + + caps.Categories.AddCategoryMapping(1, TorznabCatType.XXXx264, "Video Clip"); + caps.Categories.AddCategoryMapping(2, TorznabCatType.XXXPack, "Video Pack"); + caps.Categories.AddCategoryMapping(3, TorznabCatType.XXXPack, "Siterip Pack"); + caps.Categories.AddCategoryMapping(4, TorznabCatType.XXXPack, "Pornstar Pack"); + caps.Categories.AddCategoryMapping(5, TorznabCatType.XXXDVD, "DVD"); + caps.Categories.AddCategoryMapping(6, TorznabCatType.XXXx264, "BluRay"); + caps.Categories.AddCategoryMapping(7, TorznabCatType.XXXImageSet, "Photo Pack"); + caps.Categories.AddCategoryMapping(8, TorznabCatType.XXXImageSet, "Books & Magazines"); + + return caps; } protected override List> GetSearchQueryParameters(TorznabQuery query) diff --git a/src/Jackett.Common/Indexers/Feeds/AnimeTosho.cs b/src/Jackett.Common/Indexers/Feeds/AnimeTosho.cs index fb5ee1dfa..6385aa232 100644 --- a/src/Jackett.Common/Indexers/Feeds/AnimeTosho.cs +++ b/src/Jackett.Common/Indexers/Feeds/AnimeTosho.cs @@ -2,7 +2,6 @@ using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Linq; -using System.Text; using System.Threading.Tasks; using System.Xml.Linq; using Jackett.Common.Models; @@ -23,23 +22,31 @@ namespace Jackett.Common.Indexers.Feeds public override string Language => "en-US"; public override string Type => "public"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + public AnimeTosho(IIndexerConfigurationService configService, WebClient client, Logger logger, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep - } - }, - configService: configService, + : base(configService: configService, client: client, logger: logger, p: ps, cs: cs, configData: new ConfigurationData()) { - AddCategoryMapping(1, TorznabCatType.TVAnime); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep + } + }; + + caps.Categories.AddCategoryMapping(1, TorznabCatType.TVAnime); + + return caps; } protected override async Task> PerformQuery(TorznabQuery query) diff --git a/src/Jackett.Common/Indexers/Feeds/BaseFeedIndexer.cs b/src/Jackett.Common/Indexers/Feeds/BaseFeedIndexer.cs index 7c666842b..396485e83 100644 --- a/src/Jackett.Common/Indexers/Feeds/BaseFeedIndexer.cs +++ b/src/Jackett.Common/Indexers/Feeds/BaseFeedIndexer.cs @@ -18,9 +18,8 @@ namespace Jackett.Common.Indexers.Feeds protected BaseFeedIndexer(IIndexerConfigurationService configService, WebClient client, Logger logger, ConfigurationData configData, IProtectionService p, ICacheService cs, - TorznabCapabilities caps = null, string downloadBase = null) - : base(caps: caps, - configService: configService, + string downloadBase = null) + : base(configService: configService, client: client, logger: logger, p: p, diff --git a/src/Jackett.Common/Indexers/Feeds/BaseNewznabIndexer.cs b/src/Jackett.Common/Indexers/Feeds/BaseNewznabIndexer.cs index 6f1b7c429..e9ae824fc 100644 --- a/src/Jackett.Common/Indexers/Feeds/BaseNewznabIndexer.cs +++ b/src/Jackett.Common/Indexers/Feeds/BaseNewznabIndexer.cs @@ -17,9 +17,8 @@ namespace Jackett.Common.Indexers.Feeds { protected BaseNewznabIndexer(IIndexerConfigurationService configService, WebClient client, Logger logger, ConfigurationData configData, IProtectionService p, ICacheService cs, - TorznabCapabilities caps = null, string downloadBase = null) - : base(caps: caps, - configService: configService, + string downloadBase = null) + : base(configService: configService, client: client, logger: logger, p: p, diff --git a/src/Jackett.Common/Indexers/Feeds/MoreThanTVAPI.cs b/src/Jackett.Common/Indexers/Feeds/MoreThanTVAPI.cs index bbe1cc361..ef3b780b7 100644 --- a/src/Jackett.Common/Indexers/Feeds/MoreThanTVAPI.cs +++ b/src/Jackett.Common/Indexers/Feeds/MoreThanTVAPI.cs @@ -26,41 +26,48 @@ namespace Jackett.Common.Indexers.Feeds public override string Language => "en-US"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private new ConfigurationDataAPIKey configData => (ConfigurationDataAPIKey)base.configData; public MoreThanTVAPI(IIndexerConfigurationService configService, WebClient client, Logger logger, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId, TvSearchParam.TvdbId - }, - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId - } - }, - configService: configService, + : base(configService: configService, client: client, logger: logger, p: ps, cs: cs, configData: new ConfigurationDataAPIKey()) { - AddCategoryMapping(TorznabCatType.TVSD.ID, TorznabCatType.TVSD); - AddCategoryMapping(TorznabCatType.TVHD.ID, TorznabCatType.TVHD); - AddCategoryMapping(TorznabCatType.TVUHD.ID, TorznabCatType.TVUHD); - AddCategoryMapping(TorznabCatType.TVSport.ID, TorznabCatType.TVSport); - AddCategoryMapping(TorznabCatType.MoviesSD.ID, TorznabCatType.MoviesSD); - AddCategoryMapping(TorznabCatType.MoviesHD.ID, TorznabCatType.MoviesHD); - AddCategoryMapping(TorznabCatType.MoviesUHD.ID, TorznabCatType.MoviesUHD); - AddCategoryMapping(TorznabCatType.MoviesBluRay.ID, TorznabCatType.MoviesBluRay); - configData.AddDynamic("keyInfo", new DisplayInfoConfigurationItem(String.Empty, "Find or Generate a new API Key by accessing your MoreThanTV account User Security page and scrolling to the API Keys section.")); } + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId, TvSearchParam.TvdbId + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId + } + }; + + caps.Categories.AddCategoryMapping(TorznabCatType.TVSD.ID, TorznabCatType.TVSD); + caps.Categories.AddCategoryMapping(TorznabCatType.TVHD.ID, TorznabCatType.TVHD); + caps.Categories.AddCategoryMapping(TorznabCatType.TVUHD.ID, TorznabCatType.TVUHD); + caps.Categories.AddCategoryMapping(TorznabCatType.TVSport.ID, TorznabCatType.TVSport); + caps.Categories.AddCategoryMapping(TorznabCatType.MoviesSD.ID, TorznabCatType.MoviesSD); + caps.Categories.AddCategoryMapping(TorznabCatType.MoviesHD.ID, TorznabCatType.MoviesHD); + caps.Categories.AddCategoryMapping(TorznabCatType.MoviesUHD.ID, TorznabCatType.MoviesUHD); + caps.Categories.AddCategoryMapping(TorznabCatType.MoviesBluRay.ID, TorznabCatType.MoviesBluRay); + + return caps; + } + public override Task ApplyConfiguration(JToken configJson) { LoadValuesFromJson(configJson); diff --git a/src/Jackett.Common/Indexers/FileList.cs b/src/Jackett.Common/Indexers/FileList.cs index 6e20eed53..3042b143d 100644 --- a/src/Jackett.Common/Indexers/FileList.cs +++ b/src/Jackett.Common/Indexers/FileList.cs @@ -38,6 +38,8 @@ namespace Jackett.Common.Indexers public override string Language => "ro-RO"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string ApiUrl => SiteLink + "api.php"; private string DetailsUrl => SiteLink + "details.php"; @@ -45,60 +47,66 @@ namespace Jackett.Common.Indexers public FileList(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep - }, - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId - }, - MusicSearchParams = new List - { - MusicSearchParam.Q - }, - BookSearchParams = new List - { - BookSearchParam.Q - }, - TvSearchImdbAvailable = true - }, - configService: configService, + : base(configService: configService, client: wc, logger: l, p: ps, cacheService: cs, configData: new ConfigurationDataFileList()) { - AddCategoryMapping(1, TorznabCatType.MoviesSD, "Filme SD"); - AddCategoryMapping(2, TorznabCatType.MoviesDVD, "Filme DVD"); - AddCategoryMapping(3, TorznabCatType.MoviesForeign, "Filme DVD-RO"); - AddCategoryMapping(4, TorznabCatType.MoviesHD, "Filme HD"); - AddCategoryMapping(5, TorznabCatType.AudioLossless, "FLAC"); - AddCategoryMapping(6, TorznabCatType.MoviesUHD, "Filme 4K"); - AddCategoryMapping(7, TorznabCatType.XXX, "XXX"); - AddCategoryMapping(8, TorznabCatType.PC, "Programe"); - AddCategoryMapping(9, TorznabCatType.PCGames, "Jocuri PC"); - AddCategoryMapping(10, TorznabCatType.Console, "Jocuri Console"); - AddCategoryMapping(11, TorznabCatType.Audio, "Audio"); - AddCategoryMapping(12, TorznabCatType.AudioVideo, "Videoclip"); - AddCategoryMapping(13, TorznabCatType.TVSport, "Sport"); - AddCategoryMapping(15, TorznabCatType.TV, "Desene"); - AddCategoryMapping(16, TorznabCatType.Books, "Docs"); - AddCategoryMapping(17, TorznabCatType.PC, "Linux"); - AddCategoryMapping(18, TorznabCatType.Other, "Diverse"); - AddCategoryMapping(19, TorznabCatType.MoviesForeign, "Filme HD-RO"); - AddCategoryMapping(20, TorznabCatType.MoviesBluRay, "Filme Blu-Ray"); - AddCategoryMapping(21, TorznabCatType.TVHD, "Seriale HD"); - AddCategoryMapping(22, TorznabCatType.PCMobileOther, "Mobile"); - AddCategoryMapping(23, TorznabCatType.TVSD, "Seriale SD"); - AddCategoryMapping(24, TorznabCatType.TVAnime, "Anime"); - AddCategoryMapping(25, TorznabCatType.Movies3D, "Filme 3D"); - AddCategoryMapping(26, TorznabCatType.MoviesBluRay, "Filme 4K Blu-Ray"); - AddCategoryMapping(27, TorznabCatType.TVUHD, "Seriale 4K"); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId + }, + MusicSearchParams = new List + { + MusicSearchParam.Q + }, + BookSearchParams = new List + { + BookSearchParam.Q + }, + TvSearchImdbAvailable = true + }; + + caps.Categories.AddCategoryMapping(1, TorznabCatType.MoviesSD, "Filme SD"); + caps.Categories.AddCategoryMapping(2, TorznabCatType.MoviesDVD, "Filme DVD"); + caps.Categories.AddCategoryMapping(3, TorznabCatType.MoviesForeign, "Filme DVD-RO"); + caps.Categories.AddCategoryMapping(4, TorznabCatType.MoviesHD, "Filme HD"); + caps.Categories.AddCategoryMapping(5, TorznabCatType.AudioLossless, "FLAC"); + caps.Categories.AddCategoryMapping(6, TorznabCatType.MoviesUHD, "Filme 4K"); + caps.Categories.AddCategoryMapping(7, TorznabCatType.XXX, "XXX"); + caps.Categories.AddCategoryMapping(8, TorznabCatType.PC, "Programe"); + caps.Categories.AddCategoryMapping(9, TorznabCatType.PCGames, "Jocuri PC"); + caps.Categories.AddCategoryMapping(10, TorznabCatType.Console, "Jocuri Console"); + caps.Categories.AddCategoryMapping(11, TorznabCatType.Audio, "Audio"); + caps.Categories.AddCategoryMapping(12, TorznabCatType.AudioVideo, "Videoclip"); + caps.Categories.AddCategoryMapping(13, TorznabCatType.TVSport, "Sport"); + caps.Categories.AddCategoryMapping(15, TorznabCatType.TV, "Desene"); + caps.Categories.AddCategoryMapping(16, TorznabCatType.Books, "Docs"); + caps.Categories.AddCategoryMapping(17, TorznabCatType.PC, "Linux"); + caps.Categories.AddCategoryMapping(18, TorznabCatType.Other, "Diverse"); + caps.Categories.AddCategoryMapping(19, TorznabCatType.MoviesForeign, "Filme HD-RO"); + caps.Categories.AddCategoryMapping(20, TorznabCatType.MoviesBluRay, "Filme Blu-Ray"); + caps.Categories.AddCategoryMapping(21, TorznabCatType.TVHD, "Seriale HD"); + caps.Categories.AddCategoryMapping(22, TorznabCatType.PCMobileOther, "Mobile"); + caps.Categories.AddCategoryMapping(23, TorznabCatType.TVSD, "Seriale SD"); + caps.Categories.AddCategoryMapping(24, TorznabCatType.TVAnime, "Anime"); + caps.Categories.AddCategoryMapping(25, TorznabCatType.Movies3D, "Filme 3D"); + caps.Categories.AddCategoryMapping(26, TorznabCatType.MoviesBluRay, "Filme 4K Blu-Ray"); + caps.Categories.AddCategoryMapping(27, TorznabCatType.TVUHD, "Seriale 4K"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/FunFile.cs b/src/Jackett.Common/Indexers/FunFile.cs index db6fdb1af..5260fc212 100644 --- a/src/Jackett.Common/Indexers/FunFile.cs +++ b/src/Jackett.Common/Indexers/FunFile.cs @@ -27,6 +27,8 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string LoginUrl => SiteLink + "takelogin.php"; private string SearchUrl => SiteLink + "browse.php"; @@ -34,44 +36,50 @@ namespace Jackett.Common.Indexers public FunFile(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId, TvSearchParam.Genre - }, - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.Genre - }, - MusicSearchParams = new List - { - MusicSearchParam.Q - }, - BookSearchParams = new List - { - BookSearchParam.Q - } - }, - configService: configService, + : base(configService: configService, client: w, logger: l, p: ps, cacheService: cs, configData: new ConfigurationDataBasicLogin("For best results, change the 'Torrents per page' setting to 100 in your profile.")) { - AddCategoryMapping(44, TorznabCatType.TVAnime, "Anime"); - AddCategoryMapping(22, TorznabCatType.PC, "Applications"); - AddCategoryMapping(43, TorznabCatType.AudioAudiobook, "Audio Books"); - AddCategoryMapping(27, TorznabCatType.Books, "Ebook"); - AddCategoryMapping(4, TorznabCatType.PCGames, "Games"); - AddCategoryMapping(40, TorznabCatType.OtherMisc, "Miscellaneous"); - AddCategoryMapping(19, TorznabCatType.Movies, "Movies"); - AddCategoryMapping(6, TorznabCatType.Audio, "Music"); - AddCategoryMapping(31, TorznabCatType.PCMobileOther, "Portable"); - AddCategoryMapping(49, TorznabCatType.Other, "Tutorials"); - AddCategoryMapping(7, TorznabCatType.TV, "TV"); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId, TvSearchParam.Genre + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.Genre + }, + MusicSearchParams = new List + { + MusicSearchParam.Q + }, + BookSearchParams = new List + { + BookSearchParam.Q + } + }; + + caps.Categories.AddCategoryMapping(44, TorznabCatType.TVAnime, "Anime"); + caps.Categories.AddCategoryMapping(22, TorznabCatType.PC, "Applications"); + caps.Categories.AddCategoryMapping(43, TorznabCatType.AudioAudiobook, "Audio Books"); + caps.Categories.AddCategoryMapping(27, TorznabCatType.Books, "Ebook"); + caps.Categories.AddCategoryMapping(4, TorznabCatType.PCGames, "Games"); + caps.Categories.AddCategoryMapping(40, TorznabCatType.OtherMisc, "Miscellaneous"); + caps.Categories.AddCategoryMapping(19, TorznabCatType.Movies, "Movies"); + caps.Categories.AddCategoryMapping(6, TorznabCatType.Audio, "Music"); + caps.Categories.AddCategoryMapping(31, TorznabCatType.PCMobileOther, "Portable"); + caps.Categories.AddCategoryMapping(49, TorznabCatType.Other, "Tutorials"); + caps.Categories.AddCategoryMapping(7, TorznabCatType.TV, "TV"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/GazelleGames.cs b/src/Jackett.Common/Indexers/GazelleGames.cs index 2bd57ced2..569fce61c 100644 --- a/src/Jackett.Common/Indexers/GazelleGames.cs +++ b/src/Jackett.Common/Indexers/GazelleGames.cs @@ -4,7 +4,6 @@ using System.Collections.Specialized; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; -using System.Text; using System.Threading.Tasks; using AngleSharp.Html.Parser; using Jackett.Common.Models; @@ -28,6 +27,8 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string LoginUrl => SiteLink + "login.php"; private string BrowseUrl => SiteLink + "torrents.php"; @@ -39,8 +40,7 @@ namespace Jackett.Common.Indexers public GazelleGames(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base(caps: new TorznabCapabilities(), - configService: configService, + : base(configService: configService, client: wc, logger: l, p: ps, @@ -48,136 +48,143 @@ namespace Jackett.Common.Indexers configData: new ConfigurationDataCookie()) { configData.AddDynamic("searchgroupnames", new BoolConfigurationItem("Search Group Names Only") { Value = false }); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities(); // Apple - AddCategoryMapping("Mac", TorznabCatType.ConsoleOther, "Mac"); - AddCategoryMapping("iOS", TorznabCatType.PCMobileiOS, "iOS"); - AddCategoryMapping("Apple Bandai Pippin", TorznabCatType.ConsoleOther, "Apple Bandai Pippin"); + caps.Categories.AddCategoryMapping("Mac", TorznabCatType.ConsoleOther, "Mac"); + caps.Categories.AddCategoryMapping("iOS", TorznabCatType.PCMobileiOS, "iOS"); + caps.Categories.AddCategoryMapping("Apple Bandai Pippin", TorznabCatType.ConsoleOther, "Apple Bandai Pippin"); // Google - AddCategoryMapping("Android", TorznabCatType.PCMobileAndroid, "Android"); + caps.Categories.AddCategoryMapping("Android", TorznabCatType.PCMobileAndroid, "Android"); // Microsoft - AddCategoryMapping("DOS", TorznabCatType.PCGames, "DOS"); - AddCategoryMapping("Windows", TorznabCatType.PCGames, "Windows"); - AddCategoryMapping("Xbox", TorznabCatType.ConsoleXBox, "Xbox"); - AddCategoryMapping("Xbox 360", TorznabCatType.ConsoleXBox360, "Xbox 360"); + caps.Categories.AddCategoryMapping("DOS", TorznabCatType.PCGames, "DOS"); + caps.Categories.AddCategoryMapping("Windows", TorznabCatType.PCGames, "Windows"); + caps.Categories.AddCategoryMapping("Xbox", TorznabCatType.ConsoleXBox, "Xbox"); + caps.Categories.AddCategoryMapping("Xbox 360", TorznabCatType.ConsoleXBox360, "Xbox 360"); // Nintendo - AddCategoryMapping("Game Boy", TorznabCatType.ConsoleOther, "Game Boy"); - AddCategoryMapping("Game Boy Advance", TorznabCatType.ConsoleOther, "Game Boy Advance"); - AddCategoryMapping("Game Boy Color", TorznabCatType.ConsoleOther, "Game Boy Color"); - AddCategoryMapping("NES", TorznabCatType.ConsoleOther, "NES"); - AddCategoryMapping("Nintendo 64", TorznabCatType.ConsoleOther, "Nintendo 64"); - AddCategoryMapping("Nintendo 3DS", TorznabCatType.ConsoleOther, "Nintendo 3DS"); - AddCategoryMapping("New Nintendo 3DS", TorznabCatType.ConsoleOther, "New Nintendo 3DS"); - AddCategoryMapping("Nintendo DS", TorznabCatType.ConsoleNDS, "Nintendo DS"); - AddCategoryMapping("Nintendo GameCube", TorznabCatType.ConsoleOther, "Nintendo GameCube"); - AddCategoryMapping("Pokemon Mini", TorznabCatType.ConsoleOther, "Pokemon Mini"); - AddCategoryMapping("SNES", TorznabCatType.ConsoleOther, "SNES"); - AddCategoryMapping("Virtual Boy", TorznabCatType.ConsoleOther, "Virtual Boy"); - AddCategoryMapping("Wii", TorznabCatType.ConsoleWii, "Wii"); - AddCategoryMapping("Wii U", TorznabCatType.ConsoleWiiU, "Wii U"); + caps.Categories.AddCategoryMapping("Game Boy", TorznabCatType.ConsoleOther, "Game Boy"); + caps.Categories.AddCategoryMapping("Game Boy Advance", TorznabCatType.ConsoleOther, "Game Boy Advance"); + caps.Categories.AddCategoryMapping("Game Boy Color", TorznabCatType.ConsoleOther, "Game Boy Color"); + caps.Categories.AddCategoryMapping("NES", TorznabCatType.ConsoleOther, "NES"); + caps.Categories.AddCategoryMapping("Nintendo 64", TorznabCatType.ConsoleOther, "Nintendo 64"); + caps.Categories.AddCategoryMapping("Nintendo 3DS", TorznabCatType.ConsoleOther, "Nintendo 3DS"); + caps.Categories.AddCategoryMapping("New Nintendo 3DS", TorznabCatType.ConsoleOther, "New Nintendo 3DS"); + caps.Categories.AddCategoryMapping("Nintendo DS", TorznabCatType.ConsoleNDS, "Nintendo DS"); + caps.Categories.AddCategoryMapping("Nintendo GameCube", TorznabCatType.ConsoleOther, "Nintendo GameCube"); + caps.Categories.AddCategoryMapping("Pokemon Mini", TorznabCatType.ConsoleOther, "Pokemon Mini"); + caps.Categories.AddCategoryMapping("SNES", TorznabCatType.ConsoleOther, "SNES"); + caps.Categories.AddCategoryMapping("Virtual Boy", TorznabCatType.ConsoleOther, "Virtual Boy"); + caps.Categories.AddCategoryMapping("Wii", TorznabCatType.ConsoleWii, "Wii"); + caps.Categories.AddCategoryMapping("Wii U", TorznabCatType.ConsoleWiiU, "Wii U"); // Sony - AddCategoryMapping("PlayStation 1", TorznabCatType.ConsoleOther, "PlayStation 1"); - AddCategoryMapping("PlayStation 2", TorznabCatType.ConsoleOther, "PlayStation 2"); - AddCategoryMapping("PlayStation 3", TorznabCatType.ConsolePS3, "PlayStation 3"); - AddCategoryMapping("PlayStation 4", TorznabCatType.ConsolePS4, "PlayStation 4"); - AddCategoryMapping("PlayStation Portable", TorznabCatType.ConsolePSP, "PlayStation Portable"); - AddCategoryMapping("PlayStation Vita", TorznabCatType.ConsolePSVita, "PlayStation Vita"); + caps.Categories.AddCategoryMapping("PlayStation 1", TorznabCatType.ConsoleOther, "PlayStation 1"); + caps.Categories.AddCategoryMapping("PlayStation 2", TorznabCatType.ConsoleOther, "PlayStation 2"); + caps.Categories.AddCategoryMapping("PlayStation 3", TorznabCatType.ConsolePS3, "PlayStation 3"); + caps.Categories.AddCategoryMapping("PlayStation 4", TorznabCatType.ConsolePS4, "PlayStation 4"); + caps.Categories.AddCategoryMapping("PlayStation Portable", TorznabCatType.ConsolePSP, "PlayStation Portable"); + caps.Categories.AddCategoryMapping("PlayStation Vita", TorznabCatType.ConsolePSVita, "PlayStation Vita"); // Sega - AddCategoryMapping("Dreamcast", TorznabCatType.ConsoleOther, "Dreamcast"); - AddCategoryMapping("Game Gear", TorznabCatType.ConsoleOther, "Game Gear"); - AddCategoryMapping("Master System", TorznabCatType.ConsoleOther, "Master System"); - AddCategoryMapping("Mega Drive", TorznabCatType.ConsoleOther, "Mega Drive"); - AddCategoryMapping("Pico", TorznabCatType.ConsoleOther, "Pico"); - AddCategoryMapping("Saturn", TorznabCatType.ConsoleOther, "Saturn"); - AddCategoryMapping("SG-1000", TorznabCatType.ConsoleOther, "SG-1000"); + caps.Categories.AddCategoryMapping("Dreamcast", TorznabCatType.ConsoleOther, "Dreamcast"); + caps.Categories.AddCategoryMapping("Game Gear", TorznabCatType.ConsoleOther, "Game Gear"); + caps.Categories.AddCategoryMapping("Master System", TorznabCatType.ConsoleOther, "Master System"); + caps.Categories.AddCategoryMapping("Mega Drive", TorznabCatType.ConsoleOther, "Mega Drive"); + caps.Categories.AddCategoryMapping("Pico", TorznabCatType.ConsoleOther, "Pico"); + caps.Categories.AddCategoryMapping("Saturn", TorznabCatType.ConsoleOther, "Saturn"); + caps.Categories.AddCategoryMapping("SG-1000", TorznabCatType.ConsoleOther, "SG-1000"); // Atari - AddCategoryMapping("Atari 2600", TorznabCatType.ConsoleOther, "Atari 2600"); - AddCategoryMapping("Atari 5200", TorznabCatType.ConsoleOther, "Atari 5200"); - AddCategoryMapping("Atari 7800", TorznabCatType.ConsoleOther, "Atari 7800"); - AddCategoryMapping("Atari Jaguar", TorznabCatType.ConsoleOther, "Atari Jaguar"); - AddCategoryMapping("Atari Lynx", TorznabCatType.ConsoleOther, "Atari Lynx"); - AddCategoryMapping("Atari ST", TorznabCatType.ConsoleOther, "Atari ST"); + caps.Categories.AddCategoryMapping("Atari 2600", TorznabCatType.ConsoleOther, "Atari 2600"); + caps.Categories.AddCategoryMapping("Atari 5200", TorznabCatType.ConsoleOther, "Atari 5200"); + caps.Categories.AddCategoryMapping("Atari 7800", TorznabCatType.ConsoleOther, "Atari 7800"); + caps.Categories.AddCategoryMapping("Atari Jaguar", TorznabCatType.ConsoleOther, "Atari Jaguar"); + caps.Categories.AddCategoryMapping("Atari Lynx", TorznabCatType.ConsoleOther, "Atari Lynx"); + caps.Categories.AddCategoryMapping("Atari ST", TorznabCatType.ConsoleOther, "Atari ST"); // Amstrad - AddCategoryMapping("Amstrad CPC", TorznabCatType.ConsoleOther, "Amstrad CPC"); + caps.Categories.AddCategoryMapping("Amstrad CPC", TorznabCatType.ConsoleOther, "Amstrad CPC"); // Sinclair - AddCategoryMapping("ZX Spectrum", TorznabCatType.ConsoleOther, "ZX Spectrum"); + caps.Categories.AddCategoryMapping("ZX Spectrum", TorznabCatType.ConsoleOther, "ZX Spectrum"); // Spectravideo - AddCategoryMapping("MSX", TorznabCatType.ConsoleOther, "MSX"); - AddCategoryMapping("MSX 2", TorznabCatType.ConsoleOther, "MSX 2"); + caps.Categories.AddCategoryMapping("MSX", TorznabCatType.ConsoleOther, "MSX"); + caps.Categories.AddCategoryMapping("MSX 2", TorznabCatType.ConsoleOther, "MSX 2"); // Tiger - AddCategoryMapping("Game.com", TorznabCatType.ConsoleOther, "Game.com"); - AddCategoryMapping("Gizmondo", TorznabCatType.ConsoleOther, "Gizmondo"); + caps.Categories.AddCategoryMapping("Game.com", TorznabCatType.ConsoleOther, "Game.com"); + caps.Categories.AddCategoryMapping("Gizmondo", TorznabCatType.ConsoleOther, "Gizmondo"); // VTech - AddCategoryMapping("V.Smile", TorznabCatType.ConsoleOther, "V.Smile"); - AddCategoryMapping("CreatiVision", TorznabCatType.ConsoleOther, "CreatiVision"); + caps.Categories.AddCategoryMapping("V.Smile", TorznabCatType.ConsoleOther, "V.Smile"); + caps.Categories.AddCategoryMapping("CreatiVision", TorznabCatType.ConsoleOther, "CreatiVision"); // Tabletop Games - AddCategoryMapping("Board Game", TorznabCatType.ConsoleOther, "Board Game"); - AddCategoryMapping("Card Game", TorznabCatType.ConsoleOther, "Card Game"); - AddCategoryMapping("Miniature Wargames", TorznabCatType.ConsoleOther, "Miniature Wargames"); - AddCategoryMapping("Pen and Paper RPG", TorznabCatType.ConsoleOther, "Pen and Paper RPG"); + caps.Categories.AddCategoryMapping("Board Game", TorznabCatType.ConsoleOther, "Board Game"); + caps.Categories.AddCategoryMapping("Card Game", TorznabCatType.ConsoleOther, "Card Game"); + caps.Categories.AddCategoryMapping("Miniature Wargames", TorznabCatType.ConsoleOther, "Miniature Wargames"); + caps.Categories.AddCategoryMapping("Pen and Paper RPG", TorznabCatType.ConsoleOther, "Pen and Paper RPG"); // Other - AddCategoryMapping("3DO", TorznabCatType.ConsoleOther, "3DO"); - AddCategoryMapping("Bandai WonderSwan", TorznabCatType.ConsoleOther, "Bandai WonderSwan"); - AddCategoryMapping("Bandai WonderSwan Color", TorznabCatType.ConsoleOther, "Bandai WonderSwan Color"); - AddCategoryMapping("Casio Loopy", TorznabCatType.ConsoleOther, "Casio Loopy"); - AddCategoryMapping("Casio PV-1000", TorznabCatType.ConsoleOther, "Casio PV-1000"); - AddCategoryMapping("Colecovision", TorznabCatType.ConsoleOther, "Colecovision"); - AddCategoryMapping("Commodore 64", TorznabCatType.ConsoleOther, "Commodore 64"); - AddCategoryMapping("Commodore 128", TorznabCatType.ConsoleOther, "Commodore 128"); - AddCategoryMapping("Commodore Amiga", TorznabCatType.ConsoleOther, "Commodore Amiga"); - AddCategoryMapping("Commodore Plus-4", TorznabCatType.ConsoleOther, "Commodore Plus-4"); - AddCategoryMapping("Commodore VIC-20", TorznabCatType.ConsoleOther, "Commodore VIC-20"); - AddCategoryMapping("Emerson Arcadia 2001", TorznabCatType.ConsoleOther, "Emerson Arcadia 2001"); - AddCategoryMapping("Entex Adventure Vision", TorznabCatType.ConsoleOther, "Entex Adventure Vision"); - AddCategoryMapping("Epoch Super Casette Vision", TorznabCatType.ConsoleOther, "Epoch Super Casette Vision"); - AddCategoryMapping("Fairchild Channel F", TorznabCatType.ConsoleOther, "Fairchild Channel F"); - AddCategoryMapping("Funtech Super Acan", TorznabCatType.ConsoleOther, "Funtech Super Acan"); - AddCategoryMapping("GamePark GP32", TorznabCatType.ConsoleOther, "GamePark GP32"); - AddCategoryMapping("General Computer Vectrex", TorznabCatType.ConsoleOther, "General Computer Vectrex"); - AddCategoryMapping("Interactive DVD", TorznabCatType.ConsoleOther, "Interactive DVD"); - AddCategoryMapping("Linux", TorznabCatType.ConsoleOther, "Linux"); - AddCategoryMapping("Hartung Game Master", TorznabCatType.ConsoleOther, "Hartung Game Master"); - AddCategoryMapping("Magnavox-Phillips Odyssey", TorznabCatType.ConsoleOther, "Magnavox-Phillips Odyssey"); - AddCategoryMapping("Mattel Intellivision", TorznabCatType.ConsoleOther, "Mattel Intellivision"); - AddCategoryMapping("Memotech MTX", TorznabCatType.ConsoleOther, "Memotech MTX"); - AddCategoryMapping("Miles Gordon Sam Coupe", TorznabCatType.ConsoleOther, "Miles Gordon Sam Coupe"); - AddCategoryMapping("NEC PC-98", TorznabCatType.ConsoleOther, "NEC PC-98"); - AddCategoryMapping("NEC PC-FX", TorznabCatType.ConsoleOther, "NEC PC-FX"); - AddCategoryMapping("NEC SuperGrafx", TorznabCatType.ConsoleOther, "NEC SuperGrafx"); - AddCategoryMapping("NEC TurboGrafx-16", TorznabCatType.ConsoleOther, "NEC TurboGrafx-16"); - AddCategoryMapping("Nokia N-Gage", TorznabCatType.ConsoleOther, "Nokia N-Gage"); - AddCategoryMapping("Ouya", TorznabCatType.ConsoleOther, "Ouya"); - AddCategoryMapping("Philips Videopac+", TorznabCatType.ConsoleOther, "Philips Videopac+"); - AddCategoryMapping("Phone/PDA", TorznabCatType.ConsoleOther, "Phone/PDA"); - AddCategoryMapping("RCA Studio II", TorznabCatType.ConsoleOther, "RCA Studio II"); - AddCategoryMapping("Sharp X1", TorznabCatType.ConsoleOther, "Sharp X1"); - AddCategoryMapping("Sharp X68000", TorznabCatType.ConsoleOther, "Sharp X68000"); - AddCategoryMapping("SNK Neo Geo", TorznabCatType.ConsoleOther, "SNK Neo Geo"); - AddCategoryMapping("SNK Neo Geo Pocket", TorznabCatType.ConsoleOther, "SNK Neo Geo Pocket"); - AddCategoryMapping("Taito Type X", TorznabCatType.ConsoleOther, "Taito Type X"); - AddCategoryMapping("Tandy Color Computer", TorznabCatType.ConsoleOther, "Tandy Color Computer"); - AddCategoryMapping("Tangerine Oric", TorznabCatType.ConsoleOther, "Tangerine Oric"); - AddCategoryMapping("Thomson MO5", TorznabCatType.ConsoleOther, "Thomson MO5"); - AddCategoryMapping("Watara Supervision", TorznabCatType.ConsoleOther, "Watara Supervision"); - AddCategoryMapping("Retro - Other", TorznabCatType.ConsoleOther, "Retro - Other"); + caps.Categories.AddCategoryMapping("3DO", TorznabCatType.ConsoleOther, "3DO"); + caps.Categories.AddCategoryMapping("Bandai WonderSwan", TorznabCatType.ConsoleOther, "Bandai WonderSwan"); + caps.Categories.AddCategoryMapping("Bandai WonderSwan Color", TorznabCatType.ConsoleOther, "Bandai WonderSwan Color"); + caps.Categories.AddCategoryMapping("Casio Loopy", TorznabCatType.ConsoleOther, "Casio Loopy"); + caps.Categories.AddCategoryMapping("Casio PV-1000", TorznabCatType.ConsoleOther, "Casio PV-1000"); + caps.Categories.AddCategoryMapping("Colecovision", TorznabCatType.ConsoleOther, "Colecovision"); + caps.Categories.AddCategoryMapping("Commodore 64", TorznabCatType.ConsoleOther, "Commodore 64"); + caps.Categories.AddCategoryMapping("Commodore 128", TorznabCatType.ConsoleOther, "Commodore 128"); + caps.Categories.AddCategoryMapping("Commodore Amiga", TorznabCatType.ConsoleOther, "Commodore Amiga"); + caps.Categories.AddCategoryMapping("Commodore Plus-4", TorznabCatType.ConsoleOther, "Commodore Plus-4"); + caps.Categories.AddCategoryMapping("Commodore VIC-20", TorznabCatType.ConsoleOther, "Commodore VIC-20"); + caps.Categories.AddCategoryMapping("Emerson Arcadia 2001", TorznabCatType.ConsoleOther, "Emerson Arcadia 2001"); + caps.Categories.AddCategoryMapping("Entex Adventure Vision", TorznabCatType.ConsoleOther, "Entex Adventure Vision"); + caps.Categories.AddCategoryMapping("Epoch Super Casette Vision", TorznabCatType.ConsoleOther, "Epoch Super Casette Vision"); + caps.Categories.AddCategoryMapping("Fairchild Channel F", TorznabCatType.ConsoleOther, "Fairchild Channel F"); + caps.Categories.AddCategoryMapping("Funtech Super Acan", TorznabCatType.ConsoleOther, "Funtech Super Acan"); + caps.Categories.AddCategoryMapping("GamePark GP32", TorznabCatType.ConsoleOther, "GamePark GP32"); + caps.Categories.AddCategoryMapping("General Computer Vectrex", TorznabCatType.ConsoleOther, "General Computer Vectrex"); + caps.Categories.AddCategoryMapping("Interactive DVD", TorznabCatType.ConsoleOther, "Interactive DVD"); + caps.Categories.AddCategoryMapping("Linux", TorznabCatType.ConsoleOther, "Linux"); + caps.Categories.AddCategoryMapping("Hartung Game Master", TorznabCatType.ConsoleOther, "Hartung Game Master"); + caps.Categories.AddCategoryMapping("Magnavox-Phillips Odyssey", TorznabCatType.ConsoleOther, "Magnavox-Phillips Odyssey"); + caps.Categories.AddCategoryMapping("Mattel Intellivision", TorznabCatType.ConsoleOther, "Mattel Intellivision"); + caps.Categories.AddCategoryMapping("Memotech MTX", TorznabCatType.ConsoleOther, "Memotech MTX"); + caps.Categories.AddCategoryMapping("Miles Gordon Sam Coupe", TorznabCatType.ConsoleOther, "Miles Gordon Sam Coupe"); + caps.Categories.AddCategoryMapping("NEC PC-98", TorznabCatType.ConsoleOther, "NEC PC-98"); + caps.Categories.AddCategoryMapping("NEC PC-FX", TorznabCatType.ConsoleOther, "NEC PC-FX"); + caps.Categories.AddCategoryMapping("NEC SuperGrafx", TorznabCatType.ConsoleOther, "NEC SuperGrafx"); + caps.Categories.AddCategoryMapping("NEC TurboGrafx-16", TorznabCatType.ConsoleOther, "NEC TurboGrafx-16"); + caps.Categories.AddCategoryMapping("Nokia N-Gage", TorznabCatType.ConsoleOther, "Nokia N-Gage"); + caps.Categories.AddCategoryMapping("Ouya", TorznabCatType.ConsoleOther, "Ouya"); + caps.Categories.AddCategoryMapping("Philips Videopac+", TorznabCatType.ConsoleOther, "Philips Videopac+"); + caps.Categories.AddCategoryMapping("Phone/PDA", TorznabCatType.ConsoleOther, "Phone/PDA"); + caps.Categories.AddCategoryMapping("RCA Studio II", TorznabCatType.ConsoleOther, "RCA Studio II"); + caps.Categories.AddCategoryMapping("Sharp X1", TorznabCatType.ConsoleOther, "Sharp X1"); + caps.Categories.AddCategoryMapping("Sharp X68000", TorznabCatType.ConsoleOther, "Sharp X68000"); + caps.Categories.AddCategoryMapping("SNK Neo Geo", TorznabCatType.ConsoleOther, "SNK Neo Geo"); + caps.Categories.AddCategoryMapping("SNK Neo Geo Pocket", TorznabCatType.ConsoleOther, "SNK Neo Geo Pocket"); + caps.Categories.AddCategoryMapping("Taito Type X", TorznabCatType.ConsoleOther, "Taito Type X"); + caps.Categories.AddCategoryMapping("Tandy Color Computer", TorznabCatType.ConsoleOther, "Tandy Color Computer"); + caps.Categories.AddCategoryMapping("Tangerine Oric", TorznabCatType.ConsoleOther, "Tangerine Oric"); + caps.Categories.AddCategoryMapping("Thomson MO5", TorznabCatType.ConsoleOther, "Thomson MO5"); + caps.Categories.AddCategoryMapping("Watara Supervision", TorznabCatType.ConsoleOther, "Watara Supervision"); + caps.Categories.AddCategoryMapping("Retro - Other", TorznabCatType.ConsoleOther, "Retro - Other"); // special categories (real categories/not platforms) - AddCategoryMapping("OST", TorznabCatType.AudioOther, "OST"); - AddCategoryMapping("Applications", TorznabCatType.PC0day, "Applications"); - AddCategoryMapping("E-Books", TorznabCatType.BooksEBook, "E-Books"); + caps.Categories.AddCategoryMapping("OST", TorznabCatType.AudioOther, "OST"); + caps.Categories.AddCategoryMapping("Applications", TorznabCatType.PC0day, "Applications"); + caps.Categories.AddCategoryMapping("E-Books", TorznabCatType.BooksEBook, "E-Books"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/GazelleGamesAPI.cs b/src/Jackett.Common/Indexers/GazelleGamesAPI.cs index 6952cb837..d428b4a00 100644 --- a/src/Jackett.Common/Indexers/GazelleGamesAPI.cs +++ b/src/Jackett.Common/Indexers/GazelleGamesAPI.cs @@ -27,6 +27,8 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + // API Reference: https://gazellegames.net/wiki.php?action=article&id=401 protected override string APIUrl => SiteLink + "api.php"; protected override string AuthorizationName => "X-API-Key"; @@ -34,8 +36,7 @@ namespace Jackett.Common.Indexers protected override string FlipOptionalTokenString(string requestLink) => requestLink.Replace("usetoken=1", ""); public GazelleGamesApi(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base(caps: new TorznabCapabilities(), - configService: configService, + : base(configService: configService, client: wc, logger: l, p: ps, @@ -48,136 +49,143 @@ namespace Jackett.Common.Indexers instructionMessageOptional: "
  1. Go to GGn's site and open your account settings.
  2. Under Access Settings click on 'Create a new token'
  3. Give it a name you like and click Generate.
  4. Copy the generated API Key and paste it in the above text field.
") { configData.AddDynamic("searchgroupnames", new BoolConfigurationItem("Search Group Names Only") { Value = false }); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities(); // Apple - AddCategoryMapping("Mac", TorznabCatType.ConsoleOther, "Mac"); - AddCategoryMapping("iOS", TorznabCatType.PCMobileiOS, "iOS"); - AddCategoryMapping("Apple Bandai Pippin", TorznabCatType.ConsoleOther, "Apple Bandai Pippin"); + caps.Categories.AddCategoryMapping("Mac", TorznabCatType.ConsoleOther, "Mac"); + caps.Categories.AddCategoryMapping("iOS", TorznabCatType.PCMobileiOS, "iOS"); + caps.Categories.AddCategoryMapping("Apple Bandai Pippin", TorznabCatType.ConsoleOther, "Apple Bandai Pippin"); // Google - AddCategoryMapping("Android", TorznabCatType.PCMobileAndroid, "Android"); + caps.Categories.AddCategoryMapping("Android", TorznabCatType.PCMobileAndroid, "Android"); // Microsoft - AddCategoryMapping("DOS", TorznabCatType.PCGames, "DOS"); - AddCategoryMapping("Windows", TorznabCatType.PCGames, "Windows"); - AddCategoryMapping("Xbox", TorznabCatType.ConsoleXBox, "Xbox"); - AddCategoryMapping("Xbox 360", TorznabCatType.ConsoleXBox360, "Xbox 360"); + caps.Categories.AddCategoryMapping("DOS", TorznabCatType.PCGames, "DOS"); + caps.Categories.AddCategoryMapping("Windows", TorznabCatType.PCGames, "Windows"); + caps.Categories.AddCategoryMapping("Xbox", TorznabCatType.ConsoleXBox, "Xbox"); + caps.Categories.AddCategoryMapping("Xbox 360", TorznabCatType.ConsoleXBox360, "Xbox 360"); // Nintendo - AddCategoryMapping("Game Boy", TorznabCatType.ConsoleOther, "Game Boy"); - AddCategoryMapping("Game Boy Advance", TorznabCatType.ConsoleOther, "Game Boy Advance"); - AddCategoryMapping("Game Boy Color", TorznabCatType.ConsoleOther, "Game Boy Color"); - AddCategoryMapping("NES", TorznabCatType.ConsoleOther, "NES"); - AddCategoryMapping("Nintendo 64", TorznabCatType.ConsoleOther, "Nintendo 64"); - AddCategoryMapping("Nintendo 3DS", TorznabCatType.ConsoleOther, "Nintendo 3DS"); - AddCategoryMapping("New Nintendo 3DS", TorznabCatType.ConsoleOther, "New Nintendo 3DS"); - AddCategoryMapping("Nintendo DS", TorznabCatType.ConsoleNDS, "Nintendo DS"); - AddCategoryMapping("Nintendo GameCube", TorznabCatType.ConsoleOther, "Nintendo GameCube"); - AddCategoryMapping("Pokemon Mini", TorznabCatType.ConsoleOther, "Pokemon Mini"); - AddCategoryMapping("SNES", TorznabCatType.ConsoleOther, "SNES"); - AddCategoryMapping("Virtual Boy", TorznabCatType.ConsoleOther, "Virtual Boy"); - AddCategoryMapping("Wii", TorznabCatType.ConsoleWii, "Wii"); - AddCategoryMapping("Wii U", TorznabCatType.ConsoleWiiU, "Wii U"); + caps.Categories.AddCategoryMapping("Game Boy", TorznabCatType.ConsoleOther, "Game Boy"); + caps.Categories.AddCategoryMapping("Game Boy Advance", TorznabCatType.ConsoleOther, "Game Boy Advance"); + caps.Categories.AddCategoryMapping("Game Boy Color", TorznabCatType.ConsoleOther, "Game Boy Color"); + caps.Categories.AddCategoryMapping("NES", TorznabCatType.ConsoleOther, "NES"); + caps.Categories.AddCategoryMapping("Nintendo 64", TorznabCatType.ConsoleOther, "Nintendo 64"); + caps.Categories.AddCategoryMapping("Nintendo 3DS", TorznabCatType.ConsoleOther, "Nintendo 3DS"); + caps.Categories.AddCategoryMapping("New Nintendo 3DS", TorznabCatType.ConsoleOther, "New Nintendo 3DS"); + caps.Categories.AddCategoryMapping("Nintendo DS", TorznabCatType.ConsoleNDS, "Nintendo DS"); + caps.Categories.AddCategoryMapping("Nintendo GameCube", TorznabCatType.ConsoleOther, "Nintendo GameCube"); + caps.Categories.AddCategoryMapping("Pokemon Mini", TorznabCatType.ConsoleOther, "Pokemon Mini"); + caps.Categories.AddCategoryMapping("SNES", TorznabCatType.ConsoleOther, "SNES"); + caps.Categories.AddCategoryMapping("Virtual Boy", TorznabCatType.ConsoleOther, "Virtual Boy"); + caps.Categories.AddCategoryMapping("Wii", TorznabCatType.ConsoleWii, "Wii"); + caps.Categories.AddCategoryMapping("Wii U", TorznabCatType.ConsoleWiiU, "Wii U"); // Sony - AddCategoryMapping("PlayStation 1", TorznabCatType.ConsoleOther, "PlayStation 1"); - AddCategoryMapping("PlayStation 2", TorznabCatType.ConsoleOther, "PlayStation 2"); - AddCategoryMapping("PlayStation 3", TorznabCatType.ConsolePS3, "PlayStation 3"); - AddCategoryMapping("PlayStation 4", TorznabCatType.ConsolePS4, "PlayStation 4"); - AddCategoryMapping("PlayStation Portable", TorznabCatType.ConsolePSP, "PlayStation Portable"); - AddCategoryMapping("PlayStation Vita", TorznabCatType.ConsolePSVita, "PlayStation Vita"); + caps.Categories.AddCategoryMapping("PlayStation 1", TorznabCatType.ConsoleOther, "PlayStation 1"); + caps.Categories.AddCategoryMapping("PlayStation 2", TorznabCatType.ConsoleOther, "PlayStation 2"); + caps.Categories.AddCategoryMapping("PlayStation 3", TorznabCatType.ConsolePS3, "PlayStation 3"); + caps.Categories.AddCategoryMapping("PlayStation 4", TorznabCatType.ConsolePS4, "PlayStation 4"); + caps.Categories.AddCategoryMapping("PlayStation Portable", TorznabCatType.ConsolePSP, "PlayStation Portable"); + caps.Categories.AddCategoryMapping("PlayStation Vita", TorznabCatType.ConsolePSVita, "PlayStation Vita"); // Sega - AddCategoryMapping("Dreamcast", TorznabCatType.ConsoleOther, "Dreamcast"); - AddCategoryMapping("Game Gear", TorznabCatType.ConsoleOther, "Game Gear"); - AddCategoryMapping("Master System", TorznabCatType.ConsoleOther, "Master System"); - AddCategoryMapping("Mega Drive", TorznabCatType.ConsoleOther, "Mega Drive"); - AddCategoryMapping("Pico", TorznabCatType.ConsoleOther, "Pico"); - AddCategoryMapping("Saturn", TorznabCatType.ConsoleOther, "Saturn"); - AddCategoryMapping("SG-1000", TorznabCatType.ConsoleOther, "SG-1000"); + caps.Categories.AddCategoryMapping("Dreamcast", TorznabCatType.ConsoleOther, "Dreamcast"); + caps.Categories.AddCategoryMapping("Game Gear", TorznabCatType.ConsoleOther, "Game Gear"); + caps.Categories.AddCategoryMapping("Master System", TorznabCatType.ConsoleOther, "Master System"); + caps.Categories.AddCategoryMapping("Mega Drive", TorznabCatType.ConsoleOther, "Mega Drive"); + caps.Categories.AddCategoryMapping("Pico", TorznabCatType.ConsoleOther, "Pico"); + caps.Categories.AddCategoryMapping("Saturn", TorznabCatType.ConsoleOther, "Saturn"); + caps.Categories.AddCategoryMapping("SG-1000", TorznabCatType.ConsoleOther, "SG-1000"); // Atari - AddCategoryMapping("Atari 2600", TorznabCatType.ConsoleOther, "Atari 2600"); - AddCategoryMapping("Atari 5200", TorznabCatType.ConsoleOther, "Atari 5200"); - AddCategoryMapping("Atari 7800", TorznabCatType.ConsoleOther, "Atari 7800"); - AddCategoryMapping("Atari Jaguar", TorznabCatType.ConsoleOther, "Atari Jaguar"); - AddCategoryMapping("Atari Lynx", TorznabCatType.ConsoleOther, "Atari Lynx"); - AddCategoryMapping("Atari ST", TorznabCatType.ConsoleOther, "Atari ST"); + caps.Categories.AddCategoryMapping("Atari 2600", TorznabCatType.ConsoleOther, "Atari 2600"); + caps.Categories.AddCategoryMapping("Atari 5200", TorznabCatType.ConsoleOther, "Atari 5200"); + caps.Categories.AddCategoryMapping("Atari 7800", TorznabCatType.ConsoleOther, "Atari 7800"); + caps.Categories.AddCategoryMapping("Atari Jaguar", TorznabCatType.ConsoleOther, "Atari Jaguar"); + caps.Categories.AddCategoryMapping("Atari Lynx", TorznabCatType.ConsoleOther, "Atari Lynx"); + caps.Categories.AddCategoryMapping("Atari ST", TorznabCatType.ConsoleOther, "Atari ST"); // Amstrad - AddCategoryMapping("Amstrad CPC", TorznabCatType.ConsoleOther, "Amstrad CPC"); + caps.Categories.AddCategoryMapping("Amstrad CPC", TorznabCatType.ConsoleOther, "Amstrad CPC"); // Sinclair - AddCategoryMapping("ZX Spectrum", TorznabCatType.ConsoleOther, "ZX Spectrum"); + caps.Categories.AddCategoryMapping("ZX Spectrum", TorznabCatType.ConsoleOther, "ZX Spectrum"); // Spectravideo - AddCategoryMapping("MSX", TorznabCatType.ConsoleOther, "MSX"); - AddCategoryMapping("MSX 2", TorznabCatType.ConsoleOther, "MSX 2"); + caps.Categories.AddCategoryMapping("MSX", TorznabCatType.ConsoleOther, "MSX"); + caps.Categories.AddCategoryMapping("MSX 2", TorznabCatType.ConsoleOther, "MSX 2"); // Tiger - AddCategoryMapping("Game.com", TorznabCatType.ConsoleOther, "Game.com"); - AddCategoryMapping("Gizmondo", TorznabCatType.ConsoleOther, "Gizmondo"); + caps.Categories.AddCategoryMapping("Game.com", TorznabCatType.ConsoleOther, "Game.com"); + caps.Categories.AddCategoryMapping("Gizmondo", TorznabCatType.ConsoleOther, "Gizmondo"); // VTech - AddCategoryMapping("V.Smile", TorznabCatType.ConsoleOther, "V.Smile"); - AddCategoryMapping("CreatiVision", TorznabCatType.ConsoleOther, "CreatiVision"); + caps.Categories.AddCategoryMapping("V.Smile", TorznabCatType.ConsoleOther, "V.Smile"); + caps.Categories.AddCategoryMapping("CreatiVision", TorznabCatType.ConsoleOther, "CreatiVision"); // Tabletop Games - AddCategoryMapping("Board Game", TorznabCatType.ConsoleOther, "Board Game"); - AddCategoryMapping("Card Game", TorznabCatType.ConsoleOther, "Card Game"); - AddCategoryMapping("Miniature Wargames", TorznabCatType.ConsoleOther, "Miniature Wargames"); - AddCategoryMapping("Pen and Paper RPG", TorznabCatType.ConsoleOther, "Pen and Paper RPG"); + caps.Categories.AddCategoryMapping("Board Game", TorznabCatType.ConsoleOther, "Board Game"); + caps.Categories.AddCategoryMapping("Card Game", TorznabCatType.ConsoleOther, "Card Game"); + caps.Categories.AddCategoryMapping("Miniature Wargames", TorznabCatType.ConsoleOther, "Miniature Wargames"); + caps.Categories.AddCategoryMapping("Pen and Paper RPG", TorznabCatType.ConsoleOther, "Pen and Paper RPG"); // Other - AddCategoryMapping("3DO", TorznabCatType.ConsoleOther, "3DO"); - AddCategoryMapping("Bandai WonderSwan", TorznabCatType.ConsoleOther, "Bandai WonderSwan"); - AddCategoryMapping("Bandai WonderSwan Color", TorznabCatType.ConsoleOther, "Bandai WonderSwan Color"); - AddCategoryMapping("Casio Loopy", TorznabCatType.ConsoleOther, "Casio Loopy"); - AddCategoryMapping("Casio PV-1000", TorznabCatType.ConsoleOther, "Casio PV-1000"); - AddCategoryMapping("Colecovision", TorznabCatType.ConsoleOther, "Colecovision"); - AddCategoryMapping("Commodore 64", TorznabCatType.ConsoleOther, "Commodore 64"); - AddCategoryMapping("Commodore 128", TorznabCatType.ConsoleOther, "Commodore 128"); - AddCategoryMapping("Commodore Amiga", TorznabCatType.ConsoleOther, "Commodore Amiga"); - AddCategoryMapping("Commodore Plus-4", TorznabCatType.ConsoleOther, "Commodore Plus-4"); - AddCategoryMapping("Commodore VIC-20", TorznabCatType.ConsoleOther, "Commodore VIC-20"); - AddCategoryMapping("Emerson Arcadia 2001", TorznabCatType.ConsoleOther, "Emerson Arcadia 2001"); - AddCategoryMapping("Entex Adventure Vision", TorznabCatType.ConsoleOther, "Entex Adventure Vision"); - AddCategoryMapping("Epoch Super Casette Vision", TorznabCatType.ConsoleOther, "Epoch Super Casette Vision"); - AddCategoryMapping("Fairchild Channel F", TorznabCatType.ConsoleOther, "Fairchild Channel F"); - AddCategoryMapping("Funtech Super Acan", TorznabCatType.ConsoleOther, "Funtech Super Acan"); - AddCategoryMapping("GamePark GP32", TorznabCatType.ConsoleOther, "GamePark GP32"); - AddCategoryMapping("General Computer Vectrex", TorznabCatType.ConsoleOther, "General Computer Vectrex"); - AddCategoryMapping("Interactive DVD", TorznabCatType.ConsoleOther, "Interactive DVD"); - AddCategoryMapping("Linux", TorznabCatType.ConsoleOther, "Linux"); - AddCategoryMapping("Hartung Game Master", TorznabCatType.ConsoleOther, "Hartung Game Master"); - AddCategoryMapping("Magnavox-Phillips Odyssey", TorznabCatType.ConsoleOther, "Magnavox-Phillips Odyssey"); - AddCategoryMapping("Mattel Intellivision", TorznabCatType.ConsoleOther, "Mattel Intellivision"); - AddCategoryMapping("Memotech MTX", TorznabCatType.ConsoleOther, "Memotech MTX"); - AddCategoryMapping("Miles Gordon Sam Coupe", TorznabCatType.ConsoleOther, "Miles Gordon Sam Coupe"); - AddCategoryMapping("NEC PC-98", TorznabCatType.ConsoleOther, "NEC PC-98"); - AddCategoryMapping("NEC PC-FX", TorznabCatType.ConsoleOther, "NEC PC-FX"); - AddCategoryMapping("NEC SuperGrafx", TorznabCatType.ConsoleOther, "NEC SuperGrafx"); - AddCategoryMapping("NEC TurboGrafx-16", TorznabCatType.ConsoleOther, "NEC TurboGrafx-16"); - AddCategoryMapping("Nokia N-Gage", TorznabCatType.ConsoleOther, "Nokia N-Gage"); - AddCategoryMapping("Ouya", TorznabCatType.ConsoleOther, "Ouya"); - AddCategoryMapping("Philips Videopac+", TorznabCatType.ConsoleOther, "Philips Videopac+"); - AddCategoryMapping("Phone/PDA", TorznabCatType.ConsoleOther, "Phone/PDA"); - AddCategoryMapping("RCA Studio II", TorznabCatType.ConsoleOther, "RCA Studio II"); - AddCategoryMapping("Sharp X1", TorznabCatType.ConsoleOther, "Sharp X1"); - AddCategoryMapping("Sharp X68000", TorznabCatType.ConsoleOther, "Sharp X68000"); - AddCategoryMapping("SNK Neo Geo", TorznabCatType.ConsoleOther, "SNK Neo Geo"); - AddCategoryMapping("SNK Neo Geo Pocket", TorznabCatType.ConsoleOther, "SNK Neo Geo Pocket"); - AddCategoryMapping("Taito Type X", TorznabCatType.ConsoleOther, "Taito Type X"); - AddCategoryMapping("Tandy Color Computer", TorznabCatType.ConsoleOther, "Tandy Color Computer"); - AddCategoryMapping("Tangerine Oric", TorznabCatType.ConsoleOther, "Tangerine Oric"); - AddCategoryMapping("Thomson MO5", TorznabCatType.ConsoleOther, "Thomson MO5"); - AddCategoryMapping("Watara Supervision", TorznabCatType.ConsoleOther, "Watara Supervision"); - AddCategoryMapping("Retro - Other", TorznabCatType.ConsoleOther, "Retro - Other"); + caps.Categories.AddCategoryMapping("3DO", TorznabCatType.ConsoleOther, "3DO"); + caps.Categories.AddCategoryMapping("Bandai WonderSwan", TorznabCatType.ConsoleOther, "Bandai WonderSwan"); + caps.Categories.AddCategoryMapping("Bandai WonderSwan Color", TorznabCatType.ConsoleOther, "Bandai WonderSwan Color"); + caps.Categories.AddCategoryMapping("Casio Loopy", TorznabCatType.ConsoleOther, "Casio Loopy"); + caps.Categories.AddCategoryMapping("Casio PV-1000", TorznabCatType.ConsoleOther, "Casio PV-1000"); + caps.Categories.AddCategoryMapping("Colecovision", TorznabCatType.ConsoleOther, "Colecovision"); + caps.Categories.AddCategoryMapping("Commodore 64", TorznabCatType.ConsoleOther, "Commodore 64"); + caps.Categories.AddCategoryMapping("Commodore 128", TorznabCatType.ConsoleOther, "Commodore 128"); + caps.Categories.AddCategoryMapping("Commodore Amiga", TorznabCatType.ConsoleOther, "Commodore Amiga"); + caps.Categories.AddCategoryMapping("Commodore Plus-4", TorznabCatType.ConsoleOther, "Commodore Plus-4"); + caps.Categories.AddCategoryMapping("Commodore VIC-20", TorznabCatType.ConsoleOther, "Commodore VIC-20"); + caps.Categories.AddCategoryMapping("Emerson Arcadia 2001", TorznabCatType.ConsoleOther, "Emerson Arcadia 2001"); + caps.Categories.AddCategoryMapping("Entex Adventure Vision", TorznabCatType.ConsoleOther, "Entex Adventure Vision"); + caps.Categories.AddCategoryMapping("Epoch Super Casette Vision", TorznabCatType.ConsoleOther, "Epoch Super Casette Vision"); + caps.Categories.AddCategoryMapping("Fairchild Channel F", TorznabCatType.ConsoleOther, "Fairchild Channel F"); + caps.Categories.AddCategoryMapping("Funtech Super Acan", TorznabCatType.ConsoleOther, "Funtech Super Acan"); + caps.Categories.AddCategoryMapping("GamePark GP32", TorznabCatType.ConsoleOther, "GamePark GP32"); + caps.Categories.AddCategoryMapping("General Computer Vectrex", TorznabCatType.ConsoleOther, "General Computer Vectrex"); + caps.Categories.AddCategoryMapping("Interactive DVD", TorznabCatType.ConsoleOther, "Interactive DVD"); + caps.Categories.AddCategoryMapping("Linux", TorznabCatType.ConsoleOther, "Linux"); + caps.Categories.AddCategoryMapping("Hartung Game Master", TorznabCatType.ConsoleOther, "Hartung Game Master"); + caps.Categories.AddCategoryMapping("Magnavox-Phillips Odyssey", TorznabCatType.ConsoleOther, "Magnavox-Phillips Odyssey"); + caps.Categories.AddCategoryMapping("Mattel Intellivision", TorznabCatType.ConsoleOther, "Mattel Intellivision"); + caps.Categories.AddCategoryMapping("Memotech MTX", TorznabCatType.ConsoleOther, "Memotech MTX"); + caps.Categories.AddCategoryMapping("Miles Gordon Sam Coupe", TorznabCatType.ConsoleOther, "Miles Gordon Sam Coupe"); + caps.Categories.AddCategoryMapping("NEC PC-98", TorznabCatType.ConsoleOther, "NEC PC-98"); + caps.Categories.AddCategoryMapping("NEC PC-FX", TorznabCatType.ConsoleOther, "NEC PC-FX"); + caps.Categories.AddCategoryMapping("NEC SuperGrafx", TorznabCatType.ConsoleOther, "NEC SuperGrafx"); + caps.Categories.AddCategoryMapping("NEC TurboGrafx-16", TorznabCatType.ConsoleOther, "NEC TurboGrafx-16"); + caps.Categories.AddCategoryMapping("Nokia N-Gage", TorznabCatType.ConsoleOther, "Nokia N-Gage"); + caps.Categories.AddCategoryMapping("Ouya", TorznabCatType.ConsoleOther, "Ouya"); + caps.Categories.AddCategoryMapping("Philips Videopac+", TorznabCatType.ConsoleOther, "Philips Videopac+"); + caps.Categories.AddCategoryMapping("Phone/PDA", TorznabCatType.ConsoleOther, "Phone/PDA"); + caps.Categories.AddCategoryMapping("RCA Studio II", TorznabCatType.ConsoleOther, "RCA Studio II"); + caps.Categories.AddCategoryMapping("Sharp X1", TorznabCatType.ConsoleOther, "Sharp X1"); + caps.Categories.AddCategoryMapping("Sharp X68000", TorznabCatType.ConsoleOther, "Sharp X68000"); + caps.Categories.AddCategoryMapping("SNK Neo Geo", TorznabCatType.ConsoleOther, "SNK Neo Geo"); + caps.Categories.AddCategoryMapping("SNK Neo Geo Pocket", TorznabCatType.ConsoleOther, "SNK Neo Geo Pocket"); + caps.Categories.AddCategoryMapping("Taito Type X", TorznabCatType.ConsoleOther, "Taito Type X"); + caps.Categories.AddCategoryMapping("Tandy Color Computer", TorznabCatType.ConsoleOther, "Tandy Color Computer"); + caps.Categories.AddCategoryMapping("Tangerine Oric", TorznabCatType.ConsoleOther, "Tangerine Oric"); + caps.Categories.AddCategoryMapping("Thomson MO5", TorznabCatType.ConsoleOther, "Thomson MO5"); + caps.Categories.AddCategoryMapping("Watara Supervision", TorznabCatType.ConsoleOther, "Watara Supervision"); + caps.Categories.AddCategoryMapping("Retro - Other", TorznabCatType.ConsoleOther, "Retro - Other"); // special categories (real categories/not platforms) - AddCategoryMapping("OST", TorznabCatType.AudioOther, "OST"); - AddCategoryMapping("Applications", TorznabCatType.PC0day, "Applications"); - AddCategoryMapping("E-Books", TorznabCatType.BooksEBook, "E-Books"); + caps.Categories.AddCategoryMapping("OST", TorznabCatType.AudioOther, "OST"); + caps.Categories.AddCategoryMapping("Applications", TorznabCatType.PC0day, "Applications"); + caps.Categories.AddCategoryMapping("E-Books", TorznabCatType.BooksEBook, "E-Books"); + + return caps; } protected override async Task> PerformQuery(TorznabQuery query) diff --git a/src/Jackett.Common/Indexers/GreatPosterWall.cs b/src/Jackett.Common/Indexers/GreatPosterWall.cs index e134eb1f3..1a8594ae7 100644 --- a/src/Jackett.Common/Indexers/GreatPosterWall.cs +++ b/src/Jackett.Common/Indexers/GreatPosterWall.cs @@ -24,17 +24,10 @@ namespace Jackett.Common.Indexers public override string Language => "zh-CN"; public override string Type => "private"; - public GreatPosterWall(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, - ICacheService cs) - : base( - caps: new TorznabCapabilities - { - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.Genre - } - }, - configService: configService, + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + + public GreatPosterWall(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) + : base(configService: configService, client: wc, logger: l, p: ps, @@ -45,14 +38,26 @@ namespace Jackett.Common.Indexers has2Fa: true, useApiKey: false, usePassKey: false, - instructionMessageOptional: null - ) + instructionMessageOptional: null) { - AddCategoryMapping(1, TorznabCatType.Movies, "Movies 电影"); - configData.AddDynamic("showFilename", new BoolConfigurationItem("Use the first torrent filename as the title") { Value = false }); } + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.Genre + } + }; + + caps.Categories.AddCategoryMapping(1, TorznabCatType.Movies, "Movies 电影"); + + return caps; + } + protected override async Task> PerformQuery(TorznabQuery query) { // GPW uses imdbid in the searchstr so prevent cataloguenumber or taglist search. diff --git a/src/Jackett.Common/Indexers/HDBitsApi.cs b/src/Jackett.Common/Indexers/HDBitsApi.cs index 8ed40cc3c..d22f531f0 100644 --- a/src/Jackett.Common/Indexers/HDBitsApi.cs +++ b/src/Jackett.Common/Indexers/HDBitsApi.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; -using System.Text; using System.Threading.Tasks; using Jackett.Common.Models; using Jackett.Common.Models.IndexerConfig.Bespoke; @@ -25,6 +24,8 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string APIUrl => SiteLink + "api/"; private new ConfigurationDataHDBitsApi configData @@ -35,33 +36,39 @@ namespace Jackett.Common.Indexers public HDBitsApi(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.TvdbId - }, - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId - } - }, - configService: configService, + : base(configService: configService, client: wc, logger: l, p: ps, cacheService: cs, configData: new ConfigurationDataHDBitsApi()) { - AddCategoryMapping(6, TorznabCatType.Audio, "Audio Track"); - AddCategoryMapping(3, TorznabCatType.TVDocumentary, "Documentary"); - AddCategoryMapping(8, TorznabCatType.Other, "Misc/Demo"); - AddCategoryMapping(1, TorznabCatType.Movies, "Movie"); - AddCategoryMapping(4, TorznabCatType.Audio, "Music"); - AddCategoryMapping(5, TorznabCatType.TVSport, "Sport"); - AddCategoryMapping(2, TorznabCatType.TV, "TV"); - AddCategoryMapping(7, TorznabCatType.XXX, "XXX"); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.TvdbId + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId + } + }; + + caps.Categories.AddCategoryMapping(6, TorznabCatType.Audio, "Audio Track"); + caps.Categories.AddCategoryMapping(3, TorznabCatType.TVDocumentary, "Documentary"); + caps.Categories.AddCategoryMapping(8, TorznabCatType.Other, "Misc/Demo"); + caps.Categories.AddCategoryMapping(1, TorznabCatType.Movies, "Movie"); + caps.Categories.AddCategoryMapping(4, TorznabCatType.Audio, "Music"); + caps.Categories.AddCategoryMapping(5, TorznabCatType.TVSport, "Sport"); + caps.Categories.AddCategoryMapping(2, TorznabCatType.TV, "TV"); + caps.Categories.AddCategoryMapping(7, TorznabCatType.XXX, "XXX"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/HDSpace.cs b/src/Jackett.Common/Indexers/HDSpace.cs index 59f0ce137..5e27eaaa3 100644 --- a/src/Jackett.Common/Indexers/HDSpace.cs +++ b/src/Jackett.Common/Indexers/HDSpace.cs @@ -4,7 +4,6 @@ using System.Collections.Specialized; using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Net; -using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using AngleSharp.Html.Parser; @@ -29,6 +28,8 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string LoginUrl => SiteLink + "index.php?page=login"; private string SearchUrl => SiteLink + "index.php?page=torrents"; @@ -36,23 +37,7 @@ namespace Jackett.Common.Indexers public HDSpace(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId - }, - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId - }, - MusicSearchParams = new List - { - MusicSearchParam.Q - } - }, - configService: configService, + : base(configService: configService, client: wc, logger: l, p: ps, @@ -60,30 +45,51 @@ namespace Jackett.Common.Indexers configData: new ConfigurationDataBasicLogin()) { configData.AddDynamic("flaresolverr", new DisplayInfoConfigurationItem("FlareSolverr", "This site may use Cloudflare DDoS Protection, therefore Jackett requires FlareSolverr to access it.")); + } - AddCategoryMapping(15, TorznabCatType.MoviesBluRay, "Movie / Blu-ray"); - AddCategoryMapping(40, TorznabCatType.MoviesHD, "Movie / Remux"); - AddCategoryMapping(18, TorznabCatType.MoviesHD, "Movie / 720p"); - AddCategoryMapping(19, TorznabCatType.MoviesHD, "Movie / 1080p"); - AddCategoryMapping(46, TorznabCatType.MoviesUHD, "Movie / 2160p"); - AddCategoryMapping(21, TorznabCatType.TVHD, "TV Show / 720p HDTV"); - AddCategoryMapping(22, TorznabCatType.TVHD, "TV Show / 1080p HDTV"); - AddCategoryMapping(45, TorznabCatType.TVUHD, "TV Show / 2160p HDTV"); - AddCategoryMapping(24, TorznabCatType.TVDocumentary, "Documentary / 720p"); - AddCategoryMapping(25, TorznabCatType.TVDocumentary, "Documentary / 1080p"); - AddCategoryMapping(47, TorznabCatType.TVDocumentary, "Documentary / 2160p"); - AddCategoryMapping(27, TorznabCatType.TVAnime, "Animation / 720p"); - AddCategoryMapping(28, TorznabCatType.TVAnime, "Animation / 1080p"); - AddCategoryMapping(48, TorznabCatType.TVAnime, "Animation / 2160p"); - AddCategoryMapping(30, TorznabCatType.AudioLossless, "Music / HQ Audio"); - AddCategoryMapping(31, TorznabCatType.AudioVideo, "Music / Videos"); - AddCategoryMapping(33, TorznabCatType.XXX, "XXX / 720p"); - AddCategoryMapping(34, TorznabCatType.XXX, "XXX / 1080p"); - AddCategoryMapping(49, TorznabCatType.XXX, "XXX / 2160p"); - AddCategoryMapping(36, TorznabCatType.MoviesOther, "Trailers"); - AddCategoryMapping(37, TorznabCatType.PC, "Software"); - AddCategoryMapping(38, TorznabCatType.Other, "Others"); - AddCategoryMapping(41, TorznabCatType.MoviesUHD, "Movie / 4K UHD"); + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId + }, + MusicSearchParams = new List + { + MusicSearchParam.Q + } + }; + + caps.Categories.AddCategoryMapping(15, TorznabCatType.MoviesBluRay, "Movie / Blu-ray"); + caps.Categories.AddCategoryMapping(40, TorznabCatType.MoviesHD, "Movie / Remux"); + caps.Categories.AddCategoryMapping(18, TorznabCatType.MoviesHD, "Movie / 720p"); + caps.Categories.AddCategoryMapping(19, TorznabCatType.MoviesHD, "Movie / 1080p"); + caps.Categories.AddCategoryMapping(46, TorznabCatType.MoviesUHD, "Movie / 2160p"); + caps.Categories.AddCategoryMapping(21, TorznabCatType.TVHD, "TV Show / 720p HDTV"); + caps.Categories.AddCategoryMapping(22, TorznabCatType.TVHD, "TV Show / 1080p HDTV"); + caps.Categories.AddCategoryMapping(45, TorznabCatType.TVUHD, "TV Show / 2160p HDTV"); + caps.Categories.AddCategoryMapping(24, TorznabCatType.TVDocumentary, "Documentary / 720p"); + caps.Categories.AddCategoryMapping(25, TorznabCatType.TVDocumentary, "Documentary / 1080p"); + caps.Categories.AddCategoryMapping(47, TorznabCatType.TVDocumentary, "Documentary / 2160p"); + caps.Categories.AddCategoryMapping(27, TorznabCatType.TVAnime, "Animation / 720p"); + caps.Categories.AddCategoryMapping(28, TorznabCatType.TVAnime, "Animation / 1080p"); + caps.Categories.AddCategoryMapping(48, TorznabCatType.TVAnime, "Animation / 2160p"); + caps.Categories.AddCategoryMapping(30, TorznabCatType.AudioLossless, "Music / HQ Audio"); + caps.Categories.AddCategoryMapping(31, TorznabCatType.AudioVideo, "Music / Videos"); + caps.Categories.AddCategoryMapping(33, TorznabCatType.XXX, "XXX / 720p"); + caps.Categories.AddCategoryMapping(34, TorznabCatType.XXX, "XXX / 1080p"); + caps.Categories.AddCategoryMapping(49, TorznabCatType.XXX, "XXX / 2160p"); + caps.Categories.AddCategoryMapping(36, TorznabCatType.MoviesOther, "Trailers"); + caps.Categories.AddCategoryMapping(37, TorznabCatType.PC, "Software"); + caps.Categories.AddCategoryMapping(38, TorznabCatType.Other, "Others"); + caps.Categories.AddCategoryMapping(41, TorznabCatType.MoviesUHD, "Movie / 4K UHD"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/HDTorrents.cs b/src/Jackett.Common/Indexers/HDTorrents.cs index 3ceaa0463..a09fa550f 100644 --- a/src/Jackett.Common/Indexers/HDTorrents.cs +++ b/src/Jackett.Common/Indexers/HDTorrents.cs @@ -34,6 +34,8 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string SearchUrl => SiteLink + "torrents.php?"; private string LoginUrl => SiteLink + "login.php"; private readonly Regex _posterRegex = new Regex(@"src=\\'./([^']+)\\'", RegexOptions.IgnoreCase); @@ -51,62 +53,68 @@ namespace Jackett.Common.Indexers public HDTorrents(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId - }, - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId - }, - MusicSearchParams = new List - { - MusicSearchParam.Q - } - }, - configService: configService, + : base(configService: configService, client: w, logger: l, p: ps, cacheService: cs, configData: new ConfigurationDataBasicLogin("For best results, change the Torrents per page: setting to 100 on your account profile.")) { + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId + }, + MusicSearchParams = new List + { + MusicSearchParam.Q + } + }; + // Movie - AddCategoryMapping("70", TorznabCatType.MoviesBluRay, "Movie/UHD/Blu-Ray"); - AddCategoryMapping("1", TorznabCatType.MoviesBluRay, "Movie/Blu-Ray"); - AddCategoryMapping("71", TorznabCatType.MoviesUHD, "Movie/UHD/Remux"); - AddCategoryMapping("2", TorznabCatType.MoviesHD, "Movie/Remux"); - AddCategoryMapping("5", TorznabCatType.MoviesHD, "Movie/1080p/i"); - AddCategoryMapping("3", TorznabCatType.MoviesHD, "Movie/720p"); - AddCategoryMapping("64", TorznabCatType.MoviesUHD, "Movie/2160p"); - AddCategoryMapping("63", TorznabCatType.Audio, "Movie/Audio Track"); + caps.Categories.AddCategoryMapping("70", TorznabCatType.MoviesBluRay, "Movie/UHD/Blu-Ray"); + caps.Categories.AddCategoryMapping("1", TorznabCatType.MoviesBluRay, "Movie/Blu-Ray"); + caps.Categories.AddCategoryMapping("71", TorznabCatType.MoviesUHD, "Movie/UHD/Remux"); + caps.Categories.AddCategoryMapping("2", TorznabCatType.MoviesHD, "Movie/Remux"); + caps.Categories.AddCategoryMapping("5", TorznabCatType.MoviesHD, "Movie/1080p/i"); + caps.Categories.AddCategoryMapping("3", TorznabCatType.MoviesHD, "Movie/720p"); + caps.Categories.AddCategoryMapping("64", TorznabCatType.MoviesUHD, "Movie/2160p"); + caps.Categories.AddCategoryMapping("63", TorznabCatType.Audio, "Movie/Audio Track"); // TV Show - AddCategoryMapping("72", TorznabCatType.TVUHD, "TV Show/UHD/Blu-ray"); - AddCategoryMapping("59", TorznabCatType.TVHD, "TV Show/Blu-ray"); - AddCategoryMapping("73", TorznabCatType.TVUHD, "TV Show/UHD/Remux"); - AddCategoryMapping("60", TorznabCatType.TVHD, "TV Show/Remux"); - AddCategoryMapping("30", TorznabCatType.TVHD, "TV Show/1080p/i"); - AddCategoryMapping("38", TorznabCatType.TVHD, "TV Show/720p"); - AddCategoryMapping("65", TorznabCatType.TVUHD, "TV Show/2160p"); + caps.Categories.AddCategoryMapping("72", TorznabCatType.TVUHD, "TV Show/UHD/Blu-ray"); + caps.Categories.AddCategoryMapping("59", TorznabCatType.TVHD, "TV Show/Blu-ray"); + caps.Categories.AddCategoryMapping("73", TorznabCatType.TVUHD, "TV Show/UHD/Remux"); + caps.Categories.AddCategoryMapping("60", TorznabCatType.TVHD, "TV Show/Remux"); + caps.Categories.AddCategoryMapping("30", TorznabCatType.TVHD, "TV Show/1080p/i"); + caps.Categories.AddCategoryMapping("38", TorznabCatType.TVHD, "TV Show/720p"); + caps.Categories.AddCategoryMapping("65", TorznabCatType.TVUHD, "TV Show/2160p"); // Music - AddCategoryMapping("44", TorznabCatType.Audio, "Music/Album"); - AddCategoryMapping("61", TorznabCatType.AudioVideo, "Music/Blu-Ray"); - AddCategoryMapping("62", TorznabCatType.AudioVideo, "Music/Remux"); - AddCategoryMapping("57", TorznabCatType.AudioVideo, "Music/1080p/i"); - AddCategoryMapping("45", TorznabCatType.AudioVideo, "Music/720p"); - AddCategoryMapping("66", TorznabCatType.AudioVideo, "Music/2160p"); + caps.Categories.AddCategoryMapping("44", TorznabCatType.Audio, "Music/Album"); + caps.Categories.AddCategoryMapping("61", TorznabCatType.AudioVideo, "Music/Blu-Ray"); + caps.Categories.AddCategoryMapping("62", TorznabCatType.AudioVideo, "Music/Remux"); + caps.Categories.AddCategoryMapping("57", TorznabCatType.AudioVideo, "Music/1080p/i"); + caps.Categories.AddCategoryMapping("45", TorznabCatType.AudioVideo, "Music/720p"); + caps.Categories.AddCategoryMapping("66", TorznabCatType.AudioVideo, "Music/2160p"); // XXX - AddCategoryMapping("58", TorznabCatType.XXX, "XXX/Blu-ray"); - AddCategoryMapping("74", TorznabCatType.XXX, "XXX/UHD/Blu-ray"); - AddCategoryMapping("48", TorznabCatType.XXX, "XXX/1080p/i"); - AddCategoryMapping("47", TorznabCatType.XXX, "XXX/720p"); - AddCategoryMapping("67", TorznabCatType.XXX, "XXX/2160p"); + caps.Categories.AddCategoryMapping("58", TorznabCatType.XXX, "XXX/Blu-ray"); + caps.Categories.AddCategoryMapping("74", TorznabCatType.XXX, "XXX/UHD/Blu-ray"); + caps.Categories.AddCategoryMapping("48", TorznabCatType.XXX, "XXX/1080p/i"); + caps.Categories.AddCategoryMapping("47", TorznabCatType.XXX, "XXX/720p"); + caps.Categories.AddCategoryMapping("67", TorznabCatType.XXX, "XXX/2160p"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/IPTorrents.cs b/src/Jackett.Common/Indexers/IPTorrents.cs index b9b27615f..d51275315 100644 --- a/src/Jackett.Common/Indexers/IPTorrents.cs +++ b/src/Jackett.Common/Indexers/IPTorrents.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using System.Collections.Specialized; using System.Diagnostics.CodeAnalysis; using System.Linq; -using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using AngleSharp.Html.Parser; @@ -57,34 +56,15 @@ namespace Jackett.Common.Indexers public override bool SupportsPagination => true; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string SearchUrl => SiteLink + "t"; private new ConfigurationDataCookieUA configData => (ConfigurationDataCookieUA)base.configData; public IPTorrents(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId, TvSearchParam.Genre - }, - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.Genre - }, - MusicSearchParams = new List - { - MusicSearchParam.Q - }, - BookSearchParams = new List - { - BookSearchParam.Q - }, - TvSearchImdbAvailable = true - }, - configService: configService, + : base(configService: configService, client: wc, logger: l, p: ps, @@ -102,78 +82,104 @@ namespace Jackett.Common.Indexers configData.AddDynamic("sort", sort); configData.AddDynamic("freeleech", new BoolConfigurationItem("Search freeleech only") { Value = false }); + } - AddCategoryMapping(72, TorznabCatType.Movies, "Movies"); - AddCategoryMapping(87, TorznabCatType.Movies3D, "Movie/3D"); - AddCategoryMapping(77, TorznabCatType.MoviesSD, "Movie/480p"); - AddCategoryMapping(101, TorznabCatType.MoviesUHD, "Movie/4K"); - AddCategoryMapping(89, TorznabCatType.MoviesBluRay, "Movie/BD-R"); - AddCategoryMapping(90, TorznabCatType.MoviesHD, "Movie/BD-Rip"); - AddCategoryMapping(96, TorznabCatType.MoviesSD, "Movie/Cam"); - AddCategoryMapping(6, TorznabCatType.MoviesDVD, "Movie/DVD-R"); - AddCategoryMapping(48, TorznabCatType.MoviesHD, "Movie/HD/Bluray"); - AddCategoryMapping(54, TorznabCatType.Movies, "Movie/Kids"); - AddCategoryMapping(62, TorznabCatType.MoviesSD, "Movie/MP4"); - AddCategoryMapping(38, TorznabCatType.MoviesForeign, "Movie/Non-English"); - AddCategoryMapping(68, TorznabCatType.Movies, "Movie/Packs"); - AddCategoryMapping(20, TorznabCatType.MoviesWEBDL, "Movie/Web-DL"); - AddCategoryMapping(100, TorznabCatType.MoviesHD, "Movie/x265"); - AddCategoryMapping(7, TorznabCatType.MoviesSD, "Movie/Xvid"); + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId, TvSearchParam.Genre + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.Genre + }, + MusicSearchParams = new List + { + MusicSearchParam.Q + }, + BookSearchParams = new List + { + BookSearchParam.Q + }, + TvSearchImdbAvailable = true + }; - AddCategoryMapping(73, TorznabCatType.TV, "TV"); - AddCategoryMapping(26, TorznabCatType.TVDocumentary, "TV/Documentaries"); - AddCategoryMapping(55, TorznabCatType.TVSport, "Sports"); - AddCategoryMapping(78, TorznabCatType.TVSD, "TV/480p"); - AddCategoryMapping(23, TorznabCatType.TVHD, "TV/BD"); - AddCategoryMapping(24, TorznabCatType.TVSD, "TV/DVD-R"); - AddCategoryMapping(25, TorznabCatType.TVSD, "TV/DVD-Rip"); - AddCategoryMapping(66, TorznabCatType.TVSD, "TV/Mobile"); - AddCategoryMapping(82, TorznabCatType.TVForeign, "TV/Non-English"); - AddCategoryMapping(65, TorznabCatType.TV, "TV/Packs"); - AddCategoryMapping(83, TorznabCatType.TVForeign, "TV/Packs/Non-English"); - AddCategoryMapping(79, TorznabCatType.TVSD, "TV/SD/x264"); - AddCategoryMapping(22, TorznabCatType.TVWEBDL, "TV/Web-DL"); - AddCategoryMapping(5, TorznabCatType.TVHD, "TV/x264"); - AddCategoryMapping(99, TorznabCatType.TVHD, "TV/x265"); - AddCategoryMapping(4, TorznabCatType.TVSD, "TV/Xvid"); + caps.Categories.AddCategoryMapping(72, TorznabCatType.Movies, "Movies"); + caps.Categories.AddCategoryMapping(87, TorznabCatType.Movies3D, "Movie/3D"); + caps.Categories.AddCategoryMapping(77, TorznabCatType.MoviesSD, "Movie/480p"); + caps.Categories.AddCategoryMapping(101, TorznabCatType.MoviesUHD, "Movie/4K"); + caps.Categories.AddCategoryMapping(89, TorznabCatType.MoviesBluRay, "Movie/BD-R"); + caps.Categories.AddCategoryMapping(90, TorznabCatType.MoviesHD, "Movie/BD-Rip"); + caps.Categories.AddCategoryMapping(96, TorznabCatType.MoviesSD, "Movie/Cam"); + caps.Categories.AddCategoryMapping(6, TorznabCatType.MoviesDVD, "Movie/DVD-R"); + caps.Categories.AddCategoryMapping(48, TorznabCatType.MoviesHD, "Movie/HD/Bluray"); + caps.Categories.AddCategoryMapping(54, TorznabCatType.Movies, "Movie/Kids"); + caps.Categories.AddCategoryMapping(62, TorznabCatType.MoviesSD, "Movie/MP4"); + caps.Categories.AddCategoryMapping(38, TorznabCatType.MoviesForeign, "Movie/Non-English"); + caps.Categories.AddCategoryMapping(68, TorznabCatType.Movies, "Movie/Packs"); + caps.Categories.AddCategoryMapping(20, TorznabCatType.MoviesWEBDL, "Movie/Web-DL"); + caps.Categories.AddCategoryMapping(100, TorznabCatType.MoviesHD, "Movie/x265"); + caps.Categories.AddCategoryMapping(7, TorznabCatType.MoviesSD, "Movie/Xvid"); - AddCategoryMapping(74, TorznabCatType.Console, "Games"); - AddCategoryMapping(2, TorznabCatType.ConsoleOther, "Games/Mixed"); - AddCategoryMapping(47, TorznabCatType.ConsoleOther, "Games/Nintendo"); - AddCategoryMapping(43, TorznabCatType.PCGames, "Games/PC-ISO"); - AddCategoryMapping(45, TorznabCatType.PCGames, "Games/PC-Rip"); - AddCategoryMapping(71, TorznabCatType.ConsolePS4, "Games/Playstation"); - AddCategoryMapping(50, TorznabCatType.ConsoleWii, "Games/Wii"); - AddCategoryMapping(44, TorznabCatType.ConsoleXBox, "Games/Xbox"); + caps.Categories.AddCategoryMapping(73, TorznabCatType.TV, "TV"); + caps.Categories.AddCategoryMapping(26, TorznabCatType.TVDocumentary, "TV/Documentaries"); + caps.Categories.AddCategoryMapping(55, TorznabCatType.TVSport, "Sports"); + caps.Categories.AddCategoryMapping(78, TorznabCatType.TVSD, "TV/480p"); + caps.Categories.AddCategoryMapping(23, TorznabCatType.TVHD, "TV/BD"); + caps.Categories.AddCategoryMapping(24, TorznabCatType.TVSD, "TV/DVD-R"); + caps.Categories.AddCategoryMapping(25, TorznabCatType.TVSD, "TV/DVD-Rip"); + caps.Categories.AddCategoryMapping(66, TorznabCatType.TVSD, "TV/Mobile"); + caps.Categories.AddCategoryMapping(82, TorznabCatType.TVForeign, "TV/Non-English"); + caps.Categories.AddCategoryMapping(65, TorznabCatType.TV, "TV/Packs"); + caps.Categories.AddCategoryMapping(83, TorznabCatType.TVForeign, "TV/Packs/Non-English"); + caps.Categories.AddCategoryMapping(79, TorznabCatType.TVSD, "TV/SD/x264"); + caps.Categories.AddCategoryMapping(22, TorznabCatType.TVWEBDL, "TV/Web-DL"); + caps.Categories.AddCategoryMapping(5, TorznabCatType.TVHD, "TV/x264"); + caps.Categories.AddCategoryMapping(99, TorznabCatType.TVHD, "TV/x265"); + caps.Categories.AddCategoryMapping(4, TorznabCatType.TVSD, "TV/Xvid"); - AddCategoryMapping(75, TorznabCatType.Audio, "Music"); - AddCategoryMapping(3, TorznabCatType.AudioMP3, "Music/Audio"); - AddCategoryMapping(80, TorznabCatType.AudioLossless, "Music/Flac"); - AddCategoryMapping(93, TorznabCatType.Audio, "Music/Packs"); - AddCategoryMapping(37, TorznabCatType.AudioVideo, "Music/Video"); - AddCategoryMapping(21, TorznabCatType.AudioOther, "Podcast"); + caps.Categories.AddCategoryMapping(74, TorznabCatType.Console, "Games"); + caps.Categories.AddCategoryMapping(2, TorznabCatType.ConsoleOther, "Games/Mixed"); + caps.Categories.AddCategoryMapping(47, TorznabCatType.ConsoleOther, "Games/Nintendo"); + caps.Categories.AddCategoryMapping(43, TorznabCatType.PCGames, "Games/PC-ISO"); + caps.Categories.AddCategoryMapping(45, TorznabCatType.PCGames, "Games/PC-Rip"); + caps.Categories.AddCategoryMapping(71, TorznabCatType.ConsolePS4, "Games/Playstation"); + caps.Categories.AddCategoryMapping(50, TorznabCatType.ConsoleWii, "Games/Wii"); + caps.Categories.AddCategoryMapping(44, TorznabCatType.ConsoleXBox, "Games/Xbox"); - AddCategoryMapping(76, TorznabCatType.Other, "Miscellaneous"); - AddCategoryMapping(60, TorznabCatType.TVAnime, "Anime"); - AddCategoryMapping(1, TorznabCatType.PC0day, "Appz"); - AddCategoryMapping(86, TorznabCatType.PC0day, "Appz/Non-English"); - AddCategoryMapping(64, TorznabCatType.AudioAudiobook, "AudioBook"); - AddCategoryMapping(35, TorznabCatType.Books, "Books"); - AddCategoryMapping(102, TorznabCatType.Books, "Books/Non-English"); - AddCategoryMapping(94, TorznabCatType.BooksComics, "Comics"); - AddCategoryMapping(95, TorznabCatType.BooksOther, "Educational"); - AddCategoryMapping(98, TorznabCatType.Other, "Fonts"); - AddCategoryMapping(69, TorznabCatType.PCMac, "Mac"); - AddCategoryMapping(92, TorznabCatType.BooksMags, "Magazines / Newspapers"); - AddCategoryMapping(58, TorznabCatType.PCMobileOther, "Mobile"); - AddCategoryMapping(36, TorznabCatType.Other, "Pics/Wallpapers"); + caps.Categories.AddCategoryMapping(75, TorznabCatType.Audio, "Music"); + caps.Categories.AddCategoryMapping(3, TorznabCatType.AudioMP3, "Music/Audio"); + caps.Categories.AddCategoryMapping(80, TorznabCatType.AudioLossless, "Music/Flac"); + caps.Categories.AddCategoryMapping(93, TorznabCatType.Audio, "Music/Packs"); + caps.Categories.AddCategoryMapping(37, TorznabCatType.AudioVideo, "Music/Video"); + caps.Categories.AddCategoryMapping(21, TorznabCatType.AudioOther, "Podcast"); - AddCategoryMapping(88, TorznabCatType.XXX, "XXX"); - AddCategoryMapping(85, TorznabCatType.XXXOther, "XXX/Magazines"); - AddCategoryMapping(8, TorznabCatType.XXX, "XXX/Movie"); - AddCategoryMapping(81, TorznabCatType.XXX, "XXX/Movie/0Day"); - AddCategoryMapping(91, TorznabCatType.XXXPack, "XXX/Packs"); - AddCategoryMapping(84, TorznabCatType.XXXImageSet, "XXX/Pics/Wallpapers"); + caps.Categories.AddCategoryMapping(76, TorznabCatType.Other, "Miscellaneous"); + caps.Categories.AddCategoryMapping(60, TorznabCatType.TVAnime, "Anime"); + caps.Categories.AddCategoryMapping(1, TorznabCatType.PC0day, "Appz"); + caps.Categories.AddCategoryMapping(86, TorznabCatType.PC0day, "Appz/Non-English"); + caps.Categories.AddCategoryMapping(64, TorznabCatType.AudioAudiobook, "AudioBook"); + caps.Categories.AddCategoryMapping(35, TorznabCatType.Books, "Books"); + caps.Categories.AddCategoryMapping(102, TorznabCatType.Books, "Books/Non-English"); + caps.Categories.AddCategoryMapping(94, TorznabCatType.BooksComics, "Comics"); + caps.Categories.AddCategoryMapping(95, TorznabCatType.BooksOther, "Educational"); + caps.Categories.AddCategoryMapping(98, TorznabCatType.Other, "Fonts"); + caps.Categories.AddCategoryMapping(69, TorznabCatType.PCMac, "Mac"); + caps.Categories.AddCategoryMapping(92, TorznabCatType.BooksMags, "Magazines / Newspapers"); + caps.Categories.AddCategoryMapping(58, TorznabCatType.PCMobileOther, "Mobile"); + caps.Categories.AddCategoryMapping(36, TorznabCatType.Other, "Pics/Wallpapers"); + + caps.Categories.AddCategoryMapping(88, TorznabCatType.XXX, "XXX"); + caps.Categories.AddCategoryMapping(85, TorznabCatType.XXXOther, "XXX/Magazines"); + caps.Categories.AddCategoryMapping(8, TorznabCatType.XXX, "XXX/Movie"); + caps.Categories.AddCategoryMapping(81, TorznabCatType.XXX, "XXX/Movie/0Day"); + caps.Categories.AddCategoryMapping(91, TorznabCatType.XXXPack, "XXX/Packs"); + caps.Categories.AddCategoryMapping(84, TorznabCatType.XXXImageSet, "XXX/Pics/Wallpapers"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/ImmortalSeed.cs b/src/Jackett.Common/Indexers/ImmortalSeed.cs index a1def85ec..3cb56da65 100644 --- a/src/Jackett.Common/Indexers/ImmortalSeed.cs +++ b/src/Jackett.Common/Indexers/ImmortalSeed.cs @@ -3,8 +3,6 @@ using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; -using System.Net; -using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using AngleSharp.Html.Parser; @@ -32,6 +30,8 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string SearchUrl => SiteLink + "browse.php"; private string LoginUrl => SiteLink + "takelogin.php"; private readonly Regex _dateMatchRegex = new Regex(@"\d{4}-\d{2}-\d{2} \d{2}:\d{2} [AaPp][Mm]", RegexOptions.Compiled); @@ -44,79 +44,13 @@ namespace Jackett.Common.Indexers public ImmortalSeed(IIndexerConfigurationService configService, Utils.Clients.WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep - }, - MovieSearchParams = new List - { - MovieSearchParam.Q - }, - MusicSearchParams = new List - { - MusicSearchParam.Q - }, - BookSearchParams = new List - { - BookSearchParam.Q - } - }, - configService: configService, + : base(configService: configService, client: wc, logger: l, p: ps, cacheService: cs, configData: new ConfigurationDataBasicLogin()) { - AddCategoryMapping(3, TorznabCatType.Other, "Nuked"); - AddCategoryMapping(32, TorznabCatType.TVAnime, "Anime"); - AddCategoryMapping(23, TorznabCatType.PC, "Apps"); - AddCategoryMapping(35, TorznabCatType.AudioAudiobook, "Audiobooks"); - AddCategoryMapping(31, TorznabCatType.TV, "Childrens/Cartoons"); - AddCategoryMapping(54, TorznabCatType.TVDocumentary, "Documentary - HD"); - AddCategoryMapping(53, TorznabCatType.TVDocumentary, "Documentary - SD"); - AddCategoryMapping(22, TorznabCatType.BooksEBook, "Ebooks"); - AddCategoryMapping(41, TorznabCatType.BooksComics, "Comics"); - AddCategoryMapping(46, TorznabCatType.BooksMags, "Magazines"); - AddCategoryMapping(25, TorznabCatType.PCGames, "Games"); - AddCategoryMapping(61, TorznabCatType.ConsoleNDS, "Games Nintendo"); - AddCategoryMapping(26, TorznabCatType.PCGames, "Games-PC ISO"); - AddCategoryMapping(28, TorznabCatType.ConsolePS4, "Games-PSx"); - AddCategoryMapping(29, TorznabCatType.ConsoleXBox, "Games Xbox"); - AddCategoryMapping(49, TorznabCatType.PCMobileOther, "Mobile"); - AddCategoryMapping(51, TorznabCatType.PCMobileAndroid, "Android"); - AddCategoryMapping(50, TorznabCatType.PCMobileiOS, "IOS"); - AddCategoryMapping(52, TorznabCatType.PC0day, "Windows"); - AddCategoryMapping(59, TorznabCatType.MoviesUHD, "Movies-4k"); - AddCategoryMapping(60, TorznabCatType.MoviesForeign, "Non-English 4k Movies"); - AddCategoryMapping(16, TorznabCatType.MoviesHD, "Movies HD"); - AddCategoryMapping(18, TorznabCatType.MoviesForeign, "Movies HD Non-English"); - AddCategoryMapping(17, TorznabCatType.MoviesSD, "TS/CAM/PPV"); - AddCategoryMapping(34, TorznabCatType.MoviesForeign, "Movies Low Def Non-English"); - AddCategoryMapping(62, TorznabCatType.Movies, "Movies-Packs"); - AddCategoryMapping(14, TorznabCatType.MoviesSD, "Movies-SD"); - AddCategoryMapping(33, TorznabCatType.MoviesForeign, "Movies SD Non-English"); - AddCategoryMapping(30, TorznabCatType.AudioOther, "Music"); - AddCategoryMapping(37, TorznabCatType.AudioLossless, "FLAC"); - AddCategoryMapping(36, TorznabCatType.AudioMP3, "MP3"); - AddCategoryMapping(39, TorznabCatType.AudioOther, "Music Other"); - AddCategoryMapping(38, TorznabCatType.AudioVideo, "Music Video"); - AddCategoryMapping(45, TorznabCatType.Other, "Other"); - AddCategoryMapping(7, TorznabCatType.TVSport, "Sports Tv"); - AddCategoryMapping(44, TorznabCatType.TVSport, "Sports Fitness-Instructional"); - AddCategoryMapping(58, TorznabCatType.TVSport, "Olympics"); - AddCategoryMapping(47, TorznabCatType.TVSD, "TV - 480p"); - AddCategoryMapping(64, TorznabCatType.TVUHD, "TV - 4K"); - AddCategoryMapping(8, TorznabCatType.TVHD, "TV - High Definition"); - AddCategoryMapping(48, TorznabCatType.TVSD, "TV - Standard Definition - x264"); - AddCategoryMapping(9, TorznabCatType.TVSD, "TV - Standard Definition - XviD"); - AddCategoryMapping(63, TorznabCatType.TVUHD, "TV Season Packs - 4K"); - AddCategoryMapping(4, TorznabCatType.TVHD, "TV Season Packs - HD"); - AddCategoryMapping(6, TorznabCatType.TVSD, "TV Season Packs - SD"); - // Configure the sort selects var sortBySelect = new SingleSelectConfigurationItem( "Sort by", @@ -141,6 +75,77 @@ namespace Jackett.Common.Indexers configData.AddDynamic("orderrequestedfromsite", orderSelect); } + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep + }, + MovieSearchParams = new List + { + MovieSearchParam.Q + }, + MusicSearchParams = new List + { + MusicSearchParam.Q + }, + BookSearchParams = new List + { + BookSearchParam.Q + } + }; + + caps.Categories.AddCategoryMapping(3, TorznabCatType.Other, "Nuked"); + caps.Categories.AddCategoryMapping(32, TorznabCatType.TVAnime, "Anime"); + caps.Categories.AddCategoryMapping(23, TorznabCatType.PC, "Apps"); + caps.Categories.AddCategoryMapping(35, TorznabCatType.AudioAudiobook, "Audiobooks"); + caps.Categories.AddCategoryMapping(31, TorznabCatType.TV, "Childrens/Cartoons"); + caps.Categories.AddCategoryMapping(54, TorznabCatType.TVDocumentary, "Documentary - HD"); + caps.Categories.AddCategoryMapping(53, TorznabCatType.TVDocumentary, "Documentary - SD"); + caps.Categories.AddCategoryMapping(22, TorznabCatType.BooksEBook, "Ebooks"); + caps.Categories.AddCategoryMapping(41, TorznabCatType.BooksComics, "Comics"); + caps.Categories.AddCategoryMapping(46, TorznabCatType.BooksMags, "Magazines"); + caps.Categories.AddCategoryMapping(25, TorznabCatType.PCGames, "Games"); + caps.Categories.AddCategoryMapping(61, TorznabCatType.ConsoleNDS, "Games Nintendo"); + caps.Categories.AddCategoryMapping(26, TorznabCatType.PCGames, "Games-PC ISO"); + caps.Categories.AddCategoryMapping(28, TorznabCatType.ConsolePS4, "Games-PSx"); + caps.Categories.AddCategoryMapping(29, TorznabCatType.ConsoleXBox, "Games Xbox"); + caps.Categories.AddCategoryMapping(49, TorznabCatType.PCMobileOther, "Mobile"); + caps.Categories.AddCategoryMapping(51, TorznabCatType.PCMobileAndroid, "Android"); + caps.Categories.AddCategoryMapping(50, TorznabCatType.PCMobileiOS, "IOS"); + caps.Categories.AddCategoryMapping(52, TorznabCatType.PC0day, "Windows"); + caps.Categories.AddCategoryMapping(59, TorznabCatType.MoviesUHD, "Movies-4k"); + caps.Categories.AddCategoryMapping(60, TorznabCatType.MoviesForeign, "Non-English 4k Movies"); + caps.Categories.AddCategoryMapping(16, TorznabCatType.MoviesHD, "Movies HD"); + caps.Categories.AddCategoryMapping(18, TorznabCatType.MoviesForeign, "Movies HD Non-English"); + caps.Categories.AddCategoryMapping(17, TorznabCatType.MoviesSD, "TS/CAM/PPV"); + caps.Categories.AddCategoryMapping(34, TorznabCatType.MoviesForeign, "Movies Low Def Non-English"); + caps.Categories.AddCategoryMapping(62, TorznabCatType.Movies, "Movies-Packs"); + caps.Categories.AddCategoryMapping(14, TorznabCatType.MoviesSD, "Movies-SD"); + caps.Categories.AddCategoryMapping(33, TorznabCatType.MoviesForeign, "Movies SD Non-English"); + caps.Categories.AddCategoryMapping(30, TorznabCatType.AudioOther, "Music"); + caps.Categories.AddCategoryMapping(37, TorznabCatType.AudioLossless, "FLAC"); + caps.Categories.AddCategoryMapping(36, TorznabCatType.AudioMP3, "MP3"); + caps.Categories.AddCategoryMapping(39, TorznabCatType.AudioOther, "Music Other"); + caps.Categories.AddCategoryMapping(38, TorznabCatType.AudioVideo, "Music Video"); + caps.Categories.AddCategoryMapping(45, TorznabCatType.Other, "Other"); + caps.Categories.AddCategoryMapping(7, TorznabCatType.TVSport, "Sports Tv"); + caps.Categories.AddCategoryMapping(44, TorznabCatType.TVSport, "Sports Fitness-Instructional"); + caps.Categories.AddCategoryMapping(58, TorznabCatType.TVSport, "Olympics"); + caps.Categories.AddCategoryMapping(47, TorznabCatType.TVSD, "TV - 480p"); + caps.Categories.AddCategoryMapping(64, TorznabCatType.TVUHD, "TV - 4K"); + caps.Categories.AddCategoryMapping(8, TorznabCatType.TVHD, "TV - High Definition"); + caps.Categories.AddCategoryMapping(48, TorznabCatType.TVSD, "TV - Standard Definition - x264"); + caps.Categories.AddCategoryMapping(9, TorznabCatType.TVSD, "TV - Standard Definition - XviD"); + caps.Categories.AddCategoryMapping(63, TorznabCatType.TVUHD, "TV Season Packs - 4K"); + caps.Categories.AddCategoryMapping(4, TorznabCatType.TVHD, "TV Season Packs - HD"); + caps.Categories.AddCategoryMapping(6, TorznabCatType.TVSD, "TV Season Packs - SD"); + + return caps; + } + private string GetSortBy => ((SingleSelectConfigurationItem)configData.GetDynamic("sortrequestedfromsite")).Value; private string GetOrder => ((SingleSelectConfigurationItem)configData.GetDynamic("orderrequestedfromsite")).Value; diff --git a/src/Jackett.Common/Indexers/IndexerBase.cs b/src/Jackett.Common/Indexers/IndexerBase.cs index 0bb85a2c3..efdcce693 100644 --- a/src/Jackett.Common/Indexers/IndexerBase.cs +++ b/src/Jackett.Common/Indexers/IndexerBase.cs @@ -1,5 +1,4 @@ using System.Text; -using Jackett.Common.Models; using Jackett.Common.Models.IndexerConfig; using Jackett.Common.Services.Interfaces; using Jackett.Common.Utils.Clients; @@ -17,8 +16,8 @@ namespace Jackett.Common.Indexers public abstract override string Language { get; } public abstract override string Type { get; } - protected IndexerBase(IIndexerConfigurationService configService, WebClient client, Logger logger, ConfigurationData configData, IProtectionService p, ICacheService cacheService, TorznabCapabilities caps, string downloadBase = null) - : base(configService, client, logger, configData, p, cacheService, caps, downloadBase) + protected IndexerBase(IIndexerConfigurationService configService, WebClient client, Logger logger, ConfigurationData configData, IProtectionService p, ICacheService cacheService, string downloadBase = null) + : base(configService, client, logger, configData, p, cacheService, downloadBase) { } diff --git a/src/Jackett.Common/Indexers/Libble.cs b/src/Jackett.Common/Indexers/Libble.cs index 38977bb2b..94236f7c0 100644 --- a/src/Jackett.Common/Indexers/Libble.cs +++ b/src/Jackett.Common/Indexers/Libble.cs @@ -31,6 +31,8 @@ namespace Jackett.Common.Indexers public override bool SupportsPagination => true; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string LandingUrl => SiteLink + "login.php"; private string LoginUrl => SiteLink + "login.php"; private string SearchUrl => SiteLink + "torrents.php"; @@ -67,24 +69,30 @@ namespace Jackett.Common.Indexers public Libble(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - MusicSearchParams = new List - { - MusicSearchParam.Q, MusicSearchParam.Album, MusicSearchParam.Artist, MusicSearchParam.Label, MusicSearchParam.Year, MusicSearchParam.Genre - } - }, - configService: configService, + : base(configService: configService, client: wc, logger: l, p: ps, cacheService: cs, configData: new ConfigurationDataBasicLoginWith2FA()) { - AddCategoryMapping(1, TorznabCatType.Audio, "Music"); - AddCategoryMapping(2, TorznabCatType.Audio, "Libble Mixtapes"); - AddCategoryMapping(7, TorznabCatType.AudioVideo, "Music Videos"); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + MusicSearchParams = new List + { + MusicSearchParam.Q, MusicSearchParam.Album, MusicSearchParam.Artist, MusicSearchParam.Label, MusicSearchParam.Year, MusicSearchParam.Genre + } + }; + + caps.Categories.AddCategoryMapping(1, TorznabCatType.Audio, "Music"); + caps.Categories.AddCategoryMapping(2, TorznabCatType.Audio, "Libble Mixtapes"); + caps.Categories.AddCategoryMapping(7, TorznabCatType.AudioVideo, "Music Videos"); + + return caps; } public override async Task GetConfigurationForSetup() diff --git a/src/Jackett.Common/Indexers/LostFilm.cs b/src/Jackett.Common/Indexers/LostFilm.cs index ca4432cbe..36b9a01f6 100644 --- a/src/Jackett.Common/Indexers/LostFilm.cs +++ b/src/Jackett.Common/Indexers/LostFilm.cs @@ -45,6 +45,8 @@ namespace Jackett.Common.Indexers public override string Language => "ru-RU"; public override string Type => "semi-private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private static readonly Regex parsePlayEpisodeRegex = new Regex("PlayEpisode\\('(?\\d{1,3})(?\\d{3})(?\\d{3})'\\)", RegexOptions.Compiled | RegexOptions.IgnoreCase); private static readonly Regex parseReleaseDetailsRegex = new Regex("Видео:\\ (?.+).\\ Размер:\\ (?.+).\\ Перевод", RegexOptions.Compiled | RegexOptions.IgnoreCase); @@ -114,19 +116,7 @@ namespace Jackett.Common.Indexers public LostFilm(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep - }, - MovieSearchParams = new List - { - MovieSearchParam.Q - } - }, - configService: configService, + : base(configService: configService, client: wc, logger: l, p: ps, @@ -135,9 +125,26 @@ namespace Jackett.Common.Indexers { webclient.AddTrustedCertificate(new Uri(SiteLink).Host, "98D43B6E740B42C02A9BD1A9D1A813E4350BE332"); // for *.win expired 26/Mar/22 webclient.AddTrustedCertificate(new Uri(SiteLink).Host, "34287FB53A58EC6AE590E7DD7E03C70C0263CADC"); // for *.tw expired 01/Apr/21 + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep + }, + MovieSearchParams = new List + { + MovieSearchParam.Q + } + }; // TODO: review if there is only this category (movie search is enabled) - AddCategoryMapping(1, TorznabCatType.TV); + caps.Categories.AddCategoryMapping(1, TorznabCatType.TV); + + return caps; } public override async Task GetConfigurationForSetup() diff --git a/src/Jackett.Common/Indexers/Magnetico.cs b/src/Jackett.Common/Indexers/Magnetico.cs index a4d9ce447..13f5f9839 100644 --- a/src/Jackett.Common/Indexers/Magnetico.cs +++ b/src/Jackett.Common/Indexers/Magnetico.cs @@ -25,6 +25,8 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "semi-private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string SearchURl => SiteLink + "api/v0.1/torrents"; private string TorrentsUrl => SiteLink + "torrents"; @@ -32,27 +34,7 @@ namespace Jackett.Common.Indexers public Magnetico(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep - }, - MovieSearchParams = new List - { - MovieSearchParam.Q - }, - MusicSearchParams = new List - { - MusicSearchParam.Q - }, - BookSearchParams = new List - { - BookSearchParam.Q - } - }, - configService: configService, + : base(configService: configService, client: wc, logger: l, p: ps, @@ -79,10 +61,36 @@ namespace Jackett.Common.Indexers }) { Value = "false" }; configData.AddDynamic("order", order); - - AddCategoryMapping("1", TorznabCatType.Other); } + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep + }, + MovieSearchParams = new List + { + MovieSearchParam.Q + }, + MusicSearchParams = new List + { + MusicSearchParam.Q + }, + BookSearchParams = new List + { + BookSearchParam.Q + } + }; + + caps.Categories.AddCategoryMapping("1", TorznabCatType.Other); + + return caps; + } + + public override async Task ApplyConfiguration(JToken configJson) { LoadValuesFromJson(configJson); diff --git a/src/Jackett.Common/Indexers/MejorTorrent.cs b/src/Jackett.Common/Indexers/MejorTorrent.cs index 1595fbbb5..d65c59638 100644 --- a/src/Jackett.Common/Indexers/MejorTorrent.cs +++ b/src/Jackett.Common/Indexers/MejorTorrent.cs @@ -66,6 +66,8 @@ namespace Jackett.Common.Indexers public override string Language => "es-ES"; public override string Type => "public"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private static class MejorTorrentCatType { public static string Pelicula => "Película"; @@ -80,26 +82,8 @@ namespace Jackett.Common.Indexers private const int PagesToSearch = 3; - public MejorTorrent(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps, - ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep - }, - MovieSearchParams = new List - { - MovieSearchParam.Q - }, - MusicSearchParams = new List - { - MusicSearchParam.Q - }, - SupportsRawSearch = true - }, - configService: configService, + public MejorTorrent(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps, ICacheService cs) + : base(configService: configService, client: w, logger: l, p: ps, @@ -111,13 +95,35 @@ namespace Jackett.Common.Indexers // Uncomment to enable FlareSolverr in the future //configData.AddDynamic("flaresolverr", new DisplayInfoConfigurationItem("FlareSolverr", "This site may use Cloudflare DDoS Protection, therefore Jackett requires FlareSolverr to access it.")); + } - AddCategoryMapping(MejorTorrentCatType.Pelicula, TorznabCatType.Movies, "Pelicula"); - AddCategoryMapping(MejorTorrentCatType.Serie, TorznabCatType.TVSD, "Serie"); - AddCategoryMapping(MejorTorrentCatType.SerieHd, TorznabCatType.TVHD, "Serie HD"); - AddCategoryMapping(MejorTorrentCatType.Musica, TorznabCatType.Audio, "Musica"); + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep + }, + MovieSearchParams = new List + { + MovieSearchParam.Q + }, + MusicSearchParams = new List + { + MusicSearchParam.Q + }, + SupportsRawSearch = true + }; + + caps.Categories.AddCategoryMapping(MejorTorrentCatType.Pelicula, TorznabCatType.Movies, "Pelicula"); + caps.Categories.AddCategoryMapping(MejorTorrentCatType.Serie, TorznabCatType.TVSD, "Serie"); + caps.Categories.AddCategoryMapping(MejorTorrentCatType.SerieHd, TorznabCatType.TVHD, "Serie HD"); + caps.Categories.AddCategoryMapping(MejorTorrentCatType.Musica, TorznabCatType.Audio, "Musica"); // Other category is disabled because we have problems parsing documentaries - //AddCategoryMapping(MejorTorrentCatType.Otro, TorznabCatType.Other, "Otro"); + //caps.Categories.AddCategoryMapping(MejorTorrentCatType.Otro, TorznabCatType.Other, "Otro"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/Meta/BaseMetaIndexer.cs b/src/Jackett.Common/Indexers/Meta/BaseMetaIndexer.cs index 4ad62375e..8276117ab 100644 --- a/src/Jackett.Common/Indexers/Meta/BaseMetaIndexer.cs +++ b/src/Jackett.Common/Indexers/Meta/BaseMetaIndexer.cs @@ -20,8 +20,7 @@ namespace Jackett.Common.Indexers.Meta IResultFilterProvider resultFilterProvider, IIndexerConfigurationService configService, WebClient client, Logger logger, ConfigurationData configData, IProtectionService ps, ICacheService cs, Func filter) - : base(caps: new TorznabCapabilities(), - configService: configService, + : base(configService: configService, client: client, logger: logger, p: ps, diff --git a/src/Jackett.Common/Indexers/Meta/MetaIndexers.cs b/src/Jackett.Common/Indexers/Meta/MetaIndexers.cs index 3ba537f68..9080f3f39 100644 --- a/src/Jackett.Common/Indexers/Meta/MetaIndexers.cs +++ b/src/Jackett.Common/Indexers/Meta/MetaIndexers.cs @@ -18,8 +18,7 @@ namespace Jackett.Common.Indexers.Meta public AggregateIndexer(IFallbackStrategyProvider fallbackStrategyProvider, IResultFilterProvider resultFilterProvider, IIndexerConfigurationService configService, WebClient client, Logger logger, IProtectionService ps, ICacheService cs) - : base( - configService: configService, + : base(configService: configService, client: client, logger: logger, ps: ps, diff --git a/src/Jackett.Common/Indexers/MyAnonamouse.cs b/src/Jackett.Common/Indexers/MyAnonamouse.cs index 2bb824707..279edd7bf 100644 --- a/src/Jackett.Common/Indexers/MyAnonamouse.cs +++ b/src/Jackett.Common/Indexers/MyAnonamouse.cs @@ -4,7 +4,6 @@ using System.Collections.Specialized; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; -using System.Text; using System.Threading.Tasks; using Jackett.Common.Models; using Jackett.Common.Models.IndexerConfig.Bespoke; @@ -29,6 +28,8 @@ namespace Jackett.Common.Indexers public override bool SupportsPagination => true; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string SearchUrl => SiteLink + "tor/js/loadSearchJSONbasic.php"; private new ConfigurationDataMyAnonamouse configData => (ConfigurationDataMyAnonamouse)base.configData; @@ -36,13 +37,6 @@ namespace Jackett.Common.Indexers public MyAnonamouse(IIndexerConfigurationService configService, WebClient c, Logger l, IProtectionService ps, ICacheService cs) : base(configService: configService, - caps: new TorznabCapabilities - { - BookSearchParams = new List - { - BookSearchParam.Q - } - }, client: c, logger: l, p: ps, @@ -50,101 +44,114 @@ namespace Jackett.Common.Indexers configData: new ConfigurationDataMyAnonamouse()) { webclient.EmulateBrowser = false; + } - AddCategoryMapping("13", TorznabCatType.AudioAudiobook, "AudioBooks"); - AddCategoryMapping("14", TorznabCatType.BooksEBook, "E-Books"); - AddCategoryMapping("15", TorznabCatType.AudioAudiobook, "Musicology"); - AddCategoryMapping("16", TorznabCatType.AudioAudiobook, "Radio"); - AddCategoryMapping("39", TorznabCatType.AudioAudiobook, "Audiobooks - Action/Adventure"); - AddCategoryMapping("49", TorznabCatType.AudioAudiobook, "Audiobooks - Art"); - AddCategoryMapping("50", TorznabCatType.AudioAudiobook, "Audiobooks - Biographical"); - AddCategoryMapping("83", TorznabCatType.AudioAudiobook, "Audiobooks - Business"); - AddCategoryMapping("51", TorznabCatType.AudioAudiobook, "Audiobooks - Computer/Internet"); - AddCategoryMapping("97", TorznabCatType.AudioAudiobook, "Audiobooks - Crafts"); - AddCategoryMapping("40", TorznabCatType.AudioAudiobook, "Audiobooks - Crime/Thriller"); - AddCategoryMapping("41", TorznabCatType.AudioAudiobook, "Audiobooks - Fantasy"); - AddCategoryMapping("106", TorznabCatType.AudioAudiobook, "Audiobooks - Food"); - AddCategoryMapping("42", TorznabCatType.AudioAudiobook, "Audiobooks - General Fiction"); - AddCategoryMapping("52", TorznabCatType.AudioAudiobook, "Audiobooks - General Non-Fic"); - AddCategoryMapping("98", TorznabCatType.AudioAudiobook, "Audiobooks - Historical Fiction"); - AddCategoryMapping("54", TorznabCatType.AudioAudiobook, "Audiobooks - History"); - AddCategoryMapping("55", TorznabCatType.AudioAudiobook, "Audiobooks - Home/Garden"); - AddCategoryMapping("43", TorznabCatType.AudioAudiobook, "Audiobooks - Horror"); - AddCategoryMapping("99", TorznabCatType.AudioAudiobook, "Audiobooks - Humor"); - AddCategoryMapping("84", TorznabCatType.AudioAudiobook, "Audiobooks - Instructional"); - AddCategoryMapping("44", TorznabCatType.AudioAudiobook, "Audiobooks - Juvenile"); - AddCategoryMapping("56", TorznabCatType.AudioAudiobook, "Audiobooks - Language"); - AddCategoryMapping("45", TorznabCatType.AudioAudiobook, "Audiobooks - Literary Classics"); - AddCategoryMapping("57", TorznabCatType.AudioAudiobook, "Audiobooks - Math/Science/Tech"); - AddCategoryMapping("85", TorznabCatType.AudioAudiobook, "Audiobooks - Medical"); - AddCategoryMapping("87", TorznabCatType.AudioAudiobook, "Audiobooks - Mystery"); - AddCategoryMapping("119", TorznabCatType.AudioAudiobook, "Audiobooks - Nature"); - AddCategoryMapping("88", TorznabCatType.AudioAudiobook, "Audiobooks - Philosophy"); - AddCategoryMapping("58", TorznabCatType.AudioAudiobook, "Audiobooks - Pol/Soc/Relig"); - AddCategoryMapping("59", TorznabCatType.AudioAudiobook, "Audiobooks - Recreation"); - AddCategoryMapping("46", TorznabCatType.AudioAudiobook, "Audiobooks - Romance"); - AddCategoryMapping("47", TorznabCatType.AudioAudiobook, "Audiobooks - Science Fiction"); - AddCategoryMapping("53", TorznabCatType.AudioAudiobook, "Audiobooks - Self-Help"); - AddCategoryMapping("89", TorznabCatType.AudioAudiobook, "Audiobooks - Travel/Adventure"); - AddCategoryMapping("100", TorznabCatType.AudioAudiobook, "Audiobooks - True Crime"); - AddCategoryMapping("108", TorznabCatType.AudioAudiobook, "Audiobooks - Urban Fantasy"); - AddCategoryMapping("48", TorznabCatType.AudioAudiobook, "Audiobooks - Western"); - AddCategoryMapping("111", TorznabCatType.AudioAudiobook, "Audiobooks - Young Adult"); - AddCategoryMapping("60", TorznabCatType.BooksEBook, "Ebooks - Action/Adventure"); - AddCategoryMapping("71", TorznabCatType.BooksEBook, "Ebooks - Art"); - AddCategoryMapping("72", TorznabCatType.BooksEBook, "Ebooks - Biographical"); - AddCategoryMapping("90", TorznabCatType.BooksEBook, "Ebooks - Business"); - AddCategoryMapping("61", TorznabCatType.BooksComics, "Ebooks - Comics/Graphic novels"); - AddCategoryMapping("73", TorznabCatType.BooksEBook, "Ebooks - Computer/Internet"); - AddCategoryMapping("101", TorznabCatType.BooksEBook, "Ebooks - Crafts"); - AddCategoryMapping("62", TorznabCatType.BooksEBook, "Ebooks - Crime/Thriller"); - AddCategoryMapping("63", TorznabCatType.BooksEBook, "Ebooks - Fantasy"); - AddCategoryMapping("107", TorznabCatType.BooksEBook, "Ebooks - Food"); - AddCategoryMapping("64", TorznabCatType.BooksEBook, "Ebooks - General Fiction"); - AddCategoryMapping("74", TorznabCatType.BooksEBook, "Ebooks - General Non-Fiction"); - AddCategoryMapping("102", TorznabCatType.BooksEBook, "Ebooks - Historical Fiction"); - AddCategoryMapping("76", TorznabCatType.BooksEBook, "Ebooks - History"); - AddCategoryMapping("77", TorznabCatType.BooksEBook, "Ebooks - Home/Garden"); - AddCategoryMapping("65", TorznabCatType.BooksEBook, "Ebooks - Horror"); - AddCategoryMapping("103", TorznabCatType.BooksEBook, "Ebooks - Humor"); - AddCategoryMapping("115", TorznabCatType.BooksEBook, "Ebooks - Illusion/Magic"); - AddCategoryMapping("91", TorznabCatType.BooksEBook, "Ebooks - Instructional"); - AddCategoryMapping("66", TorznabCatType.BooksEBook, "Ebooks - Juvenile"); - AddCategoryMapping("78", TorznabCatType.BooksEBook, "Ebooks - Language"); - AddCategoryMapping("67", TorznabCatType.BooksEBook, "Ebooks - Literary Classics"); - AddCategoryMapping("79", TorznabCatType.BooksMags, "Ebooks - Magazines/Newspapers"); - AddCategoryMapping("80", TorznabCatType.BooksTechnical, "Ebooks - Math/Science/Tech"); - AddCategoryMapping("92", TorznabCatType.BooksEBook, "Ebooks - Medical"); - AddCategoryMapping("118", TorznabCatType.BooksEBook, "Ebooks - Mixed Collections"); - AddCategoryMapping("94", TorznabCatType.BooksEBook, "Ebooks - Mystery"); - AddCategoryMapping("120", TorznabCatType.BooksEBook, "Ebooks - Nature"); - AddCategoryMapping("95", TorznabCatType.BooksEBook, "Ebooks - Philosophy"); - AddCategoryMapping("81", TorznabCatType.BooksEBook, "Ebooks - Pol/Soc/Relig"); - AddCategoryMapping("82", TorznabCatType.BooksEBook, "Ebooks - Recreation"); - AddCategoryMapping("68", TorznabCatType.BooksEBook, "Ebooks - Romance"); - AddCategoryMapping("69", TorznabCatType.BooksEBook, "Ebooks - Science Fiction"); - AddCategoryMapping("75", TorznabCatType.BooksEBook, "Ebooks - Self-Help"); - AddCategoryMapping("96", TorznabCatType.BooksEBook, "Ebooks - Travel/Adventure"); - AddCategoryMapping("104", TorznabCatType.BooksEBook, "Ebooks - True Crime"); - AddCategoryMapping("109", TorznabCatType.BooksEBook, "Ebooks - Urban Fantasy"); - AddCategoryMapping("70", TorznabCatType.BooksEBook, "Ebooks - Western"); - AddCategoryMapping("112", TorznabCatType.BooksEBook, "Ebooks - Young Adult"); - AddCategoryMapping("19", TorznabCatType.AudioAudiobook, "Guitar/Bass Tabs"); - AddCategoryMapping("20", TorznabCatType.AudioAudiobook, "Individual Sheet"); - AddCategoryMapping("24", TorznabCatType.AudioAudiobook, "Individual Sheet MP3"); - AddCategoryMapping("126", TorznabCatType.AudioAudiobook, "Instructional Book with Video"); - AddCategoryMapping("22", TorznabCatType.AudioAudiobook, "Instructional Media - Music"); - AddCategoryMapping("113", TorznabCatType.AudioAudiobook, "Lick Library - LTP/Jam With"); - AddCategoryMapping("114", TorznabCatType.AudioAudiobook, "Lick Library - Techniques/QL"); - AddCategoryMapping("17", TorznabCatType.AudioAudiobook, "Music - Complete Editions"); - AddCategoryMapping("26", TorznabCatType.AudioAudiobook, "Music Book"); - AddCategoryMapping("27", TorznabCatType.AudioAudiobook, "Music Book MP3"); - AddCategoryMapping("30", TorznabCatType.AudioAudiobook, "Sheet Collection"); - AddCategoryMapping("31", TorznabCatType.AudioAudiobook, "Sheet Collection MP3"); - AddCategoryMapping("127", TorznabCatType.AudioAudiobook, "Radio - Comedy"); - AddCategoryMapping("130", TorznabCatType.AudioAudiobook, "Radio - Drama"); - AddCategoryMapping("128", TorznabCatType.AudioAudiobook, "Radio - Factual/Documentary"); - AddCategoryMapping("132", TorznabCatType.AudioAudiobook, "Radio - Reading"); + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + BookSearchParams = new List + { + BookSearchParam.Q + } + }; + + caps.Categories.AddCategoryMapping("13", TorznabCatType.AudioAudiobook, "AudioBooks"); + caps.Categories.AddCategoryMapping("14", TorznabCatType.BooksEBook, "E-Books"); + caps.Categories.AddCategoryMapping("15", TorznabCatType.AudioAudiobook, "Musicology"); + caps.Categories.AddCategoryMapping("16", TorznabCatType.AudioAudiobook, "Radio"); + caps.Categories.AddCategoryMapping("39", TorznabCatType.AudioAudiobook, "Audiobooks - Action/Adventure"); + caps.Categories.AddCategoryMapping("49", TorznabCatType.AudioAudiobook, "Audiobooks - Art"); + caps.Categories.AddCategoryMapping("50", TorznabCatType.AudioAudiobook, "Audiobooks - Biographical"); + caps.Categories.AddCategoryMapping("83", TorznabCatType.AudioAudiobook, "Audiobooks - Business"); + caps.Categories.AddCategoryMapping("51", TorznabCatType.AudioAudiobook, "Audiobooks - Computer/Internet"); + caps.Categories.AddCategoryMapping("97", TorznabCatType.AudioAudiobook, "Audiobooks - Crafts"); + caps.Categories.AddCategoryMapping("40", TorznabCatType.AudioAudiobook, "Audiobooks - Crime/Thriller"); + caps.Categories.AddCategoryMapping("41", TorznabCatType.AudioAudiobook, "Audiobooks - Fantasy"); + caps.Categories.AddCategoryMapping("106", TorznabCatType.AudioAudiobook, "Audiobooks - Food"); + caps.Categories.AddCategoryMapping("42", TorznabCatType.AudioAudiobook, "Audiobooks - General Fiction"); + caps.Categories.AddCategoryMapping("52", TorznabCatType.AudioAudiobook, "Audiobooks - General Non-Fic"); + caps.Categories.AddCategoryMapping("98", TorznabCatType.AudioAudiobook, "Audiobooks - Historical Fiction"); + caps.Categories.AddCategoryMapping("54", TorznabCatType.AudioAudiobook, "Audiobooks - History"); + caps.Categories.AddCategoryMapping("55", TorznabCatType.AudioAudiobook, "Audiobooks - Home/Garden"); + caps.Categories.AddCategoryMapping("43", TorznabCatType.AudioAudiobook, "Audiobooks - Horror"); + caps.Categories.AddCategoryMapping("99", TorznabCatType.AudioAudiobook, "Audiobooks - Humor"); + caps.Categories.AddCategoryMapping("84", TorznabCatType.AudioAudiobook, "Audiobooks - Instructional"); + caps.Categories.AddCategoryMapping("44", TorznabCatType.AudioAudiobook, "Audiobooks - Juvenile"); + caps.Categories.AddCategoryMapping("56", TorznabCatType.AudioAudiobook, "Audiobooks - Language"); + caps.Categories.AddCategoryMapping("45", TorznabCatType.AudioAudiobook, "Audiobooks - Literary Classics"); + caps.Categories.AddCategoryMapping("57", TorznabCatType.AudioAudiobook, "Audiobooks - Math/Science/Tech"); + caps.Categories.AddCategoryMapping("85", TorznabCatType.AudioAudiobook, "Audiobooks - Medical"); + caps.Categories.AddCategoryMapping("87", TorznabCatType.AudioAudiobook, "Audiobooks - Mystery"); + caps.Categories.AddCategoryMapping("119", TorznabCatType.AudioAudiobook, "Audiobooks - Nature"); + caps.Categories.AddCategoryMapping("88", TorznabCatType.AudioAudiobook, "Audiobooks - Philosophy"); + caps.Categories.AddCategoryMapping("58", TorznabCatType.AudioAudiobook, "Audiobooks - Pol/Soc/Relig"); + caps.Categories.AddCategoryMapping("59", TorznabCatType.AudioAudiobook, "Audiobooks - Recreation"); + caps.Categories.AddCategoryMapping("46", TorznabCatType.AudioAudiobook, "Audiobooks - Romance"); + caps.Categories.AddCategoryMapping("47", TorznabCatType.AudioAudiobook, "Audiobooks - Science Fiction"); + caps.Categories.AddCategoryMapping("53", TorznabCatType.AudioAudiobook, "Audiobooks - Self-Help"); + caps.Categories.AddCategoryMapping("89", TorznabCatType.AudioAudiobook, "Audiobooks - Travel/Adventure"); + caps.Categories.AddCategoryMapping("100", TorznabCatType.AudioAudiobook, "Audiobooks - True Crime"); + caps.Categories.AddCategoryMapping("108", TorznabCatType.AudioAudiobook, "Audiobooks - Urban Fantasy"); + caps.Categories.AddCategoryMapping("48", TorznabCatType.AudioAudiobook, "Audiobooks - Western"); + caps.Categories.AddCategoryMapping("111", TorznabCatType.AudioAudiobook, "Audiobooks - Young Adult"); + caps.Categories.AddCategoryMapping("60", TorznabCatType.BooksEBook, "Ebooks - Action/Adventure"); + caps.Categories.AddCategoryMapping("71", TorznabCatType.BooksEBook, "Ebooks - Art"); + caps.Categories.AddCategoryMapping("72", TorznabCatType.BooksEBook, "Ebooks - Biographical"); + caps.Categories.AddCategoryMapping("90", TorznabCatType.BooksEBook, "Ebooks - Business"); + caps.Categories.AddCategoryMapping("61", TorznabCatType.BooksComics, "Ebooks - Comics/Graphic novels"); + caps.Categories.AddCategoryMapping("73", TorznabCatType.BooksEBook, "Ebooks - Computer/Internet"); + caps.Categories.AddCategoryMapping("101", TorznabCatType.BooksEBook, "Ebooks - Crafts"); + caps.Categories.AddCategoryMapping("62", TorznabCatType.BooksEBook, "Ebooks - Crime/Thriller"); + caps.Categories.AddCategoryMapping("63", TorznabCatType.BooksEBook, "Ebooks - Fantasy"); + caps.Categories.AddCategoryMapping("107", TorznabCatType.BooksEBook, "Ebooks - Food"); + caps.Categories.AddCategoryMapping("64", TorznabCatType.BooksEBook, "Ebooks - General Fiction"); + caps.Categories.AddCategoryMapping("74", TorznabCatType.BooksEBook, "Ebooks - General Non-Fiction"); + caps.Categories.AddCategoryMapping("102", TorznabCatType.BooksEBook, "Ebooks - Historical Fiction"); + caps.Categories.AddCategoryMapping("76", TorznabCatType.BooksEBook, "Ebooks - History"); + caps.Categories.AddCategoryMapping("77", TorznabCatType.BooksEBook, "Ebooks - Home/Garden"); + caps.Categories.AddCategoryMapping("65", TorznabCatType.BooksEBook, "Ebooks - Horror"); + caps.Categories.AddCategoryMapping("103", TorznabCatType.BooksEBook, "Ebooks - Humor"); + caps.Categories.AddCategoryMapping("115", TorznabCatType.BooksEBook, "Ebooks - Illusion/Magic"); + caps.Categories.AddCategoryMapping("91", TorznabCatType.BooksEBook, "Ebooks - Instructional"); + caps.Categories.AddCategoryMapping("66", TorznabCatType.BooksEBook, "Ebooks - Juvenile"); + caps.Categories.AddCategoryMapping("78", TorznabCatType.BooksEBook, "Ebooks - Language"); + caps.Categories.AddCategoryMapping("67", TorznabCatType.BooksEBook, "Ebooks - Literary Classics"); + caps.Categories.AddCategoryMapping("79", TorznabCatType.BooksMags, "Ebooks - Magazines/Newspapers"); + caps.Categories.AddCategoryMapping("80", TorznabCatType.BooksTechnical, "Ebooks - Math/Science/Tech"); + caps.Categories.AddCategoryMapping("92", TorznabCatType.BooksEBook, "Ebooks - Medical"); + caps.Categories.AddCategoryMapping("118", TorznabCatType.BooksEBook, "Ebooks - Mixed Collections"); + caps.Categories.AddCategoryMapping("94", TorznabCatType.BooksEBook, "Ebooks - Mystery"); + caps.Categories.AddCategoryMapping("120", TorznabCatType.BooksEBook, "Ebooks - Nature"); + caps.Categories.AddCategoryMapping("95", TorznabCatType.BooksEBook, "Ebooks - Philosophy"); + caps.Categories.AddCategoryMapping("81", TorznabCatType.BooksEBook, "Ebooks - Pol/Soc/Relig"); + caps.Categories.AddCategoryMapping("82", TorznabCatType.BooksEBook, "Ebooks - Recreation"); + caps.Categories.AddCategoryMapping("68", TorznabCatType.BooksEBook, "Ebooks - Romance"); + caps.Categories.AddCategoryMapping("69", TorznabCatType.BooksEBook, "Ebooks - Science Fiction"); + caps.Categories.AddCategoryMapping("75", TorznabCatType.BooksEBook, "Ebooks - Self-Help"); + caps.Categories.AddCategoryMapping("96", TorznabCatType.BooksEBook, "Ebooks - Travel/Adventure"); + caps.Categories.AddCategoryMapping("104", TorznabCatType.BooksEBook, "Ebooks - True Crime"); + caps.Categories.AddCategoryMapping("109", TorznabCatType.BooksEBook, "Ebooks - Urban Fantasy"); + caps.Categories.AddCategoryMapping("70", TorznabCatType.BooksEBook, "Ebooks - Western"); + caps.Categories.AddCategoryMapping("112", TorznabCatType.BooksEBook, "Ebooks - Young Adult"); + caps.Categories.AddCategoryMapping("19", TorznabCatType.AudioAudiobook, "Guitar/Bass Tabs"); + caps.Categories.AddCategoryMapping("20", TorznabCatType.AudioAudiobook, "Individual Sheet"); + caps.Categories.AddCategoryMapping("24", TorznabCatType.AudioAudiobook, "Individual Sheet MP3"); + caps.Categories.AddCategoryMapping("126", TorznabCatType.AudioAudiobook, "Instructional Book with Video"); + caps.Categories.AddCategoryMapping("22", TorznabCatType.AudioAudiobook, "Instructional Media - Music"); + caps.Categories.AddCategoryMapping("113", TorznabCatType.AudioAudiobook, "Lick Library - LTP/Jam With"); + caps.Categories.AddCategoryMapping("114", TorznabCatType.AudioAudiobook, "Lick Library - Techniques/QL"); + caps.Categories.AddCategoryMapping("17", TorznabCatType.AudioAudiobook, "Music - Complete Editions"); + caps.Categories.AddCategoryMapping("26", TorznabCatType.AudioAudiobook, "Music Book"); + caps.Categories.AddCategoryMapping("27", TorznabCatType.AudioAudiobook, "Music Book MP3"); + caps.Categories.AddCategoryMapping("30", TorznabCatType.AudioAudiobook, "Sheet Collection"); + caps.Categories.AddCategoryMapping("31", TorznabCatType.AudioAudiobook, "Sheet Collection MP3"); + caps.Categories.AddCategoryMapping("127", TorznabCatType.AudioAudiobook, "Radio - Comedy"); + caps.Categories.AddCategoryMapping("130", TorznabCatType.AudioAudiobook, "Radio - Drama"); + caps.Categories.AddCategoryMapping("128", TorznabCatType.AudioAudiobook, "Radio - Factual/Documentary"); + caps.Categories.AddCategoryMapping("132", TorznabCatType.AudioAudiobook, "Radio - Reading"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/NCore.cs b/src/Jackett.Common/Indexers/NCore.cs index 91f891f97..20e5718ef 100644 --- a/src/Jackett.Common/Indexers/NCore.cs +++ b/src/Jackett.Common/Indexers/NCore.cs @@ -33,6 +33,8 @@ namespace Jackett.Common.Indexers public override string Language => "hu-HU"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string LoginUrl => SiteLink + "login.php"; private string SearchUrl => SiteLink + "torrents.php"; @@ -54,64 +56,70 @@ namespace Jackett.Common.Indexers public NCore(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId - }, - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId - }, - MusicSearchParams = new List - { - MusicSearchParam.Q - }, - BookSearchParams = new List - { - BookSearchParam.Q - } - }, - configService: configService, - client: wc, - logger: l, - p: ps, - cacheService: cs, - configData: new ConfigurationDataNCore()) + : base(configService: configService, + client: wc, + logger: l, + p: ps, + cacheService: cs, + configData: new ConfigurationDataNCore()) { - AddCategoryMapping("xvid_hun", TorznabCatType.MoviesSD, "Film SD/HU"); - AddCategoryMapping("xvid", TorznabCatType.MoviesSD, "Film SD/EN"); - AddCategoryMapping("dvd_hun", TorznabCatType.MoviesDVD, "Film DVDR/HU"); - AddCategoryMapping("dvd", TorznabCatType.MoviesDVD, "Film DVDR/EN"); - AddCategoryMapping("dvd9_hun", TorznabCatType.MoviesDVD, "Film DVD9/HU"); - AddCategoryMapping("dvd9", TorznabCatType.MoviesDVD, "Film DVD9/EN"); - AddCategoryMapping("hd_hun", TorznabCatType.MoviesHD, "Film HD/HU"); - AddCategoryMapping("hd", TorznabCatType.MoviesHD, "Film HD/EN"); - AddCategoryMapping("xvidser_hun", TorznabCatType.TVSD, "Sorozat SD/HU"); - AddCategoryMapping("xvidser", TorznabCatType.TVSD, "Sorozat SD/EN"); - AddCategoryMapping("dvdser_hun", TorznabCatType.TVSD, "Sorozat DVDR/HU"); - AddCategoryMapping("dvdser", TorznabCatType.TVSD, "Sorozat DVDR/EN"); - AddCategoryMapping("hdser_hun", TorznabCatType.TVHD, "Sorozat HD/HU"); - AddCategoryMapping("hdser", TorznabCatType.TVHD, "Sorozat HD/EN"); - AddCategoryMapping("mp3_hun", TorznabCatType.AudioMP3, "Zene MP3/HU"); - AddCategoryMapping("mp3", TorznabCatType.AudioMP3, "Zene MP3/EN"); - AddCategoryMapping("lossless_hun", TorznabCatType.AudioLossless, "Zene Lossless/HU"); - AddCategoryMapping("lossless", TorznabCatType.AudioLossless, "Zene Lossless/EN"); - AddCategoryMapping("clip", TorznabCatType.AudioVideo, "Zene Klip"); - AddCategoryMapping("xxx_xvid", TorznabCatType.XXXXviD, "XXX SD"); - AddCategoryMapping("xxx_dvd", TorznabCatType.XXXDVD, "XXX DVDR"); - AddCategoryMapping("xxx_imageset", TorznabCatType.XXXImageSet, "XXX Imageset"); - AddCategoryMapping("xxx_hd", TorznabCatType.XXX, "XXX HD"); - AddCategoryMapping("game_iso", TorznabCatType.PCGames, "Játék PC/ISO"); - AddCategoryMapping("game_rip", TorznabCatType.PCGames, "Játék PC/RIP"); - AddCategoryMapping("console", TorznabCatType.Console, "Játék Konzol"); - AddCategoryMapping("iso", TorznabCatType.PCISO, "Program Prog/ISO"); - AddCategoryMapping("misc", TorznabCatType.PC0day, "Program Prog/RIP"); - AddCategoryMapping("mobil", TorznabCatType.PCMobileOther, "Program Prog/Mobil"); - AddCategoryMapping("ebook_hun", TorznabCatType.Books, "Könyv eBook/HU"); - AddCategoryMapping("ebook", TorznabCatType.Books, "Könyv eBook/EN"); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId + }, + MusicSearchParams = new List + { + MusicSearchParam.Q + }, + BookSearchParams = new List + { + BookSearchParam.Q + } + }; + + caps.Categories.AddCategoryMapping("xvid_hun", TorznabCatType.MoviesSD, "Film SD/HU"); + caps.Categories.AddCategoryMapping("xvid", TorznabCatType.MoviesSD, "Film SD/EN"); + caps.Categories.AddCategoryMapping("dvd_hun", TorznabCatType.MoviesDVD, "Film DVDR/HU"); + caps.Categories.AddCategoryMapping("dvd", TorznabCatType.MoviesDVD, "Film DVDR/EN"); + caps.Categories.AddCategoryMapping("dvd9_hun", TorznabCatType.MoviesDVD, "Film DVD9/HU"); + caps.Categories.AddCategoryMapping("dvd9", TorznabCatType.MoviesDVD, "Film DVD9/EN"); + caps.Categories.AddCategoryMapping("hd_hun", TorznabCatType.MoviesHD, "Film HD/HU"); + caps.Categories.AddCategoryMapping("hd", TorznabCatType.MoviesHD, "Film HD/EN"); + caps.Categories.AddCategoryMapping("xvidser_hun", TorznabCatType.TVSD, "Sorozat SD/HU"); + caps.Categories.AddCategoryMapping("xvidser", TorznabCatType.TVSD, "Sorozat SD/EN"); + caps.Categories.AddCategoryMapping("dvdser_hun", TorznabCatType.TVSD, "Sorozat DVDR/HU"); + caps.Categories.AddCategoryMapping("dvdser", TorznabCatType.TVSD, "Sorozat DVDR/EN"); + caps.Categories.AddCategoryMapping("hdser_hun", TorznabCatType.TVHD, "Sorozat HD/HU"); + caps.Categories.AddCategoryMapping("hdser", TorznabCatType.TVHD, "Sorozat HD/EN"); + caps.Categories.AddCategoryMapping("mp3_hun", TorznabCatType.AudioMP3, "Zene MP3/HU"); + caps.Categories.AddCategoryMapping("mp3", TorznabCatType.AudioMP3, "Zene MP3/EN"); + caps.Categories.AddCategoryMapping("lossless_hun", TorznabCatType.AudioLossless, "Zene Lossless/HU"); + caps.Categories.AddCategoryMapping("lossless", TorznabCatType.AudioLossless, "Zene Lossless/EN"); + caps.Categories.AddCategoryMapping("clip", TorznabCatType.AudioVideo, "Zene Klip"); + caps.Categories.AddCategoryMapping("xxx_xvid", TorznabCatType.XXXXviD, "XXX SD"); + caps.Categories.AddCategoryMapping("xxx_dvd", TorznabCatType.XXXDVD, "XXX DVDR"); + caps.Categories.AddCategoryMapping("xxx_imageset", TorznabCatType.XXXImageSet, "XXX Imageset"); + caps.Categories.AddCategoryMapping("xxx_hd", TorznabCatType.XXX, "XXX HD"); + caps.Categories.AddCategoryMapping("game_iso", TorznabCatType.PCGames, "Játék PC/ISO"); + caps.Categories.AddCategoryMapping("game_rip", TorznabCatType.PCGames, "Játék PC/RIP"); + caps.Categories.AddCategoryMapping("console", TorznabCatType.Console, "Játék Konzol"); + caps.Categories.AddCategoryMapping("iso", TorznabCatType.PCISO, "Program Prog/ISO"); + caps.Categories.AddCategoryMapping("misc", TorznabCatType.PC0day, "Program Prog/RIP"); + caps.Categories.AddCategoryMapping("mobil", TorznabCatType.PCMobileOther, "Program Prog/Mobil"); + caps.Categories.AddCategoryMapping("ebook_hun", TorznabCatType.Books, "Könyv eBook/HU"); + caps.Categories.AddCategoryMapping("ebook", TorznabCatType.Books, "Könyv eBook/EN"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/NebulanceAPI.cs b/src/Jackett.Common/Indexers/NebulanceAPI.cs index d1cbe0317..ddb18e0db 100644 --- a/src/Jackett.Common/Indexers/NebulanceAPI.cs +++ b/src/Jackett.Common/Indexers/NebulanceAPI.cs @@ -28,6 +28,8 @@ namespace Jackett.Common.Indexers public override bool SupportsPagination => true; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + // Docs at https://nebulance.io/articles.php?topic=api_key protected virtual string APIUrl => SiteLink + "api.php"; protected virtual int KeyLength => 32; @@ -41,39 +43,44 @@ namespace Jackett.Common.Indexers public NebulanceAPI(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - LimitsDefault = 100, - LimitsMax = 1000, - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.Genre, TvSearchParam.TvmazeId - }, - SupportsRawSearch = true - }, - configService: configService, + : base(configService: configService, client: wc, logger: l, p: ps, cacheService: cs, configData: new ConfigurationDataAPIKey()) { - AddCategoryMapping("tv", TorznabCatType.TV, "tv"); - AddCategoryMapping("sd", TorznabCatType.TVSD, "sd"); - AddCategoryMapping("hd", TorznabCatType.TVHD, "hd"); - AddCategoryMapping("uhd", TorznabCatType.TVUHD, "uhd"); - AddCategoryMapping("4k", TorznabCatType.TVUHD, "4k"); - AddCategoryMapping("480p", TorznabCatType.TVSD, "480p"); - AddCategoryMapping("720p", TorznabCatType.TVHD, "720p"); - AddCategoryMapping("1080p", TorznabCatType.TVHD, "1080p"); - AddCategoryMapping("1080i", TorznabCatType.TVHD, "1080i"); - AddCategoryMapping("2160p", TorznabCatType.TVUHD, "2160p"); - configData.AddDynamic("keyInfo", new DisplayInfoConfigurationItem(String.Empty, "Generate a new key by accessing your account profile settings at Nebulance, scroll down to the API Keys section, tick the New Key, list and download checkboxes and save.")); } + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + LimitsDefault = 100, + LimitsMax = 1000, + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.Genre, TvSearchParam.TvmazeId + }, + SupportsRawSearch = true + }; + + caps.Categories.AddCategoryMapping("tv", TorznabCatType.TV, "tv"); + caps.Categories.AddCategoryMapping("sd", TorznabCatType.TVSD, "sd"); + caps.Categories.AddCategoryMapping("hd", TorznabCatType.TVHD, "hd"); + caps.Categories.AddCategoryMapping("uhd", TorznabCatType.TVUHD, "uhd"); + caps.Categories.AddCategoryMapping("4k", TorznabCatType.TVUHD, "4k"); + caps.Categories.AddCategoryMapping("480p", TorznabCatType.TVSD, "480p"); + caps.Categories.AddCategoryMapping("720p", TorznabCatType.TVHD, "720p"); + caps.Categories.AddCategoryMapping("1080p", TorznabCatType.TVHD, "1080p"); + caps.Categories.AddCategoryMapping("1080i", TorznabCatType.TVHD, "1080i"); + caps.Categories.AddCategoryMapping("2160p", TorznabCatType.TVUHD, "2160p"); + + return caps; + } + public override async Task ApplyConfiguration(JToken configJson) { LoadValuesFromJson(configJson); diff --git a/src/Jackett.Common/Indexers/NorBits.cs b/src/Jackett.Common/Indexers/NorBits.cs index b049045dc..fa0bb18a8 100644 --- a/src/Jackett.Common/Indexers/NorBits.cs +++ b/src/Jackett.Common/Indexers/NorBits.cs @@ -32,6 +32,8 @@ namespace Jackett.Common.Indexers public override string Language => "nb-NO"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string LoginUrl => SiteLink + "login.php"; private string LoginCheckUrl => SiteLink + "takelogin.php"; private string SearchUrl => SiteLink + "browse.php"; @@ -40,54 +42,60 @@ namespace Jackett.Common.Indexers public NorBits(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep - }, - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId - }, - MusicSearchParams = new List - { - MusicSearchParam.Q - }, - BookSearchParams = new List - { - BookSearchParam.Q - } - }, - configService: configService, + : base(configService: configService, client: w, logger: l, p: ps, cacheService: cs, configData: new ConfigurationDataNorbits()) { - AddCategoryMapping("main_cat[]=1&sub2_cat[]=49", TorznabCatType.MoviesUHD, "Filmer - UHD-2160p"); - AddCategoryMapping("main_cat[]=1&sub2_cat[]=19", TorznabCatType.MoviesHD, "Filmer - HD-1080p/i"); - AddCategoryMapping("main_cat[]=1&sub2_cat[]=20", TorznabCatType.MoviesHD, "Filmer - HD-720p"); - AddCategoryMapping("main_cat[]=1&sub2_cat[]=22", TorznabCatType.MoviesSD, "Filmer - SD"); - AddCategoryMapping("main_cat[]=2&sub2_cat[]=49", TorznabCatType.TVUHD, "TV - UHD-2160p"); - AddCategoryMapping("main_cat[]=2&sub2_cat[]=19", TorznabCatType.TVHD, "TV - HD-1080p/i"); - AddCategoryMapping("main_cat[]=2&sub2_cat[]=20", TorznabCatType.TVHD, "TV - HD-720p"); - AddCategoryMapping("main_cat[]=2&sub2_cat[]=22", TorznabCatType.TVSD, "TV - SD"); - AddCategoryMapping("main_cat[]=3", TorznabCatType.PC, "Programmer"); - AddCategoryMapping("main_cat[]=4", TorznabCatType.Console, "Spill"); - AddCategoryMapping("main_cat[]=5&sub2_cat[]=42", TorznabCatType.AudioMP3, "Musikk - 192"); - AddCategoryMapping("main_cat[]=5&sub2_cat[]=43", TorznabCatType.AudioMP3, "Musikk - 256"); - AddCategoryMapping("main_cat[]=5&sub2_cat[]=44", TorznabCatType.AudioMP3, "Musikk - 320"); - AddCategoryMapping("main_cat[]=5&sub2_cat[]=45", TorznabCatType.AudioMP3, "Musikk - VBR"); - AddCategoryMapping("main_cat[]=5&sub2_cat[]=46", TorznabCatType.AudioLossless, "Musikk - Lossless"); - AddCategoryMapping("main_cat[]=6", TorznabCatType.Books, "Tidsskrift"); - AddCategoryMapping("main_cat[]=7", TorznabCatType.AudioAudiobook, "Lydbøker"); - AddCategoryMapping("main_cat[]=8&sub2_cat[]=19", TorznabCatType.AudioVideo, "Musikkvideoer - HD-1080p/i"); - AddCategoryMapping("main_cat[]=8&sub2_cat[]=20", TorznabCatType.AudioVideo, "Musikkvideoer - HD-720p"); - AddCategoryMapping("main_cat[]=8&sub2_cat[]=22", TorznabCatType.AudioVideo, "Musikkvideoer - SD"); - AddCategoryMapping("main_cat[]=40", TorznabCatType.AudioOther, "Podcasts"); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId + }, + MusicSearchParams = new List + { + MusicSearchParam.Q + }, + BookSearchParams = new List + { + BookSearchParam.Q + } + }; + + caps.Categories.AddCategoryMapping("main_cat[]=1&sub2_cat[]=49", TorznabCatType.MoviesUHD, "Filmer - UHD-2160p"); + caps.Categories.AddCategoryMapping("main_cat[]=1&sub2_cat[]=19", TorznabCatType.MoviesHD, "Filmer - HD-1080p/i"); + caps.Categories.AddCategoryMapping("main_cat[]=1&sub2_cat[]=20", TorznabCatType.MoviesHD, "Filmer - HD-720p"); + caps.Categories.AddCategoryMapping("main_cat[]=1&sub2_cat[]=22", TorznabCatType.MoviesSD, "Filmer - SD"); + caps.Categories.AddCategoryMapping("main_cat[]=2&sub2_cat[]=49", TorznabCatType.TVUHD, "TV - UHD-2160p"); + caps.Categories.AddCategoryMapping("main_cat[]=2&sub2_cat[]=19", TorznabCatType.TVHD, "TV - HD-1080p/i"); + caps.Categories.AddCategoryMapping("main_cat[]=2&sub2_cat[]=20", TorznabCatType.TVHD, "TV - HD-720p"); + caps.Categories.AddCategoryMapping("main_cat[]=2&sub2_cat[]=22", TorznabCatType.TVSD, "TV - SD"); + caps.Categories.AddCategoryMapping("main_cat[]=3", TorznabCatType.PC, "Programmer"); + caps.Categories.AddCategoryMapping("main_cat[]=4", TorznabCatType.Console, "Spill"); + caps.Categories.AddCategoryMapping("main_cat[]=5&sub2_cat[]=42", TorznabCatType.AudioMP3, "Musikk - 192"); + caps.Categories.AddCategoryMapping("main_cat[]=5&sub2_cat[]=43", TorznabCatType.AudioMP3, "Musikk - 256"); + caps.Categories.AddCategoryMapping("main_cat[]=5&sub2_cat[]=44", TorznabCatType.AudioMP3, "Musikk - 320"); + caps.Categories.AddCategoryMapping("main_cat[]=5&sub2_cat[]=45", TorznabCatType.AudioMP3, "Musikk - VBR"); + caps.Categories.AddCategoryMapping("main_cat[]=5&sub2_cat[]=46", TorznabCatType.AudioLossless, "Musikk - Lossless"); + caps.Categories.AddCategoryMapping("main_cat[]=6", TorznabCatType.Books, "Tidsskrift"); + caps.Categories.AddCategoryMapping("main_cat[]=7", TorznabCatType.AudioAudiobook, "Lydbøker"); + caps.Categories.AddCategoryMapping("main_cat[]=8&sub2_cat[]=19", TorznabCatType.AudioVideo, "Musikkvideoer - HD-1080p/i"); + caps.Categories.AddCategoryMapping("main_cat[]=8&sub2_cat[]=20", TorznabCatType.AudioVideo, "Musikkvideoer - HD-720p"); + caps.Categories.AddCategoryMapping("main_cat[]=8&sub2_cat[]=22", TorznabCatType.AudioVideo, "Musikkvideoer - SD"); + caps.Categories.AddCategoryMapping("main_cat[]=40", TorznabCatType.AudioOther, "Podcasts"); + + return caps; } /// diff --git a/src/Jackett.Common/Indexers/Orpheus.cs b/src/Jackett.Common/Indexers/Orpheus.cs index 4daa38d0a..0d0b51695 100644 --- a/src/Jackett.Common/Indexers/Orpheus.cs +++ b/src/Jackett.Common/Indexers/Orpheus.cs @@ -18,6 +18,8 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + // API Reference: https://github.com/OPSnet/Gazelle/wiki/JSON-API-Documentation protected override string DownloadUrl => SiteLink + "ajax.php?action=download" + (useTokens ? "&usetoken=1" : "") + "&id="; protected override string AuthorizationFormat => "token {0}"; @@ -25,23 +27,7 @@ namespace Jackett.Common.Indexers protected override string FlipOptionalTokenString(string requestLink) => requestLink.Replace("usetoken=1", ""); public Orpheus(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.Genre - }, - MusicSearchParams = new List - { - MusicSearchParam.Q, MusicSearchParam.Album, MusicSearchParam.Artist, MusicSearchParam.Label, MusicSearchParam.Year, MusicSearchParam.Genre - }, - BookSearchParams = new List - { - BookSearchParam.Q, BookSearchParam.Genre - } - }, - configService: configService, + : base(configService: configService, client: wc, logger: l, p: ps, @@ -52,13 +38,35 @@ namespace Jackett.Common.Indexers usePassKey: false, instructionMessageOptional: "
  1. Go to Orpheus's site and open your account settings.
  2. Under Access Settings click on 'Create a new token'
  3. Give it a name you like and click Generate.
  4. Copy the generated API Key and paste it in the above text field.
") { - 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.Audio, "Comedy"); - AddCategoryMapping(7, TorznabCatType.Books, "Comics"); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.Genre + }, + MusicSearchParams = new List + { + MusicSearchParam.Q, MusicSearchParam.Album, MusicSearchParam.Artist, MusicSearchParam.Label, MusicSearchParam.Year, MusicSearchParam.Genre + }, + BookSearchParams = new List + { + BookSearchParam.Q, BookSearchParam.Genre + } + }; + + caps.Categories.AddCategoryMapping(1, TorznabCatType.Audio, "Music"); + caps.Categories.AddCategoryMapping(2, TorznabCatType.PC, "Applications"); + caps.Categories.AddCategoryMapping(3, TorznabCatType.Books, "E-Books"); + caps.Categories.AddCategoryMapping(4, TorznabCatType.AudioAudiobook, "Audiobooks"); + caps.Categories.AddCategoryMapping(5, TorznabCatType.Movies, "E-Learning Videos"); + caps.Categories.AddCategoryMapping(6, TorznabCatType.Audio, "Comedy"); + caps.Categories.AddCategoryMapping(7, TorznabCatType.Books, "Comics"); + + return caps; } } } diff --git a/src/Jackett.Common/Indexers/PassThePopcorn.cs b/src/Jackett.Common/Indexers/PassThePopcorn.cs index 8cb0245cb..ec00fee2a 100644 --- a/src/Jackett.Common/Indexers/PassThePopcorn.cs +++ b/src/Jackett.Common/Indexers/PassThePopcorn.cs @@ -5,7 +5,6 @@ using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Net; -using System.Text; using System.Threading.Tasks; using Jackett.Common.Models; using Jackett.Common.Models.IndexerConfig; @@ -26,6 +25,8 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private static string SearchUrl => "https://passthepopcorn.me/torrents.php"; private string AuthKey { get; set; } private string PassKey { get; set; } @@ -39,19 +40,7 @@ namespace Jackett.Common.Indexers public PassThePopcorn(IIndexerConfigurationService configService, Utils.Clients.WebClient c, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep - }, - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId - } - }, - configService: configService, + : base(configService: configService, client: c, logger: l, p: ps, @@ -61,20 +50,37 @@ namespace Jackett.Common.Indexers
GoldenPopcorn
Scene
Checked
Free")) { webclient.requestDelay = 2; // 0.5 requests per second + } - AddCategoryMapping(1, TorznabCatType.Movies, "Feature Film"); - AddCategoryMapping(1, TorznabCatType.MoviesForeign); - AddCategoryMapping(1, TorznabCatType.MoviesOther); - AddCategoryMapping(1, TorznabCatType.MoviesSD); - AddCategoryMapping(1, TorznabCatType.MoviesHD); - AddCategoryMapping(1, TorznabCatType.Movies3D); - AddCategoryMapping(1, TorznabCatType.MoviesBluRay); - AddCategoryMapping(1, TorznabCatType.MoviesDVD); - AddCategoryMapping(1, TorznabCatType.MoviesWEBDL); - AddCategoryMapping(2, TorznabCatType.Movies, "Short Film"); - AddCategoryMapping(3, TorznabCatType.TV, "Miniseries"); - AddCategoryMapping(4, TorznabCatType.TV, "Stand-up Comedy"); - AddCategoryMapping(5, TorznabCatType.TV, "Live Performance"); + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId + } + }; + + caps.Categories.AddCategoryMapping(1, TorznabCatType.Movies, "Feature Film"); + caps.Categories.AddCategoryMapping(1, TorznabCatType.MoviesForeign); + caps.Categories.AddCategoryMapping(1, TorznabCatType.MoviesOther); + caps.Categories.AddCategoryMapping(1, TorznabCatType.MoviesSD); + caps.Categories.AddCategoryMapping(1, TorznabCatType.MoviesHD); + caps.Categories.AddCategoryMapping(1, TorznabCatType.Movies3D); + caps.Categories.AddCategoryMapping(1, TorznabCatType.MoviesBluRay); + caps.Categories.AddCategoryMapping(1, TorznabCatType.MoviesDVD); + caps.Categories.AddCategoryMapping(1, TorznabCatType.MoviesWEBDL); + caps.Categories.AddCategoryMapping(2, TorznabCatType.Movies, "Short Film"); + caps.Categories.AddCategoryMapping(3, TorznabCatType.TV, "Miniseries"); + caps.Categories.AddCategoryMapping(4, TorznabCatType.TV, "Stand-up Comedy"); + caps.Categories.AddCategoryMapping(5, TorznabCatType.TV, "Live Performance"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/PirateTheNet.cs b/src/Jackett.Common/Indexers/PirateTheNet.cs index 033d9fe89..281dd8c11 100644 --- a/src/Jackett.Common/Indexers/PirateTheNet.cs +++ b/src/Jackett.Common/Indexers/PirateTheNet.cs @@ -4,7 +4,6 @@ using System.Collections.Specialized; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; -using System.Text; using System.Threading.Tasks; using AngleSharp.Dom; using AngleSharp.Html.Parser; @@ -28,6 +27,8 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string SearchUrl => SiteLink + "torrentsutils.php"; private string LoginUrl => SiteLink + "takelogin.php"; private string CaptchaUrl => SiteLink + "simpleCaptcha.php?numImages=1"; @@ -40,37 +41,43 @@ namespace Jackett.Common.Indexers public PirateTheNet(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId - } - }, - configService: configService, + : base(configService: configService, client: w, logger: l, p: ps, cacheService: cs, configData: new ConfigurationDataBasicLoginWithRSSAndDisplay("Only the results from the first search result page are shown, adjust your profile settings to show the maximum.")) { - AddCategoryMapping("1080P", TorznabCatType.MoviesHD, "1080P"); - AddCategoryMapping("2160P", TorznabCatType.MoviesHD, "2160P"); - AddCategoryMapping("720P", TorznabCatType.MoviesHD, "720P"); - AddCategoryMapping("BDRip", TorznabCatType.MoviesSD, "BDRip"); - AddCategoryMapping("BluRay", TorznabCatType.MoviesBluRay, "BluRay"); - AddCategoryMapping("BRRip", TorznabCatType.MoviesSD, "BRRip"); - AddCategoryMapping("DVDR", TorznabCatType.MoviesDVD, "DVDR"); - AddCategoryMapping("DVDRip", TorznabCatType.MoviesSD, "DVDRip"); - AddCategoryMapping("FLAC", TorznabCatType.AudioLossless, "FLAC OST"); - AddCategoryMapping("MP3", TorznabCatType.AudioMP3, "MP3 OST"); - AddCategoryMapping("MP4", TorznabCatType.MoviesOther, "MP4"); - AddCategoryMapping("Packs", TorznabCatType.MoviesOther, "Packs"); - AddCategoryMapping("R5", TorznabCatType.MoviesDVD, "R5 / SCR"); - AddCategoryMapping("Remux", TorznabCatType.MoviesOther, "Remux"); - AddCategoryMapping("TVRip", TorznabCatType.MoviesOther, "TVRip"); - AddCategoryMapping("WebRip", TorznabCatType.MoviesWEBDL, "WebRip"); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId + } + }; + + caps.Categories.AddCategoryMapping("1080P", TorznabCatType.MoviesHD, "1080P"); + caps.Categories.AddCategoryMapping("2160P", TorznabCatType.MoviesHD, "2160P"); + caps.Categories.AddCategoryMapping("720P", TorznabCatType.MoviesHD, "720P"); + caps.Categories.AddCategoryMapping("BDRip", TorznabCatType.MoviesSD, "BDRip"); + caps.Categories.AddCategoryMapping("BluRay", TorznabCatType.MoviesBluRay, "BluRay"); + caps.Categories.AddCategoryMapping("BRRip", TorznabCatType.MoviesSD, "BRRip"); + caps.Categories.AddCategoryMapping("DVDR", TorznabCatType.MoviesDVD, "DVDR"); + caps.Categories.AddCategoryMapping("DVDRip", TorznabCatType.MoviesSD, "DVDRip"); + caps.Categories.AddCategoryMapping("FLAC", TorznabCatType.AudioLossless, "FLAC OST"); + caps.Categories.AddCategoryMapping("MP3", TorznabCatType.AudioMP3, "MP3 OST"); + caps.Categories.AddCategoryMapping("MP4", TorznabCatType.MoviesOther, "MP4"); + caps.Categories.AddCategoryMapping("Packs", TorznabCatType.MoviesOther, "Packs"); + caps.Categories.AddCategoryMapping("R5", TorznabCatType.MoviesDVD, "R5 / SCR"); + caps.Categories.AddCategoryMapping("Remux", TorznabCatType.MoviesOther, "Remux"); + caps.Categories.AddCategoryMapping("TVRip", TorznabCatType.MoviesOther, "TVRip"); + caps.Categories.AddCategoryMapping("WebRip", TorznabCatType.MoviesWEBDL, "WebRip"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/PixelHD.cs b/src/Jackett.Common/Indexers/PixelHD.cs index 27971eeb3..08917f362 100644 --- a/src/Jackett.Common/Indexers/PixelHD.cs +++ b/src/Jackett.Common/Indexers/PixelHD.cs @@ -2,7 +2,6 @@ using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Diagnostics.CodeAnalysis; -using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using AngleSharp.Html.Parser; @@ -26,6 +25,8 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string LoginUrl => SiteLink + "login.php"; private string BrowseUrl => SiteLink + "torrents.php"; @@ -39,25 +40,29 @@ namespace Jackett.Common.Indexers private string input_username = null; private string input_password = null; - public PixelHD(IIndexerConfigurationService configService, WebClient webClient, Logger logger, - IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId - } - }, - configService: configService, + public PixelHD(IIndexerConfigurationService configService, WebClient webClient, Logger logger, IProtectionService ps, ICacheService cs) + : base(configService: configService, logger: logger, p: ps, cacheService: cs, client: webClient, - configData: new ConfigurationDataCaptchaLogin() - ) + configData: new ConfigurationDataCaptchaLogin()) { - AddCategoryMapping(1, TorznabCatType.MoviesHD); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId + } + }; + + caps.Categories.AddCategoryMapping(1, TorznabCatType.MoviesHD); + + return caps; } public override async Task GetConfigurationForSetup() diff --git a/src/Jackett.Common/Indexers/PornoLab.cs b/src/Jackett.Common/Indexers/PornoLab.cs index 9b227a580..5f5e48a15 100644 --- a/src/Jackett.Common/Indexers/PornoLab.cs +++ b/src/Jackett.Common/Indexers/PornoLab.cs @@ -27,6 +27,8 @@ namespace Jackett.Common.Indexers public override string Language => "ru-RU"; public override string Type => "semi-private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string LoginUrl => SiteLink + "forum/login.php"; private string SearchUrl => SiteLink + "forum/tracker.php"; @@ -41,152 +43,159 @@ namespace Jackett.Common.Indexers } public PornoLab(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base(caps: new TorznabCapabilities(), - configService: configService, + : base(configService: configService, client: wc, logger: l, p: ps, cacheService: cs, configData: new ConfigurationDataPornolab()) { - AddCategoryMapping(1670, TorznabCatType.XXX, "Эротическое видео / Erotic & Softcore"); - AddCategoryMapping(1768, TorznabCatType.XXX, "Эротические фильмы / Erotic Movies"); - AddCategoryMapping(60, TorznabCatType.XXX, "Документальные фильмы / Documentary & Reality"); - AddCategoryMapping(1671, TorznabCatType.XXX, "Эротические ролики и сайтрипы / Erotic Clips & SiteRips"); - AddCategoryMapping(1644, TorznabCatType.XXX, "Нудизм-Натуризм / Nudity"); + } - AddCategoryMapping(1672, TorznabCatType.XXX, "Зарубежные порнофильмы / Full Length Movies"); - AddCategoryMapping(1111, TorznabCatType.XXXPack, "Паки полных фильмов / Full Length Movies Packs"); - AddCategoryMapping(508, TorznabCatType.XXX, "Классические фильмы / Classic"); - AddCategoryMapping(555, TorznabCatType.XXX, "Фильмы с сюжетом / Feature & Vignettes"); - AddCategoryMapping(1845, TorznabCatType.XXX, "Гонзо-фильмы 1991-2010 / Gonzo 1991-2010"); - AddCategoryMapping(1673, TorznabCatType.XXX, "Гонзо-фильмы 2011-2023 / Gonzo 2011-2023"); - AddCategoryMapping(1112, TorznabCatType.XXX, "Фильмы без сюжета 1991-2010 / All Sex & Amateur 1991-2010"); - AddCategoryMapping(1718, TorznabCatType.XXX, "Фильмы без сюжета 2011-2023 / All Sex & Amateur 2011-2023"); - AddCategoryMapping(553, TorznabCatType.XXX, "Лесбо-фильмы / All Girl & Solo"); - AddCategoryMapping(1143, TorznabCatType.XXX, "Этнические фильмы / Ethnic-Themed"); - AddCategoryMapping(1646, TorznabCatType.XXX, "Видео для телефонов и КПК / Pocket РС & Phone Video"); + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities(); - AddCategoryMapping(1717, TorznabCatType.XXX, "Зарубежные фильмы в высоком качестве (DVD&HD) / Full Length Movies High-Quality"); - AddCategoryMapping(1851, TorznabCatType.XXXDVD, "Эротические и Документальные видео (DVD) / Erotic, Documentary & Reality (DVD)"); - AddCategoryMapping(1713, TorznabCatType.XXXDVD, "Фильмы с сюжетом, Классические (DVD) / Feature & Vignetts, Classic (DVD)"); - AddCategoryMapping(512, TorznabCatType.XXXDVD, "Гонзо, Лесбо и Фильмы без сюжета (DVD) / Gonzo, All Girl & Solo, All Sex (DVD)"); - AddCategoryMapping(1712, TorznabCatType.XXX, "Эротические и Документальные видео (HD Video) / Erotic, Documentary & Reality (HD Video)"); - AddCategoryMapping(1775, TorznabCatType.XXX, "Фильмы с сюжетом, Классические (HD Video) / Feature & Vignettes, Classic (HD Video)"); - AddCategoryMapping(1450, TorznabCatType.XXX, "Гонзо, Лесбо и Фильмы без сюжета (HD Video) / Gonzo, All Girl & Solo, All Sex (HD Video)"); + caps.Categories.AddCategoryMapping(1670, TorznabCatType.XXX, "Эротическое видео / Erotic & Softcore"); + caps.Categories.AddCategoryMapping(1768, TorznabCatType.XXX, "Эротические фильмы / Erotic Movies"); + caps.Categories.AddCategoryMapping(60, TorznabCatType.XXX, "Документальные фильмы / Documentary & Reality"); + caps.Categories.AddCategoryMapping(1671, TorznabCatType.XXX, "Эротические ролики и сайтрипы / Erotic Clips & SiteRips"); + caps.Categories.AddCategoryMapping(1644, TorznabCatType.XXX, "Нудизм-Натуризм / Nudity"); - AddCategoryMapping(1674, TorznabCatType.XXX, "Русское порно / Russian Video"); - AddCategoryMapping(902, TorznabCatType.XXX, "Русские порнофильмы / Russian Full Length Movies"); - AddCategoryMapping(1675, TorznabCatType.XXXPack, "Паки русских порнороликов / Russian Clips Packs"); - AddCategoryMapping(36, TorznabCatType.XXX, "Сайтрипы с русскими актрисами 1991-2015 / Russian SiteRip's 1991-2015"); - AddCategoryMapping(1830, TorznabCatType.XXX, "Сайтрипы с русскими актрисами 1991-2015 (HD Video) / Russian SiteRip's 1991-2015 (HD Video)"); - AddCategoryMapping(1803, TorznabCatType.XXX, "Сайтрипы с русскими актрисами 2016-2023 / Russian SiteRip's 2016-2023"); - AddCategoryMapping(1831, TorznabCatType.XXX, "Сайтрипы с русскими актрисами 2016-2023 (HD Video) / Russian SiteRip's 2016-2023 (HD Video)"); - AddCategoryMapping(1741, TorznabCatType.XXX, "Русские Порноролики Разное / Russian Clips (various)"); - AddCategoryMapping(1676, TorznabCatType.XXX, "Русское любительское видео / Russian Amateur Video"); + caps.Categories.AddCategoryMapping(1672, TorznabCatType.XXX, "Зарубежные порнофильмы / Full Length Movies"); + caps.Categories.AddCategoryMapping(1111, TorznabCatType.XXXPack, "Паки полных фильмов / Full Length Movies Packs"); + caps.Categories.AddCategoryMapping(508, TorznabCatType.XXX, "Классические фильмы / Classic"); + caps.Categories.AddCategoryMapping(555, TorznabCatType.XXX, "Фильмы с сюжетом / Feature & Vignettes"); + caps.Categories.AddCategoryMapping(1845, TorznabCatType.XXX, "Гонзо-фильмы 1991-2010 / Gonzo 1991-2010"); + caps.Categories.AddCategoryMapping(1673, TorznabCatType.XXX, "Гонзо-фильмы 2011-2023 / Gonzo 2011-2023"); + caps.Categories.AddCategoryMapping(1112, TorznabCatType.XXX, "Фильмы без сюжета 1991-2010 / All Sex & Amateur 1991-2010"); + caps.Categories.AddCategoryMapping(1718, TorznabCatType.XXX, "Фильмы без сюжета 2011-2023 / All Sex & Amateur 2011-2023"); + caps.Categories.AddCategoryMapping(553, TorznabCatType.XXX, "Лесбо-фильмы / All Girl & Solo"); + caps.Categories.AddCategoryMapping(1143, TorznabCatType.XXX, "Этнические фильмы / Ethnic-Themed"); + caps.Categories.AddCategoryMapping(1646, TorznabCatType.XXX, "Видео для телефонов и КПК / Pocket РС & Phone Video"); - AddCategoryMapping(1677, TorznabCatType.XXX, "Зарубежные порноролики / Clips"); - AddCategoryMapping(1780, TorznabCatType.XXXPack, "Паки сайтрипов (HD Video) / SiteRip's Packs (HD Video)"); - AddCategoryMapping(1110, TorznabCatType.XXXPack, "Паки сайтрипов (SD Video) / SiteRip's Packs (SD Video)"); - AddCategoryMapping(1678, TorznabCatType.XXXPack, "Паки порнороликов по актрисам / Actresses Clips Packs"); - AddCategoryMapping(1124, TorznabCatType.XXX, "Сайтрипы 1991-2010 (HD Video) / SiteRip's 1991-2010 (HD Video)"); - AddCategoryMapping(1784, TorznabCatType.XXX, "Сайтрипы 2011-2012 (HD Video) / SiteRip's 2011-2012 (HD Video)"); - AddCategoryMapping(1769, TorznabCatType.XXX, "Сайтрипы 2013 (HD Video) / SiteRip's 2013 (HD Video)"); - AddCategoryMapping(1793, TorznabCatType.XXX, "Сайтрипы 2014 (HD Video) / SiteRip's 2014 (HD Video)"); - AddCategoryMapping(1797, TorznabCatType.XXX, "Сайтрипы 2015 (HD Video) / SiteRip's 2015 (HD Video)"); - AddCategoryMapping(1804, TorznabCatType.XXX, "Сайтрипы 2016 (HD Video) / SiteRip's 2016 (HD Video)"); - AddCategoryMapping(1819, TorznabCatType.XXX, "Сайтрипы 2017 (HD Video) / SiteRip's 2017 (HD Video)"); - AddCategoryMapping(1825, TorznabCatType.XXX, "Сайтрипы 2018 (HD Video) / SiteRip's 2018 (HD Video)"); - AddCategoryMapping(1836, TorznabCatType.XXX, "Сайтрипы 2019 (HD Video) / SiteRip's 2019 (HD Video)"); - AddCategoryMapping(1842, TorznabCatType.XXX, "Сайтрипы 2020 (HD Video) / SiteRip's 2020 (HD Video)"); - AddCategoryMapping(1846, TorznabCatType.XXX, "Сайтрипы 2021 (HD Video) / SiteRip's 2021 (HD Video)"); - AddCategoryMapping(1857, TorznabCatType.XXX, "Сайтрипы 2022 (HD Video) / SiteRip's 2022 (HD Video)"); - AddCategoryMapping(1861, TorznabCatType.XXX, "Сайтрипы 2023 (HD Video) / SiteRip's 2023 (HD Video)"); - AddCategoryMapping(1451, TorznabCatType.XXX, "Сайтрипы 1991-2010 / SiteRip's 1991-2010"); - AddCategoryMapping(1788, TorznabCatType.XXX, "Сайтрипы 2011-2012 / SiteRip's 2011-2012"); - AddCategoryMapping(1789, TorznabCatType.XXX, "Сайтрипы 2013 / SiteRip's 2013"); - AddCategoryMapping(1792, TorznabCatType.XXX, "Сайтрипы 2014 / SiteRip's 2014"); - AddCategoryMapping(1798, TorznabCatType.XXX, "Сайтрипы 2015 / SiteRip's 2015"); - AddCategoryMapping(1805, TorznabCatType.XXX, "Сайтрипы 2016 / SiteRip's 2016"); - AddCategoryMapping(1820, TorznabCatType.XXX, "Сайтрипы 2017 / SiteRip's 2017"); - AddCategoryMapping(1826, TorznabCatType.XXX, "Сайтрипы 2018 / SiteRip's 2018"); - AddCategoryMapping(1837, TorznabCatType.XXX, "Сайтрипы 2019 / SiteRip's 2019"); - AddCategoryMapping(1843, TorznabCatType.XXX, "Сайтрипы 2020 / SiteRip's 2020"); - AddCategoryMapping(1847, TorznabCatType.XXX, "Сайтрипы 2021 / SiteRip's 2021"); - AddCategoryMapping(1856, TorznabCatType.XXX, "Сайтрипы 2022 / SiteRip's 2022"); - AddCategoryMapping(1862, TorznabCatType.XXX, "Сайтрипы 2023 / SiteRip's 2023"); - AddCategoryMapping(1707, TorznabCatType.XXX, "Сцены из фильмов / Movie Scenes (кроме SiteRip)"); - AddCategoryMapping(284, TorznabCatType.XXX, "Порноролики Разное / Clips (various)"); - AddCategoryMapping(1853, TorznabCatType.XXX, "Компиляции и Музыкальные порно клипы / Compilations & Porn Music Video (PMV)"); - AddCategoryMapping(1823, TorznabCatType.XXX, "Порноролики в 3D и Virtual Reality (VR) / 3D & Virtual Reality Videos"); + caps.Categories.AddCategoryMapping(1717, TorznabCatType.XXX, "Зарубежные фильмы в высоком качестве (DVD&HD) / Full Length Movies High-Quality"); + caps.Categories.AddCategoryMapping(1851, TorznabCatType.XXXDVD, "Эротические и Документальные видео (DVD) / Erotic, Documentary & Reality (DVD)"); + caps.Categories.AddCategoryMapping(1713, TorznabCatType.XXXDVD, "Фильмы с сюжетом, Классические (DVD) / Feature & Vignetts, Classic (DVD)"); + caps.Categories.AddCategoryMapping(512, TorznabCatType.XXXDVD, "Гонзо, Лесбо и Фильмы без сюжета (DVD) / Gonzo, All Girl & Solo, All Sex (DVD)"); + caps.Categories.AddCategoryMapping(1712, TorznabCatType.XXX, "Эротические и Документальные видео (HD Video) / Erotic, Documentary & Reality (HD Video)"); + caps.Categories.AddCategoryMapping(1775, TorznabCatType.XXX, "Фильмы с сюжетом, Классические (HD Video) / Feature & Vignettes, Classic (HD Video)"); + caps.Categories.AddCategoryMapping(1450, TorznabCatType.XXX, "Гонзо, Лесбо и Фильмы без сюжета (HD Video) / Gonzo, All Girl & Solo, All Sex (HD Video)"); - AddCategoryMapping(1800, TorznabCatType.XXX, "Японское и китайское порно / Japanese & Chinese Adult Video (JAV)"); - AddCategoryMapping(1801, TorznabCatType.XXXPack, "Паки японских фильмов и сайтрипов / Full Length Japanese Movies Packs & SiteRip's Packs"); - AddCategoryMapping(1719, TorznabCatType.XXX, "Японские фильмы и сайтрипы (DVD и HD Video) / Japanese Movies & SiteRip's (DVD & HD Video)"); - AddCategoryMapping(997, TorznabCatType.XXX, "Японские фильмы и сайтрипы 1991-2014 / Japanese Movies & SiteRip's 1991-2014"); - AddCategoryMapping(1818, TorznabCatType.XXX, "Японские фильмы и сайтрипы 2015-2023 / Japanese Movies & SiteRip's 2015-2023"); - AddCategoryMapping(1849, TorznabCatType.XXX, "Китайские фильмы и сайтрипы (DVD и HD Video) / Chinese Movies & SiteRip's (DVD & HD Video)"); - AddCategoryMapping(1815, TorznabCatType.XXX, "Архив (Японское и китайское порно)"); + caps.Categories.AddCategoryMapping(1674, TorznabCatType.XXX, "Русское порно / Russian Video"); + caps.Categories.AddCategoryMapping(902, TorznabCatType.XXX, "Русские порнофильмы / Russian Full Length Movies"); + caps.Categories.AddCategoryMapping(1675, TorznabCatType.XXXPack, "Паки русских порнороликов / Russian Clips Packs"); + caps.Categories.AddCategoryMapping(36, TorznabCatType.XXX, "Сайтрипы с русскими актрисами 1991-2015 / Russian SiteRip's 1991-2015"); + caps.Categories.AddCategoryMapping(1830, TorznabCatType.XXX, "Сайтрипы с русскими актрисами 1991-2015 (HD Video) / Russian SiteRip's 1991-2015 (HD Video)"); + caps.Categories.AddCategoryMapping(1803, TorznabCatType.XXX, "Сайтрипы с русскими актрисами 2016-2023 / Russian SiteRip's 2016-2023"); + caps.Categories.AddCategoryMapping(1831, TorznabCatType.XXX, "Сайтрипы с русскими актрисами 2016-2023 (HD Video) / Russian SiteRip's 2016-2023 (HD Video)"); + caps.Categories.AddCategoryMapping(1741, TorznabCatType.XXX, "Русские Порноролики Разное / Russian Clips (various)"); + caps.Categories.AddCategoryMapping(1676, TorznabCatType.XXX, "Русское любительское видео / Russian Amateur Video"); - AddCategoryMapping(1723, TorznabCatType.XXX, "Фото и журналы / Photos & Magazines"); - AddCategoryMapping(1726, TorznabCatType.XXX, "MetArt & MetModels"); - AddCategoryMapping(883, TorznabCatType.XXXImageSet, "Эротические студии Разное / Erotic Picture Gallery (various)"); - AddCategoryMapping(1759, TorznabCatType.XXXImageSet, "Паки сайтрипов эротических студий / Erotic Picture SiteRip's Packs"); - AddCategoryMapping(1728, TorznabCatType.XXXImageSet, "Любительское фото / Amateur Picture Gallery"); - AddCategoryMapping(1729, TorznabCatType.XXXPack, "Подборки по актрисам / Actresses Picture Packs"); - AddCategoryMapping(38, TorznabCatType.XXXImageSet, "Подборки сайтрипов / SiteRip's Picture Packs"); - AddCategoryMapping(1757, TorznabCatType.XXXImageSet, "Подборки сетов / Picture Sets Packs"); - AddCategoryMapping(1735, TorznabCatType.XXXImageSet, "Тематическое и нетрадиционное фото / Misc & Special Interest Picture Packs"); - AddCategoryMapping(1731, TorznabCatType.XXXImageSet, "Журналы / Magazines"); - AddCategoryMapping(1802, TorznabCatType.XXX, "Архив (Фото)"); + caps.Categories.AddCategoryMapping(1677, TorznabCatType.XXX, "Зарубежные порноролики / Clips"); + caps.Categories.AddCategoryMapping(1780, TorznabCatType.XXXPack, "Паки сайтрипов (HD Video) / SiteRip's Packs (HD Video)"); + caps.Categories.AddCategoryMapping(1110, TorznabCatType.XXXPack, "Паки сайтрипов (SD Video) / SiteRip's Packs (SD Video)"); + caps.Categories.AddCategoryMapping(1678, TorznabCatType.XXXPack, "Паки порнороликов по актрисам / Actresses Clips Packs"); + caps.Categories.AddCategoryMapping(1124, TorznabCatType.XXX, "Сайтрипы 1991-2010 (HD Video) / SiteRip's 1991-2010 (HD Video)"); + caps.Categories.AddCategoryMapping(1784, TorznabCatType.XXX, "Сайтрипы 2011-2012 (HD Video) / SiteRip's 2011-2012 (HD Video)"); + caps.Categories.AddCategoryMapping(1769, TorznabCatType.XXX, "Сайтрипы 2013 (HD Video) / SiteRip's 2013 (HD Video)"); + caps.Categories.AddCategoryMapping(1793, TorznabCatType.XXX, "Сайтрипы 2014 (HD Video) / SiteRip's 2014 (HD Video)"); + caps.Categories.AddCategoryMapping(1797, TorznabCatType.XXX, "Сайтрипы 2015 (HD Video) / SiteRip's 2015 (HD Video)"); + caps.Categories.AddCategoryMapping(1804, TorznabCatType.XXX, "Сайтрипы 2016 (HD Video) / SiteRip's 2016 (HD Video)"); + caps.Categories.AddCategoryMapping(1819, TorznabCatType.XXX, "Сайтрипы 2017 (HD Video) / SiteRip's 2017 (HD Video)"); + caps.Categories.AddCategoryMapping(1825, TorznabCatType.XXX, "Сайтрипы 2018 (HD Video) / SiteRip's 2018 (HD Video)"); + caps.Categories.AddCategoryMapping(1836, TorznabCatType.XXX, "Сайтрипы 2019 (HD Video) / SiteRip's 2019 (HD Video)"); + caps.Categories.AddCategoryMapping(1842, TorznabCatType.XXX, "Сайтрипы 2020 (HD Video) / SiteRip's 2020 (HD Video)"); + caps.Categories.AddCategoryMapping(1846, TorznabCatType.XXX, "Сайтрипы 2021 (HD Video) / SiteRip's 2021 (HD Video)"); + caps.Categories.AddCategoryMapping(1857, TorznabCatType.XXX, "Сайтрипы 2022 (HD Video) / SiteRip's 2022 (HD Video)"); + caps.Categories.AddCategoryMapping(1861, TorznabCatType.XXX, "Сайтрипы 2023 (HD Video) / SiteRip's 2023 (HD Video)"); + caps.Categories.AddCategoryMapping(1451, TorznabCatType.XXX, "Сайтрипы 1991-2010 / SiteRip's 1991-2010"); + caps.Categories.AddCategoryMapping(1788, TorznabCatType.XXX, "Сайтрипы 2011-2012 / SiteRip's 2011-2012"); + caps.Categories.AddCategoryMapping(1789, TorznabCatType.XXX, "Сайтрипы 2013 / SiteRip's 2013"); + caps.Categories.AddCategoryMapping(1792, TorznabCatType.XXX, "Сайтрипы 2014 / SiteRip's 2014"); + caps.Categories.AddCategoryMapping(1798, TorznabCatType.XXX, "Сайтрипы 2015 / SiteRip's 2015"); + caps.Categories.AddCategoryMapping(1805, TorznabCatType.XXX, "Сайтрипы 2016 / SiteRip's 2016"); + caps.Categories.AddCategoryMapping(1820, TorznabCatType.XXX, "Сайтрипы 2017 / SiteRip's 2017"); + caps.Categories.AddCategoryMapping(1826, TorznabCatType.XXX, "Сайтрипы 2018 / SiteRip's 2018"); + caps.Categories.AddCategoryMapping(1837, TorznabCatType.XXX, "Сайтрипы 2019 / SiteRip's 2019"); + caps.Categories.AddCategoryMapping(1843, TorznabCatType.XXX, "Сайтрипы 2020 / SiteRip's 2020"); + caps.Categories.AddCategoryMapping(1847, TorznabCatType.XXX, "Сайтрипы 2021 / SiteRip's 2021"); + caps.Categories.AddCategoryMapping(1856, TorznabCatType.XXX, "Сайтрипы 2022 / SiteRip's 2022"); + caps.Categories.AddCategoryMapping(1862, TorznabCatType.XXX, "Сайтрипы 2023 / SiteRip's 2023"); + caps.Categories.AddCategoryMapping(1707, TorznabCatType.XXX, "Сцены из фильмов / Movie Scenes (кроме SiteRip)"); + caps.Categories.AddCategoryMapping(284, TorznabCatType.XXX, "Порноролики Разное / Clips (various)"); + caps.Categories.AddCategoryMapping(1853, TorznabCatType.XXX, "Компиляции и Музыкальные порно клипы / Compilations & Porn Music Video (PMV)"); + caps.Categories.AddCategoryMapping(1823, TorznabCatType.XXX, "Порноролики в 3D и Virtual Reality (VR) / 3D & Virtual Reality Videos"); - AddCategoryMapping(1745, TorznabCatType.XXX, "Хентай и Манга, Мультфильмы и Комиксы, Рисунки / Hentai & Manga, Cartoons & Comics, Artwork"); - AddCategoryMapping(1679, TorznabCatType.XXX, "Хентай: основной подраздел / Hentai: main subsection"); - AddCategoryMapping(1740, TorznabCatType.XXX, "Хентай в высоком качестве (DVD и HD) / Hentai DVD & HD"); - AddCategoryMapping(1834, TorznabCatType.XXX, "Хентай: ролики 2D / Hentai: 2D video"); - AddCategoryMapping(1752, TorznabCatType.XXX, "Хентай: ролики 3D / Hentai: 3D video"); - AddCategoryMapping(1760, TorznabCatType.XXX, "Хентай: Манга / Hentai: Manga"); - AddCategoryMapping(1781, TorznabCatType.XXX, "Хентай: Арт и HCG / Hentai: Artwork & HCG"); - AddCategoryMapping(1711, TorznabCatType.XXX, "Мультфильмы / Cartoons"); - AddCategoryMapping(1296, TorznabCatType.XXX, "Комиксы и рисунки / Comics & Artwork"); + caps.Categories.AddCategoryMapping(1800, TorznabCatType.XXX, "Японское и китайское порно / Japanese & Chinese Adult Video (JAV)"); + caps.Categories.AddCategoryMapping(1801, TorznabCatType.XXXPack, "Паки японских фильмов и сайтрипов / Full Length Japanese Movies Packs & SiteRip's Packs"); + caps.Categories.AddCategoryMapping(1719, TorznabCatType.XXX, "Японские фильмы и сайтрипы (DVD и HD Video) / Japanese Movies & SiteRip's (DVD & HD Video)"); + caps.Categories.AddCategoryMapping(997, TorznabCatType.XXX, "Японские фильмы и сайтрипы 1991-2014 / Japanese Movies & SiteRip's 1991-2014"); + caps.Categories.AddCategoryMapping(1818, TorznabCatType.XXX, "Японские фильмы и сайтрипы 2015-2023 / Japanese Movies & SiteRip's 2015-2023"); + caps.Categories.AddCategoryMapping(1849, TorznabCatType.XXX, "Китайские фильмы и сайтрипы (DVD и HD Video) / Chinese Movies & SiteRip's (DVD & HD Video)"); + caps.Categories.AddCategoryMapping(1815, TorznabCatType.XXX, "Архив (Японское и китайское порно)"); - AddCategoryMapping(1838, TorznabCatType.XXX, "Игры / Games"); - AddCategoryMapping(1750, TorznabCatType.XXX, "Игры: основной подраздел / Games: main subsection"); - AddCategoryMapping(1756, TorznabCatType.XXX, "Игры: визуальные новеллы / Games: Visual Novels"); - AddCategoryMapping(1785, TorznabCatType.XXX, "Игры: ролевые / Games: role-playing (RPG Maker and WOLF RPG Editor)"); - AddCategoryMapping(1790, TorznabCatType.XXX, "Игры и Софт: Анимация / Software: Animation"); - AddCategoryMapping(1827, TorznabCatType.XXX, "Игры: В разработке и Демо (основной подраздел) / Games: In Progress and Demo (main subsection)"); - AddCategoryMapping(1828, TorznabCatType.XXX, "Игры: В разработке и Демо (ролевые) / Games: In Progress and Demo (role-playing - RPG Maker and WOLF RPG Editor)"); - AddCategoryMapping(1829, TorznabCatType.XXX, "Обсуждение игр / Games Discussion"); + caps.Categories.AddCategoryMapping(1723, TorznabCatType.XXX, "Фото и журналы / Photos & Magazines"); + caps.Categories.AddCategoryMapping(1726, TorznabCatType.XXX, "MetArt & MetModels"); + caps.Categories.AddCategoryMapping(883, TorznabCatType.XXXImageSet, "Эротические студии Разное / Erotic Picture Gallery (various)"); + caps.Categories.AddCategoryMapping(1759, TorznabCatType.XXXImageSet, "Паки сайтрипов эротических студий / Erotic Picture SiteRip's Packs"); + caps.Categories.AddCategoryMapping(1728, TorznabCatType.XXXImageSet, "Любительское фото / Amateur Picture Gallery"); + caps.Categories.AddCategoryMapping(1729, TorznabCatType.XXXPack, "Подборки по актрисам / Actresses Picture Packs"); + caps.Categories.AddCategoryMapping(38, TorznabCatType.XXXImageSet, "Подборки сайтрипов / SiteRip's Picture Packs"); + caps.Categories.AddCategoryMapping(1757, TorznabCatType.XXXImageSet, "Подборки сетов / Picture Sets Packs"); + caps.Categories.AddCategoryMapping(1735, TorznabCatType.XXXImageSet, "Тематическое и нетрадиционное фото / Misc & Special Interest Picture Packs"); + caps.Categories.AddCategoryMapping(1731, TorznabCatType.XXXImageSet, "Журналы / Magazines"); + caps.Categories.AddCategoryMapping(1802, TorznabCatType.XXX, "Архив (Фото)"); - AddCategoryMapping(11, TorznabCatType.XXX, "Нетрадиционное порно / Special Interest Movies & Clips"); - AddCategoryMapping(1715, TorznabCatType.XXX, "Транссексуалы (DVD и HD) / Transsexual (DVD & HD)"); - AddCategoryMapping(1680, TorznabCatType.XXX, "Транссексуалы / Transsexual"); - AddCategoryMapping(1758, TorznabCatType.XXX, "Бисексуалы / Bisexual"); - AddCategoryMapping(1682, TorznabCatType.XXX, "БДСМ / BDSM"); - AddCategoryMapping(1733, TorznabCatType.XXX, "Женское доминирование и страпон / Femdom & Strapon"); - AddCategoryMapping(1754, TorznabCatType.XXX, "Подглядывание / Voyeur"); - AddCategoryMapping(1734, TorznabCatType.XXX, "Фистинг и дилдо / Fisting & Dildo"); - AddCategoryMapping(1791, TorznabCatType.XXX, "Беременные / Pregnant"); - AddCategoryMapping(509, TorznabCatType.XXX, "Буккаке / Bukkake"); - AddCategoryMapping(1859, TorznabCatType.XXX, "Гэнг-бэнг / GangBang"); - AddCategoryMapping(1685, TorznabCatType.XXX, "Мочеиспускание / Peeing"); - AddCategoryMapping(1762, TorznabCatType.XXX, "Фетиш / Fetish"); - AddCategoryMapping(1681, TorznabCatType.XXX, "Дефекация / Scat"); + caps.Categories.AddCategoryMapping(1745, TorznabCatType.XXX, "Хентай и Манга, Мультфильмы и Комиксы, Рисунки / Hentai & Manga, Cartoons & Comics, Artwork"); + caps.Categories.AddCategoryMapping(1679, TorznabCatType.XXX, "Хентай: основной подраздел / Hentai: main subsection"); + caps.Categories.AddCategoryMapping(1740, TorznabCatType.XXX, "Хентай в высоком качестве (DVD и HD) / Hentai DVD & HD"); + caps.Categories.AddCategoryMapping(1834, TorznabCatType.XXX, "Хентай: ролики 2D / Hentai: 2D video"); + caps.Categories.AddCategoryMapping(1752, TorznabCatType.XXX, "Хентай: ролики 3D / Hentai: 3D video"); + caps.Categories.AddCategoryMapping(1760, TorznabCatType.XXX, "Хентай: Манга / Hentai: Manga"); + caps.Categories.AddCategoryMapping(1781, TorznabCatType.XXX, "Хентай: Арт и HCG / Hentai: Artwork & HCG"); + caps.Categories.AddCategoryMapping(1711, TorznabCatType.XXX, "Мультфильмы / Cartoons"); + caps.Categories.AddCategoryMapping(1296, TorznabCatType.XXX, "Комиксы и рисунки / Comics & Artwork"); - AddCategoryMapping(1683, TorznabCatType.XXX, "Архив (общий)"); + caps.Categories.AddCategoryMapping(1838, TorznabCatType.XXX, "Игры / Games"); + caps.Categories.AddCategoryMapping(1750, TorznabCatType.XXX, "Игры: основной подраздел / Games: main subsection"); + caps.Categories.AddCategoryMapping(1756, TorznabCatType.XXX, "Игры: визуальные новеллы / Games: Visual Novels"); + caps.Categories.AddCategoryMapping(1785, TorznabCatType.XXX, "Игры: ролевые / Games: role-playing (RPG Maker and WOLF RPG Editor)"); + caps.Categories.AddCategoryMapping(1790, TorznabCatType.XXX, "Игры и Софт: Анимация / Software: Animation"); + caps.Categories.AddCategoryMapping(1827, TorznabCatType.XXX, "Игры: В разработке и Демо (основной подраздел) / Games: In Progress and Demo (main subsection)"); + caps.Categories.AddCategoryMapping(1828, TorznabCatType.XXX, "Игры: В разработке и Демо (ролевые) / Games: In Progress and Demo (role-playing - RPG Maker and WOLF RPG Editor)"); + caps.Categories.AddCategoryMapping(1829, TorznabCatType.XXX, "Обсуждение игр / Games Discussion"); - AddCategoryMapping(1688, TorznabCatType.XXX, "Гей-порно / Gay Forum"); - AddCategoryMapping(903, TorznabCatType.XXX, "Полнометражные гей-фильмы / Full Length Movies (Gay)"); - AddCategoryMapping(1765, TorznabCatType.XXX, "Полнометражные азиатские гей-фильмы / Full-length Asian (Gay)"); - AddCategoryMapping(1767, TorznabCatType.XXX, "Классические гей-фильмы (до 1990 года) / Classic Gay Films (Pre-1990's)"); - AddCategoryMapping(1755, TorznabCatType.XXX, "Гей-фильмы в высоком качестве (DVD и HD) / High-Quality Full Length Movies (Gay DVD & HD)"); - AddCategoryMapping(1787, TorznabCatType.XXX, "Азиатские гей-фильмы в высоком качестве (DVD и HD) / High-Quality Full Length Asian Movies (Gay DVD & HD)"); - AddCategoryMapping(1763, TorznabCatType.XXXPack, "ПАКи гей-роликов и сайтрипов / Clip's & SiteRip's Packs (Gay)"); - AddCategoryMapping(1777, TorznabCatType.XXX, "Гей-ролики в высоком качестве (HD Video) / Gay Clips (HD Video)"); - AddCategoryMapping(1691, TorznabCatType.XXX, "Ролики, SiteRip'ы и сцены из гей-фильмов / Clips & Movie Scenes (Gay)"); - AddCategoryMapping(1692, TorznabCatType.XXXImageSet, "Гей-журналы, фото, разное / Magazines, Photo, Rest (Gay)"); - AddCategoryMapping(1720, TorznabCatType.XXX, "Архив (Гей-порно)"); + caps.Categories.AddCategoryMapping(11, TorznabCatType.XXX, "Нетрадиционное порно / Special Interest Movies & Clips"); + caps.Categories.AddCategoryMapping(1715, TorznabCatType.XXX, "Транссексуалы (DVD и HD) / Transsexual (DVD & HD)"); + caps.Categories.AddCategoryMapping(1680, TorznabCatType.XXX, "Транссексуалы / Transsexual"); + caps.Categories.AddCategoryMapping(1758, TorznabCatType.XXX, "Бисексуалы / Bisexual"); + caps.Categories.AddCategoryMapping(1682, TorznabCatType.XXX, "БДСМ / BDSM"); + caps.Categories.AddCategoryMapping(1733, TorznabCatType.XXX, "Женское доминирование и страпон / Femdom & Strapon"); + caps.Categories.AddCategoryMapping(1754, TorznabCatType.XXX, "Подглядывание / Voyeur"); + caps.Categories.AddCategoryMapping(1734, TorznabCatType.XXX, "Фистинг и дилдо / Fisting & Dildo"); + caps.Categories.AddCategoryMapping(1791, TorznabCatType.XXX, "Беременные / Pregnant"); + caps.Categories.AddCategoryMapping(509, TorznabCatType.XXX, "Буккаке / Bukkake"); + caps.Categories.AddCategoryMapping(1859, TorznabCatType.XXX, "Гэнг-бэнг / GangBang"); + caps.Categories.AddCategoryMapping(1685, TorznabCatType.XXX, "Мочеиспускание / Peeing"); + caps.Categories.AddCategoryMapping(1762, TorznabCatType.XXX, "Фетиш / Fetish"); + caps.Categories.AddCategoryMapping(1681, TorznabCatType.XXX, "Дефекация / Scat"); + + caps.Categories.AddCategoryMapping(1683, TorznabCatType.XXX, "Архив (общий)"); + + caps.Categories.AddCategoryMapping(1688, TorznabCatType.XXX, "Гей-порно / Gay Forum"); + caps.Categories.AddCategoryMapping(903, TorznabCatType.XXX, "Полнометражные гей-фильмы / Full Length Movies (Gay)"); + caps.Categories.AddCategoryMapping(1765, TorznabCatType.XXX, "Полнометражные азиатские гей-фильмы / Full-length Asian (Gay)"); + caps.Categories.AddCategoryMapping(1767, TorznabCatType.XXX, "Классические гей-фильмы (до 1990 года) / Classic Gay Films (Pre-1990's)"); + caps.Categories.AddCategoryMapping(1755, TorznabCatType.XXX, "Гей-фильмы в высоком качестве (DVD и HD) / High-Quality Full Length Movies (Gay DVD & HD)"); + caps.Categories.AddCategoryMapping(1787, TorznabCatType.XXX, "Азиатские гей-фильмы в высоком качестве (DVD и HD) / High-Quality Full Length Asian Movies (Gay DVD & HD)"); + caps.Categories.AddCategoryMapping(1763, TorznabCatType.XXXPack, "ПАКи гей-роликов и сайтрипов / Clip's & SiteRip's Packs (Gay)"); + caps.Categories.AddCategoryMapping(1777, TorznabCatType.XXX, "Гей-ролики в высоком качестве (HD Video) / Gay Clips (HD Video)"); + caps.Categories.AddCategoryMapping(1691, TorznabCatType.XXX, "Ролики, SiteRip'ы и сцены из гей-фильмов / Clips & Movie Scenes (Gay)"); + caps.Categories.AddCategoryMapping(1692, TorznabCatType.XXXImageSet, "Гей-журналы, фото, разное / Magazines, Photo, Rest (Gay)"); + caps.Categories.AddCategoryMapping(1720, TorznabCatType.XXX, "Архив (Гей-порно)"); + + return caps; } public override async Task GetConfigurationForSetup() diff --git a/src/Jackett.Common/Indexers/PreToMe.cs b/src/Jackett.Common/Indexers/PreToMe.cs index 6165043a8..ffbe79de1 100644 --- a/src/Jackett.Common/Indexers/PreToMe.cs +++ b/src/Jackett.Common/Indexers/PreToMe.cs @@ -27,121 +27,128 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string LoginUrl => SiteLink + "takelogin.php"; private string SearchUrl => SiteLink + "browse.php"; private new ConfigurationDataPinNumber configData => (ConfigurationDataPinNumber)base.configData; - public PreToMe(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, - ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId - }, - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId - }, - MusicSearchParams = new List - { - MusicSearchParam.Q - }, - BookSearchParams = new List - { - BookSearchParam.Q - } - }, - client: wc, + public PreToMe(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) + : base(client: wc, configService: configService, logger: l, p: ps, cacheService: cs, configData: new ConfigurationDataPinNumber("For best results, change the 'Torrents per page' setting to 100 in 'Profile => Torrent browse settings'.")) { + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId + }, + MusicSearchParams = new List + { + MusicSearchParam.Q + }, + BookSearchParams = new List + { + BookSearchParam.Q + } + }; + // Unfortunately most of them are tags not categories and they return the parent category // we have to re-add the tags with the parent category so the results are not removed with the filtering // Applications - AddCategoryMapping("cat[]=22", TorznabCatType.PC, "Applications"); - AddCategoryMapping("cat[]=22&tags=Windows", TorznabCatType.PC0day, "Applications/Windows"); - AddCategoryMapping("cat[]=22&tags=MAC", TorznabCatType.PCMac, "Applications/MAC"); - AddCategoryMapping("cat[]=22&tags=Linux", TorznabCatType.PC, "Applications/Linux"); + caps.Categories.AddCategoryMapping("cat[]=22", TorznabCatType.PC, "Applications"); + caps.Categories.AddCategoryMapping("cat[]=22&tags=Windows", TorznabCatType.PC0day, "Applications/Windows"); + caps.Categories.AddCategoryMapping("cat[]=22&tags=MAC", TorznabCatType.PCMac, "Applications/MAC"); + caps.Categories.AddCategoryMapping("cat[]=22&tags=Linux", TorznabCatType.PC, "Applications/Linux"); // Ebooks - AddCategoryMapping("cat[]=27", TorznabCatType.BooksEBook, "Ebooks"); + caps.Categories.AddCategoryMapping("cat[]=27", TorznabCatType.BooksEBook, "Ebooks"); // Games // NOTE: Console 1000 category is not working well because it contains pc and console results mixed - AddCategoryMapping("cat[]=4", TorznabCatType.Console, "Games"); - AddCategoryMapping("cat[]=4&tags=PC", TorznabCatType.PCGames, "Games/PC"); - AddCategoryMapping("cat[]=4&tags=RIP", TorznabCatType.PCGames, "Games/RIP"); - AddCategoryMapping("cat[]=4&tags=ISO", TorznabCatType.PCGames, "Games/ISO"); - AddCategoryMapping("cat[]=4&tags=NSW", TorznabCatType.ConsoleOther, "Games/NSW"); - AddCategoryMapping("cat[]=4&tags=GAMES-NSW", TorznabCatType.ConsoleOther, "Games/NSW"); - AddCategoryMapping("cat[]=4&tags=XBOX360", TorznabCatType.ConsoleXBox360, "Games/XBOX360"); - AddCategoryMapping("cat[]=4&tags=PS3", TorznabCatType.ConsolePS3, "Games/PS3"); - AddCategoryMapping("cat[]=4&tags=Wii", TorznabCatType.ConsoleWii, "Games/Wii"); - AddCategoryMapping("cat[]=4&tags=PSP", TorznabCatType.ConsolePSP, "Games/PSP"); - AddCategoryMapping("cat[]=4&tags=NDS", TorznabCatType.ConsoleNDS, "Games/NDS"); - AddCategoryMapping("cat[]=4&tags=Xbox", TorznabCatType.ConsoleXBox, "Games/Xbox"); - AddCategoryMapping("cat[]=4&tags=PS2", TorznabCatType.ConsoleOther, "Games/PS2"); + caps.Categories.AddCategoryMapping("cat[]=4", TorznabCatType.Console, "Games"); + caps.Categories.AddCategoryMapping("cat[]=4&tags=PC", TorznabCatType.PCGames, "Games/PC"); + caps.Categories.AddCategoryMapping("cat[]=4&tags=RIP", TorznabCatType.PCGames, "Games/RIP"); + caps.Categories.AddCategoryMapping("cat[]=4&tags=ISO", TorznabCatType.PCGames, "Games/ISO"); + caps.Categories.AddCategoryMapping("cat[]=4&tags=NSW", TorznabCatType.ConsoleOther, "Games/NSW"); + caps.Categories.AddCategoryMapping("cat[]=4&tags=GAMES-NSW", TorznabCatType.ConsoleOther, "Games/NSW"); + caps.Categories.AddCategoryMapping("cat[]=4&tags=XBOX360", TorznabCatType.ConsoleXBox360, "Games/XBOX360"); + caps.Categories.AddCategoryMapping("cat[]=4&tags=PS3", TorznabCatType.ConsolePS3, "Games/PS3"); + caps.Categories.AddCategoryMapping("cat[]=4&tags=Wii", TorznabCatType.ConsoleWii, "Games/Wii"); + caps.Categories.AddCategoryMapping("cat[]=4&tags=PSP", TorznabCatType.ConsolePSP, "Games/PSP"); + caps.Categories.AddCategoryMapping("cat[]=4&tags=NDS", TorznabCatType.ConsoleNDS, "Games/NDS"); + caps.Categories.AddCategoryMapping("cat[]=4&tags=Xbox", TorznabCatType.ConsoleXBox, "Games/Xbox"); + caps.Categories.AddCategoryMapping("cat[]=4&tags=PS2", TorznabCatType.ConsoleOther, "Games/PS2"); // Miscellaneous - AddCategoryMapping("cat[]=31", TorznabCatType.Other, "Miscellaneous"); - AddCategoryMapping("cat[]=31&tags=Ebook", TorznabCatType.BooksEBook, "Miscellaneous/Ebook"); - AddCategoryMapping("cat[]=31&tags=RARFiX", TorznabCatType.Other, "Miscellaneous/RARFiX"); + caps.Categories.AddCategoryMapping("cat[]=31", TorznabCatType.Other, "Miscellaneous"); + caps.Categories.AddCategoryMapping("cat[]=31&tags=Ebook", TorznabCatType.BooksEBook, "Miscellaneous/Ebook"); + caps.Categories.AddCategoryMapping("cat[]=31&tags=RARFiX", TorznabCatType.Other, "Miscellaneous/RARFiX"); // Movies - AddCategoryMapping("cat[]=19", TorznabCatType.Movies, "Movies"); - AddCategoryMapping("cat[]=19&tags=1080p", TorznabCatType.MoviesHD, "Movies/1080p"); - AddCategoryMapping("cat[]=19&tags=720p", TorznabCatType.MoviesHD, "Movies/720p"); - AddCategoryMapping("cat[]=19&tags=2160p", TorznabCatType.MoviesUHD, "Movies/2160p"); - AddCategoryMapping("cat[]=19&tags=x264", TorznabCatType.MoviesHD, "Movies/x264"); - AddCategoryMapping("cat[]=19&tags=x265", TorznabCatType.MoviesHD, "Movies/x265"); - AddCategoryMapping("cat[]=19&tags=BluRay", TorznabCatType.MoviesHD, "Movies/BluRay"); - AddCategoryMapping("cat[]=19&tags=XviD", TorznabCatType.MoviesSD, "Movies/XviD"); - AddCategoryMapping("cat[]=19&tags=DVDRiP", TorznabCatType.MoviesSD, "Movies/DVDRiP"); - AddCategoryMapping("cat[]=19&tags=DVD", TorznabCatType.MoviesSD, "Movies/DVD"); - AddCategoryMapping("cat[]=19&tags=DVDR", TorznabCatType.MoviesSD, "Movies/DVDR"); - AddCategoryMapping("cat[]=19&tags=WMV", TorznabCatType.Movies, "Movies/WMV"); - AddCategoryMapping("cat[]=19&tags=CAM", TorznabCatType.Movies, "Movies/CAM"); - AddCategoryMapping("cat[]=19&tags=DolbyVision", TorznabCatType.Movies, "Movies/DolbyVision"); + caps.Categories.AddCategoryMapping("cat[]=19", TorznabCatType.Movies, "Movies"); + caps.Categories.AddCategoryMapping("cat[]=19&tags=1080p", TorznabCatType.MoviesHD, "Movies/1080p"); + caps.Categories.AddCategoryMapping("cat[]=19&tags=720p", TorznabCatType.MoviesHD, "Movies/720p"); + caps.Categories.AddCategoryMapping("cat[]=19&tags=2160p", TorznabCatType.MoviesUHD, "Movies/2160p"); + caps.Categories.AddCategoryMapping("cat[]=19&tags=x264", TorznabCatType.MoviesHD, "Movies/x264"); + caps.Categories.AddCategoryMapping("cat[]=19&tags=x265", TorznabCatType.MoviesHD, "Movies/x265"); + caps.Categories.AddCategoryMapping("cat[]=19&tags=BluRay", TorznabCatType.MoviesHD, "Movies/BluRay"); + caps.Categories.AddCategoryMapping("cat[]=19&tags=XviD", TorznabCatType.MoviesSD, "Movies/XviD"); + caps.Categories.AddCategoryMapping("cat[]=19&tags=DVDRiP", TorznabCatType.MoviesSD, "Movies/DVDRiP"); + caps.Categories.AddCategoryMapping("cat[]=19&tags=DVD", TorznabCatType.MoviesSD, "Movies/DVD"); + caps.Categories.AddCategoryMapping("cat[]=19&tags=DVDR", TorznabCatType.MoviesSD, "Movies/DVDR"); + caps.Categories.AddCategoryMapping("cat[]=19&tags=WMV", TorznabCatType.Movies, "Movies/WMV"); + caps.Categories.AddCategoryMapping("cat[]=19&tags=CAM", TorznabCatType.Movies, "Movies/CAM"); + caps.Categories.AddCategoryMapping("cat[]=19&tags=DolbyVision", TorznabCatType.Movies, "Movies/DolbyVision"); // Music - AddCategoryMapping("cat[]=6", TorznabCatType.Audio, "Music"); - AddCategoryMapping("cat[]=6&tags=MP3", TorznabCatType.AudioMP3, "Music/MP3"); - AddCategoryMapping("cat[]=6&tags=V2", TorznabCatType.AudioMP3, "Music/V2"); - AddCategoryMapping("cat[]=6&tags=FLAC", TorznabCatType.AudioLossless, "Music/FLAC"); - AddCategoryMapping("cat[]=6&tags=320kbps", TorznabCatType.AudioMP3, "Music/320kbps"); + caps.Categories.AddCategoryMapping("cat[]=6", TorznabCatType.Audio, "Music"); + caps.Categories.AddCategoryMapping("cat[]=6&tags=MP3", TorznabCatType.AudioMP3, "Music/MP3"); + caps.Categories.AddCategoryMapping("cat[]=6&tags=V2", TorznabCatType.AudioMP3, "Music/V2"); + caps.Categories.AddCategoryMapping("cat[]=6&tags=FLAC", TorznabCatType.AudioLossless, "Music/FLAC"); + caps.Categories.AddCategoryMapping("cat[]=6&tags=320kbps", TorznabCatType.AudioMP3, "Music/320kbps"); // TV - AddCategoryMapping("cat[]=7", TorznabCatType.TV, "TV"); - AddCategoryMapping("cat[]=7&tags=1080p", TorznabCatType.TVHD, "TV/1080p"); - AddCategoryMapping("cat[]=7&tags=720p", TorznabCatType.TVHD, "TV/720p"); - AddCategoryMapping("cat[]=7&tags=2160p", TorznabCatType.TVUHD, "TV/2160p"); - AddCategoryMapping("cat[]=7&tags=x264", TorznabCatType.TVHD, "TV/x264"); - AddCategoryMapping("cat[]=7&tags=x265", TorznabCatType.TVHD, "TV/x265"); - AddCategoryMapping("cat[]=7&tags=HDTV", TorznabCatType.TVHD, "TV/HDTV"); - AddCategoryMapping("cat[]=7&tags=BluRay", TorznabCatType.TVHD, "TV/BluRay"); - AddCategoryMapping("cat[]=7&tags=Documentary", TorznabCatType.TVDocumentary, "TV/Documentary"); - AddCategoryMapping("cat[]=7&tags=PDTV", TorznabCatType.TVSD, "TV/PDTV"); - AddCategoryMapping("cat[]=7&tags=DolbyVision", TorznabCatType.TVUHD, "TV/DolbyVision"); - AddCategoryMapping("cat[]=7&tags=DVDRiP", TorznabCatType.TVSD, "TV/DVDRiP"); - AddCategoryMapping("cat[]=7&tags=XviD", TorznabCatType.TVSD, "TV/XviD"); - AddCategoryMapping("cat[]=7&tags=DVD", TorznabCatType.TVSD, "TV/DVD"); - AddCategoryMapping("cat[]=7&tags=HD-DVD", TorznabCatType.TVSD, "TV/HD-DVD"); + caps.Categories.AddCategoryMapping("cat[]=7", TorznabCatType.TV, "TV"); + caps.Categories.AddCategoryMapping("cat[]=7&tags=1080p", TorznabCatType.TVHD, "TV/1080p"); + caps.Categories.AddCategoryMapping("cat[]=7&tags=720p", TorznabCatType.TVHD, "TV/720p"); + caps.Categories.AddCategoryMapping("cat[]=7&tags=2160p", TorznabCatType.TVUHD, "TV/2160p"); + caps.Categories.AddCategoryMapping("cat[]=7&tags=x264", TorznabCatType.TVHD, "TV/x264"); + caps.Categories.AddCategoryMapping("cat[]=7&tags=x265", TorznabCatType.TVHD, "TV/x265"); + caps.Categories.AddCategoryMapping("cat[]=7&tags=HDTV", TorznabCatType.TVHD, "TV/HDTV"); + caps.Categories.AddCategoryMapping("cat[]=7&tags=BluRay", TorznabCatType.TVHD, "TV/BluRay"); + caps.Categories.AddCategoryMapping("cat[]=7&tags=Documentary", TorznabCatType.TVDocumentary, "TV/Documentary"); + caps.Categories.AddCategoryMapping("cat[]=7&tags=PDTV", TorznabCatType.TVSD, "TV/PDTV"); + caps.Categories.AddCategoryMapping("cat[]=7&tags=DolbyVision", TorznabCatType.TVUHD, "TV/DolbyVision"); + caps.Categories.AddCategoryMapping("cat[]=7&tags=DVDRiP", TorznabCatType.TVSD, "TV/DVDRiP"); + caps.Categories.AddCategoryMapping("cat[]=7&tags=XviD", TorznabCatType.TVSD, "TV/XviD"); + caps.Categories.AddCategoryMapping("cat[]=7&tags=DVD", TorznabCatType.TVSD, "TV/DVD"); + caps.Categories.AddCategoryMapping("cat[]=7&tags=HD-DVD", TorznabCatType.TVSD, "TV/HD-DVD"); // XXX - AddCategoryMapping("cat[]=51", TorznabCatType.XXX, "XXX"); - AddCategoryMapping("cat[]=51&tags=1080p", TorznabCatType.XXXx264, "XXX/1080p"); - AddCategoryMapping("cat[]=51&tags=720p", TorznabCatType.XXXx264, "XXX/720p"); - AddCategoryMapping("cat[]=51&tags=2160p", TorznabCatType.XXXUHD, "XXX/2160p"); - AddCategoryMapping("cat[]=51&tags=x264", TorznabCatType.XXXx264, "XXX/x264"); - AddCategoryMapping("cat[]=51&tags=x265", TorznabCatType.XXXx264, "XXX/x265"); - AddCategoryMapping("cat[]=51&tags=XviD", TorznabCatType.XXXXviD, "XXX/XviD"); - AddCategoryMapping("cat[]=51&tags=DVDRiP", TorznabCatType.XXXDVD, "XXX/DVDRiP"); + caps.Categories.AddCategoryMapping("cat[]=51", TorznabCatType.XXX, "XXX"); + caps.Categories.AddCategoryMapping("cat[]=51&tags=1080p", TorznabCatType.XXXx264, "XXX/1080p"); + caps.Categories.AddCategoryMapping("cat[]=51&tags=720p", TorznabCatType.XXXx264, "XXX/720p"); + caps.Categories.AddCategoryMapping("cat[]=51&tags=2160p", TorznabCatType.XXXUHD, "XXX/2160p"); + caps.Categories.AddCategoryMapping("cat[]=51&tags=x264", TorznabCatType.XXXx264, "XXX/x264"); + caps.Categories.AddCategoryMapping("cat[]=51&tags=x265", TorznabCatType.XXXx264, "XXX/x265"); + caps.Categories.AddCategoryMapping("cat[]=51&tags=XviD", TorznabCatType.XXXXviD, "XXX/XviD"); + caps.Categories.AddCategoryMapping("cat[]=51&tags=DVDRiP", TorznabCatType.XXXDVD, "XXX/DVDRiP"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/PrivateHD.cs b/src/Jackett.Common/Indexers/PrivateHD.cs index d18432563..7cc0943c5 100644 --- a/src/Jackett.Common/Indexers/PrivateHD.cs +++ b/src/Jackett.Common/Indexers/PrivateHD.cs @@ -16,38 +16,46 @@ namespace Jackett.Common.Indexers public override string Description => "BitTorrent site for High Quality, High Definition (HD) movies and TV Shows"; public override string SiteLink { get; protected set; } = "https://privatehd.to/"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + public PrivateHD(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, - ICacheService cs) - : base( - caps: new TorznabCapabilities - { - LimitsDefault = 50, - LimitsMax = 50, - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId, TvSearchParam.TvdbId, TvSearchParam.Genre - }, - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.TmdbId, MovieSearchParam.Genre - }, - TvSearchImdbAvailable = true - }, - configService: configService, + ICacheService cs) + : base(configService: configService, client: wc, logger: l, p: ps, cs: cs ) { - AddCategoryMapping(1, TorznabCatType.Movies); - AddCategoryMapping(1, TorznabCatType.MoviesUHD); - AddCategoryMapping(1, TorznabCatType.MoviesHD); - AddCategoryMapping(1, TorznabCatType.MoviesSD); - AddCategoryMapping(2, TorznabCatType.TV); - AddCategoryMapping(2, TorznabCatType.TVUHD); - AddCategoryMapping(2, TorznabCatType.TVHD); - AddCategoryMapping(2, TorznabCatType.TVSD); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + LimitsDefault = 50, + LimitsMax = 50, + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId, TvSearchParam.TvdbId, TvSearchParam.Genre + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.TmdbId, MovieSearchParam.Genre + }, + TvSearchImdbAvailable = true + }; + + caps.Categories.AddCategoryMapping(1, TorznabCatType.Movies); + caps.Categories.AddCategoryMapping(1, TorznabCatType.MoviesUHD); + caps.Categories.AddCategoryMapping(1, TorznabCatType.MoviesHD); + caps.Categories.AddCategoryMapping(1, TorznabCatType.MoviesSD); + caps.Categories.AddCategoryMapping(2, TorznabCatType.TV); + caps.Categories.AddCategoryMapping(2, TorznabCatType.TVUHD); + caps.Categories.AddCategoryMapping(2, TorznabCatType.TVHD); + caps.Categories.AddCategoryMapping(2, TorznabCatType.TVSD); + + return caps; } } } diff --git a/src/Jackett.Common/Indexers/RarBG.cs b/src/Jackett.Common/Indexers/RarBG.cs index 090968e41..0f6aebfbb 100644 --- a/src/Jackett.Common/Indexers/RarBG.cs +++ b/src/Jackett.Common/Indexers/RarBG.cs @@ -29,6 +29,8 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "public"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + // API doc: https://torrentapi.org/apidocs_v2.txt?app_id=Jackett private string ApiEndpoint => ((StringConfigurationItem)configData.GetDynamic("apiEndpoint")).Value; private readonly TimeSpan TokenDuration = TimeSpan.FromMinutes(14); // 15 minutes expiration @@ -41,24 +43,7 @@ namespace Jackett.Common.Indexers public RarBG(IIndexerConfigurationService configService, Utils.Clients.WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId, TvSearchParam.TmdbId, TvSearchParam.TvdbId - }, - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.TmdbId - }, - MusicSearchParams = new List - { - MusicSearchParam.Q - }, - TvSearchImdbAvailable = true - }, - configService: configService, + : base(configService: configService, client: wc, logger: l, p: ps, @@ -79,35 +64,57 @@ namespace Jackett.Common.Indexers { Value = "last" }; configData.AddDynamic("sort", sort); - //AddCategoryMapping(4, TorznabCatType.XXX, "XXX (18+)"); // 3x is not supported by API #11848 - AddCategoryMapping(14, TorznabCatType.MoviesSD, "Movies/XVID"); - AddCategoryMapping(17, TorznabCatType.MoviesSD, "Movies/x264"); - AddCategoryMapping(18, TorznabCatType.TVSD, "TV Episodes"); - AddCategoryMapping(23, TorznabCatType.AudioMP3, "Music/MP3"); - AddCategoryMapping(25, TorznabCatType.AudioLossless, "Music/FLAC"); - AddCategoryMapping(27, TorznabCatType.PCGames, "Games/PC ISO"); - AddCategoryMapping(28, TorznabCatType.PCGames, "Games/PC RIP"); - AddCategoryMapping(32, TorznabCatType.ConsoleXBox360, "Games/XBOX-360"); - AddCategoryMapping(33, TorznabCatType.PCISO, "Software/PC ISO"); - AddCategoryMapping(40, TorznabCatType.ConsolePS3, "Games/PS3"); - AddCategoryMapping(41, TorznabCatType.TVHD, "TV HD Episodes"); - AddCategoryMapping(42, TorznabCatType.MoviesBluRay, "Movies/Full BD"); - AddCategoryMapping(44, TorznabCatType.MoviesHD, "Movies/x264/1080"); - AddCategoryMapping(45, TorznabCatType.MoviesHD, "Movies/x264/720"); - AddCategoryMapping(46, TorznabCatType.MoviesBluRay, "Movies/BD Remux"); - AddCategoryMapping(47, TorznabCatType.Movies3D, "Movies/x264/3D"); - AddCategoryMapping(48, TorznabCatType.MoviesHD, "Movies/XVID/720"); - AddCategoryMapping(49, TorznabCatType.TVUHD, "TV UHD Episodes"); + _appId = "ttekcaJ_" + EnvironmentUtil.JackettVersion(); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId, TvSearchParam.TmdbId, TvSearchParam.TvdbId + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.TmdbId + }, + MusicSearchParams = new List + { + MusicSearchParam.Q + }, + TvSearchImdbAvailable = true + }; + + //caps.Categories.AddCategoryMapping(4, TorznabCatType.XXX, "XXX (18+)"); // 3x is not supported by API #11848 + caps.Categories.AddCategoryMapping(14, TorznabCatType.MoviesSD, "Movies/XVID"); + caps.Categories.AddCategoryMapping(17, TorznabCatType.MoviesSD, "Movies/x264"); + caps.Categories.AddCategoryMapping(18, TorznabCatType.TVSD, "TV Episodes"); + caps.Categories.AddCategoryMapping(23, TorznabCatType.AudioMP3, "Music/MP3"); + caps.Categories.AddCategoryMapping(25, TorznabCatType.AudioLossless, "Music/FLAC"); + caps.Categories.AddCategoryMapping(27, TorznabCatType.PCGames, "Games/PC ISO"); + caps.Categories.AddCategoryMapping(28, TorznabCatType.PCGames, "Games/PC RIP"); + caps.Categories.AddCategoryMapping(32, TorznabCatType.ConsoleXBox360, "Games/XBOX-360"); + caps.Categories.AddCategoryMapping(33, TorznabCatType.PCISO, "Software/PC ISO"); + caps.Categories.AddCategoryMapping(40, TorznabCatType.ConsolePS3, "Games/PS3"); + caps.Categories.AddCategoryMapping(41, TorznabCatType.TVHD, "TV HD Episodes"); + caps.Categories.AddCategoryMapping(42, TorznabCatType.MoviesBluRay, "Movies/Full BD"); + caps.Categories.AddCategoryMapping(44, TorznabCatType.MoviesHD, "Movies/x264/1080"); + caps.Categories.AddCategoryMapping(45, TorznabCatType.MoviesHD, "Movies/x264/720"); + caps.Categories.AddCategoryMapping(46, TorznabCatType.MoviesBluRay, "Movies/BD Remux"); + caps.Categories.AddCategoryMapping(47, TorznabCatType.Movies3D, "Movies/x264/3D"); + caps.Categories.AddCategoryMapping(48, TorznabCatType.MoviesHD, "Movies/XVID/720"); + caps.Categories.AddCategoryMapping(49, TorznabCatType.TVUHD, "TV UHD Episodes"); // torrentapi.org returns "Movies/TV-UHD-episodes" for some reason // possibly because thats what the category is called on the /top100.php page - AddCategoryMapping(49, TorznabCatType.TVUHD, "Movies/TV-UHD-episodes"); - AddCategoryMapping(50, TorznabCatType.MoviesUHD, "Movies/x264/4k"); - AddCategoryMapping(51, TorznabCatType.MoviesUHD, "Movies/x265/4k"); - AddCategoryMapping(52, TorznabCatType.MoviesUHD, "Movs/x265/4k/HDR"); - AddCategoryMapping(53, TorznabCatType.ConsolePS4, "Games/PS4"); - AddCategoryMapping(54, TorznabCatType.MoviesHD, "Movies/x265/1080"); + caps.Categories.AddCategoryMapping(49, TorznabCatType.TVUHD, "Movies/TV-UHD-episodes"); + caps.Categories.AddCategoryMapping(50, TorznabCatType.MoviesUHD, "Movies/x264/4k"); + caps.Categories.AddCategoryMapping(51, TorznabCatType.MoviesUHD, "Movies/x265/4k"); + caps.Categories.AddCategoryMapping(52, TorznabCatType.MoviesUHD, "Movs/x265/4k/HDR"); + caps.Categories.AddCategoryMapping(53, TorznabCatType.ConsolePS4, "Games/PS4"); + caps.Categories.AddCategoryMapping(54, TorznabCatType.MoviesHD, "Movies/x265/1080"); - _appId = "ttekcaJ_" + EnvironmentUtil.JackettVersion(); + return caps; } public override void LoadValuesFromJson(JToken jsonConfig, bool useProtectionService = false) diff --git a/src/Jackett.Common/Indexers/Redacted.cs b/src/Jackett.Common/Indexers/Redacted.cs index 86311ccc2..310634cf1 100644 --- a/src/Jackett.Common/Indexers/Redacted.cs +++ b/src/Jackett.Common/Indexers/Redacted.cs @@ -20,27 +20,12 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + protected override string DownloadUrl => SiteLink + "ajax.php?action=download&usetoken=" + (useTokens ? "1" : "0") + "&id="; - public Redacted(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, - ICacheService cs) - : base( - caps: new TorznabCapabilities - { - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.Genre - }, - MusicSearchParams = new List - { - MusicSearchParam.Q, MusicSearchParam.Album, MusicSearchParam.Artist, MusicSearchParam.Label, MusicSearchParam.Year, MusicSearchParam.Genre - }, - BookSearchParams = new List - { - BookSearchParam.Q, BookSearchParam.Genre - } - }, - configService: configService, + public Redacted(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) + : base(configService: configService, client: wc, logger: l, p: ps, @@ -52,14 +37,35 @@ namespace Jackett.Common.Indexers ) { 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.Audio, "Comedy"); - AddCategoryMapping(7, TorznabCatType.Books, "Comics"); + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.Genre + }, + MusicSearchParams = new List + { + MusicSearchParam.Q, MusicSearchParam.Album, MusicSearchParam.Artist, MusicSearchParam.Label, MusicSearchParam.Year, MusicSearchParam.Genre + }, + BookSearchParams = new List + { + BookSearchParam.Q, BookSearchParam.Genre + } + }; + + caps.Categories.AddCategoryMapping(1, TorznabCatType.Audio, "Music"); + caps.Categories.AddCategoryMapping(2, TorznabCatType.PC, "Applications"); + caps.Categories.AddCategoryMapping(3, TorznabCatType.Books, "E-Books"); + caps.Categories.AddCategoryMapping(4, TorznabCatType.AudioAudiobook, "Audiobooks"); + caps.Categories.AddCategoryMapping(5, TorznabCatType.Movies, "E-Learning Videos"); + caps.Categories.AddCategoryMapping(6, TorznabCatType.Audio, "Comedy"); + caps.Categories.AddCategoryMapping(7, TorznabCatType.Books, "Comics"); + + return caps; } protected override async Task> PerformQuery(TorznabQuery query) diff --git a/src/Jackett.Common/Indexers/RetroFlix.cs b/src/Jackett.Common/Indexers/RetroFlix.cs index bcdb5574b..225fce6ed 100644 --- a/src/Jackett.Common/Indexers/RetroFlix.cs +++ b/src/Jackett.Common/Indexers/RetroFlix.cs @@ -1,6 +1,5 @@ using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; -using System.Text; using Jackett.Common.Indexers.Abstract; using Jackett.Common.Models; using Jackett.Common.Services.Interfaces; @@ -23,46 +22,53 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + protected override bool UseP2PReleaseName => true; protected override int minimumSeedTime => 432000; // 120h public RetroFlix(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId - }, - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId - }, - MusicSearchParams = new List - { - MusicSearchParam.Q - }, - BookSearchParams = new List - { - BookSearchParam.Q - } - }, - configService: configService, - client: wc, - logger: l, - p: ps, - cs: cs) + : base(configService: configService, + client: wc, + logger: l, + p: ps, + cs: cs) { // requestDelay for API Limit (1 request per 2 seconds) webclient.requestDelay = 2.1; + } - AddCategoryMapping(401, TorznabCatType.Movies, "Movies"); - AddCategoryMapping(402, TorznabCatType.TV, "TV Series"); - AddCategoryMapping(406, TorznabCatType.AudioVideo, "Music Videos"); - AddCategoryMapping(407, TorznabCatType.TVSport, "Sports"); - AddCategoryMapping(409, TorznabCatType.Books, "Books"); - AddCategoryMapping(408, TorznabCatType.Audio, "HQ Audio"); + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId + }, + MusicSearchParams = new List + { + MusicSearchParam.Q + }, + BookSearchParams = new List + { + BookSearchParam.Q + } + }; + + caps.Categories.AddCategoryMapping(401, TorznabCatType.Movies, "Movies"); + caps.Categories.AddCategoryMapping(402, TorznabCatType.TV, "TV Series"); + caps.Categories.AddCategoryMapping(406, TorznabCatType.AudioVideo, "Music Videos"); + caps.Categories.AddCategoryMapping(407, TorznabCatType.TVSport, "Sports"); + caps.Categories.AddCategoryMapping(409, TorznabCatType.Books, "Books"); + caps.Categories.AddCategoryMapping(408, TorznabCatType.Audio, "HQ Audio"); + + return caps; } } } diff --git a/src/Jackett.Common/Indexers/RevolutionTT.cs b/src/Jackett.Common/Indexers/RevolutionTT.cs index 79b511647..a73cb2750 100644 --- a/src/Jackett.Common/Indexers/RevolutionTT.cs +++ b/src/Jackett.Common/Indexers/RevolutionTT.cs @@ -27,6 +27,8 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string LandingPageURL => SiteLink + "login.php"; private string LoginUrl => SiteLink + "takelogin.php"; private string SearchUrl => SiteLink + "browse.php"; @@ -35,65 +37,71 @@ namespace Jackett.Common.Indexers public RevolutionTT(IIndexerConfigurationService configService, Utils.Clients.WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep - }, - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId - }, - MusicSearchParams = new List - { - MusicSearchParam.Q - }, - BookSearchParams = new List - { - BookSearchParam.Q - } - }, - configService: configService, + : base(configService: configService, client: wc, logger: l, p: ps, cacheService: cs, configData: new ConfigurationDataBasicLogin("For best results, change the 'Torrents per page' setting to 100 in your Profile.")) { - AddCategoryMapping("23", TorznabCatType.TVAnime); - AddCategoryMapping("22", TorznabCatType.PC0day); - AddCategoryMapping("1", TorznabCatType.PCISO); - AddCategoryMapping("36", TorznabCatType.Books); - AddCategoryMapping("36", TorznabCatType.BooksEBook); - AddCategoryMapping("4", TorznabCatType.PCGames); - AddCategoryMapping("21", TorznabCatType.PCGames); - AddCategoryMapping("16", TorznabCatType.ConsolePS3); - AddCategoryMapping("40", TorznabCatType.ConsoleWii); - AddCategoryMapping("39", TorznabCatType.ConsoleXBox360); - AddCategoryMapping("35", TorznabCatType.ConsoleNDS); - AddCategoryMapping("34", TorznabCatType.ConsolePSP); - AddCategoryMapping("2", TorznabCatType.PCMac); - AddCategoryMapping("10", TorznabCatType.MoviesBluRay); - AddCategoryMapping("20", TorznabCatType.MoviesDVD); - AddCategoryMapping("12", TorznabCatType.MoviesHD); - AddCategoryMapping("44", TorznabCatType.MoviesOther); - AddCategoryMapping("11", TorznabCatType.MoviesSD); - AddCategoryMapping("19", TorznabCatType.MoviesSD); - AddCategoryMapping("6", TorznabCatType.Audio); - AddCategoryMapping("8", TorznabCatType.AudioLossless); - AddCategoryMapping("46", TorznabCatType.AudioOther); - AddCategoryMapping("29", TorznabCatType.AudioVideo); - AddCategoryMapping("43", TorznabCatType.TVOther); - AddCategoryMapping("42", TorznabCatType.TVHD); - AddCategoryMapping("45", TorznabCatType.TVOther); - AddCategoryMapping("41", TorznabCatType.TVSD); - AddCategoryMapping("7", TorznabCatType.TVSD); - AddCategoryMapping("9", TorznabCatType.XXX); - AddCategoryMapping("49", TorznabCatType.XXX); - AddCategoryMapping("47", TorznabCatType.XXXDVD); - AddCategoryMapping("48", TorznabCatType.XXX); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId + }, + MusicSearchParams = new List + { + MusicSearchParam.Q + }, + BookSearchParams = new List + { + BookSearchParam.Q + } + }; + + caps.Categories.AddCategoryMapping("23", TorznabCatType.TVAnime); + caps.Categories.AddCategoryMapping("22", TorznabCatType.PC0day); + caps.Categories.AddCategoryMapping("1", TorznabCatType.PCISO); + caps.Categories.AddCategoryMapping("36", TorznabCatType.Books); + caps.Categories.AddCategoryMapping("36", TorznabCatType.BooksEBook); + caps.Categories.AddCategoryMapping("4", TorznabCatType.PCGames); + caps.Categories.AddCategoryMapping("21", TorznabCatType.PCGames); + caps.Categories.AddCategoryMapping("16", TorznabCatType.ConsolePS3); + caps.Categories.AddCategoryMapping("40", TorznabCatType.ConsoleWii); + caps.Categories.AddCategoryMapping("39", TorznabCatType.ConsoleXBox360); + caps.Categories.AddCategoryMapping("35", TorznabCatType.ConsoleNDS); + caps.Categories.AddCategoryMapping("34", TorznabCatType.ConsolePSP); + caps.Categories.AddCategoryMapping("2", TorznabCatType.PCMac); + caps.Categories.AddCategoryMapping("10", TorznabCatType.MoviesBluRay); + caps.Categories.AddCategoryMapping("20", TorznabCatType.MoviesDVD); + caps.Categories.AddCategoryMapping("12", TorznabCatType.MoviesHD); + caps.Categories.AddCategoryMapping("44", TorznabCatType.MoviesOther); + caps.Categories.AddCategoryMapping("11", TorznabCatType.MoviesSD); + caps.Categories.AddCategoryMapping("19", TorznabCatType.MoviesSD); + caps.Categories.AddCategoryMapping("6", TorznabCatType.Audio); + caps.Categories.AddCategoryMapping("8", TorznabCatType.AudioLossless); + caps.Categories.AddCategoryMapping("46", TorznabCatType.AudioOther); + caps.Categories.AddCategoryMapping("29", TorznabCatType.AudioVideo); + caps.Categories.AddCategoryMapping("43", TorznabCatType.TVOther); + caps.Categories.AddCategoryMapping("42", TorznabCatType.TVHD); + caps.Categories.AddCategoryMapping("45", TorznabCatType.TVOther); + caps.Categories.AddCategoryMapping("41", TorznabCatType.TVSD); + caps.Categories.AddCategoryMapping("7", TorznabCatType.TVSD); + caps.Categories.AddCategoryMapping("9", TorznabCatType.XXX); + caps.Categories.AddCategoryMapping("49", TorznabCatType.XXX); + caps.Categories.AddCategoryMapping("47", TorznabCatType.XXXDVD); + caps.Categories.AddCategoryMapping("48", TorznabCatType.XXX); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/RuTracker.cs b/src/Jackett.Common/Indexers/RuTracker.cs index 1880f0047..6d66dc785 100644 --- a/src/Jackett.Common/Indexers/RuTracker.cs +++ b/src/Jackett.Common/Indexers/RuTracker.cs @@ -36,6 +36,7 @@ namespace Jackett.Common.Indexers public override string Language => "ru-RU"; public override string Type => "semi-private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); private new ConfigurationDataRutracker configData => (ConfigurationDataRutracker)base.configData; @@ -47,1339 +48,1345 @@ namespace Jackett.Common.Indexers private string _capCodeField; public RuTracker(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep - }, - MovieSearchParams = new List - { - MovieSearchParam.Q - }, - MusicSearchParams = new List - { - MusicSearchParam.Q - }, - BookSearchParams = new List - { - BookSearchParam.Q - }, - SupportsRawSearch = true - }, - configService: configService, + : base(configService: configService, client: wc, logger: l, p: ps, cacheService: cs, configData: new ConfigurationDataRutracker()) { + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep + }, + MovieSearchParams = new List + { + MovieSearchParam.Q + }, + MusicSearchParams = new List + { + MusicSearchParam.Q + }, + BookSearchParams = new List + { + BookSearchParam.Q + }, + SupportsRawSearch = true + }; + // note: when refreshing the categories use the tracker.php page and NOT the search.php page! - AddCategoryMapping(22, TorznabCatType.Movies, "Наше кино"); - AddCategoryMapping(941, TorznabCatType.Movies, "|- Кино СССР"); - AddCategoryMapping(1666, TorznabCatType.Movies, "|- Детские отечественные фильмы"); - AddCategoryMapping(376, TorznabCatType.Movies, "|- Авторские дебюты"); - AddCategoryMapping(106, TorznabCatType.Movies, "|- Фильмы России и СССР на национальных языках [без перевода]"); - AddCategoryMapping(7, TorznabCatType.MoviesForeign, "Зарубежное кино"); - AddCategoryMapping(187, TorznabCatType.MoviesForeign, "|- Классика мирового кинематографа"); - AddCategoryMapping(2090, TorznabCatType.MoviesForeign, "|- Фильмы до 1990 года"); - AddCategoryMapping(2221, TorznabCatType.MoviesForeign, "|- Фильмы 1991-2000"); - AddCategoryMapping(2091, TorznabCatType.MoviesForeign, "|- Фильмы 2001-2005"); - AddCategoryMapping(2092, TorznabCatType.MoviesForeign, "|- Фильмы 2006-2010"); - AddCategoryMapping(2093, TorznabCatType.MoviesForeign, "|- Фильмы 2011-2015"); - AddCategoryMapping(2200, TorznabCatType.MoviesForeign, "|- Фильмы 2016-2020"); - AddCategoryMapping(1950, TorznabCatType.MoviesForeign, "|- Фильмы 2021-2022"); - AddCategoryMapping(252, TorznabCatType.MoviesForeign, "|- Фильмы 2023"); - AddCategoryMapping(2540, TorznabCatType.MoviesForeign, "|- Фильмы Ближнего Зарубежья"); - AddCategoryMapping(934, TorznabCatType.MoviesForeign, "|- Азиатские фильмы"); - AddCategoryMapping(505, TorznabCatType.MoviesForeign, "|- Индийское кино"); - AddCategoryMapping(212, TorznabCatType.MoviesForeign, "|- Сборники фильмов"); - AddCategoryMapping(2459, TorznabCatType.MoviesForeign, "|- Короткий метр"); - AddCategoryMapping(1235, TorznabCatType.MoviesForeign, "|- Грайндхаус"); - AddCategoryMapping(166, TorznabCatType.MoviesForeign, "|- Зарубежные фильмы без перевода"); - AddCategoryMapping(185, TorznabCatType.Audio, "|- Звуковые дорожки и Переводы"); - AddCategoryMapping(124, TorznabCatType.MoviesOther, "Арт-хаус и авторское кино"); - AddCategoryMapping(1543, TorznabCatType.MoviesOther, "|- Короткий метр (Арт-хаус и авторское кино)"); - AddCategoryMapping(709, TorznabCatType.MoviesOther, "|- Документальные фильмы (Арт-хаус и авторское кино)"); - AddCategoryMapping(1577, TorznabCatType.MoviesOther, "|- Анимация (Арт-хаус и авторское кино)"); - AddCategoryMapping(511, TorznabCatType.TVOther, "Театр"); - AddCategoryMapping(93, TorznabCatType.MoviesDVD, "DVD Video"); - AddCategoryMapping(905, TorznabCatType.MoviesDVD, "|- Классика мирового кинематографа (DVD Video)"); - AddCategoryMapping(101, TorznabCatType.MoviesDVD, "|- Зарубежное кино (DVD Video)"); - AddCategoryMapping(100, TorznabCatType.MoviesDVD, "|- Наше кино (DVD Video)"); - AddCategoryMapping(877, TorznabCatType.MoviesDVD, "|- Фильмы Ближнего Зарубежья (DVD Video)"); - AddCategoryMapping(1576, TorznabCatType.MoviesDVD, "|- Азиатские фильмы (DVD Video)"); - AddCategoryMapping(572, TorznabCatType.MoviesDVD, "|- Арт-хаус и авторское кино (DVD Video)"); - AddCategoryMapping(2220, TorznabCatType.MoviesDVD, "|- Индийское кино (DVD Video)"); - AddCategoryMapping(1670, TorznabCatType.MoviesDVD, "|- Грайндхаус (DVD Video)"); - AddCategoryMapping(2198, TorznabCatType.MoviesHD, "HD Video"); - AddCategoryMapping(1457, TorznabCatType.MoviesUHD, "|- UHD Video"); - AddCategoryMapping(2199, TorznabCatType.MoviesHD, "|- Классика мирового кинематографа (HD Video)"); - AddCategoryMapping(313, TorznabCatType.MoviesHD, "|- Зарубежное кино (HD Video)"); - AddCategoryMapping(312, TorznabCatType.MoviesHD, "|- Наше кино (HD Video)"); - AddCategoryMapping(1247, TorznabCatType.MoviesHD, "|- Фильмы Ближнего Зарубежья (HD Video)"); - AddCategoryMapping(2201, TorznabCatType.MoviesHD, "|- Азиатские фильмы (HD Video)"); - AddCategoryMapping(2339, TorznabCatType.MoviesHD, "|- Арт-хаус и авторское кино (HD Video)"); - AddCategoryMapping(140, TorznabCatType.MoviesHD, "|- Индийское кино (HD Video)"); - AddCategoryMapping(194, TorznabCatType.MoviesHD, "|- Грайндхаус (HD Video)"); - AddCategoryMapping(352, TorznabCatType.Movies3D, "3D/Стерео Кино, Видео, TV и Спорт"); - AddCategoryMapping(549, TorznabCatType.Movies3D, "|- 3D Кинофильмы"); - AddCategoryMapping(1213, TorznabCatType.Movies3D, "|- 3D Мультфильмы"); - AddCategoryMapping(2109, TorznabCatType.Movies3D, "|- 3D Документальные фильмы"); - AddCategoryMapping(514, TorznabCatType.Movies3D, "|- 3D Спорт"); - AddCategoryMapping(2097, TorznabCatType.Movies3D, "|- 3D Ролики, Музыкальное видео, Трейлеры к фильмам"); - AddCategoryMapping(4, TorznabCatType.Movies, "Мультфильмы"); - AddCategoryMapping(84, TorznabCatType.MoviesUHD, "|- Мультфильмы (UHD Video)"); - AddCategoryMapping(2343, TorznabCatType.MoviesHD, "|- Отечественные мультфильмы (HD Video)"); - AddCategoryMapping(930, TorznabCatType.MoviesHD, "|- Иностранные мультфильмы (HD Video)"); - AddCategoryMapping(2365, TorznabCatType.MoviesHD, "|- Иностранные короткометражные мультфильмы (HD Video)"); - AddCategoryMapping(1900, TorznabCatType.MoviesDVD, "|- Отечественные мультфильмы (DVD)"); - AddCategoryMapping(2258, TorznabCatType.MoviesDVD, "|- Иностранные короткометражные мультфильмы (DVD)"); - AddCategoryMapping(521, TorznabCatType.MoviesDVD, "|- Иностранные мультфильмы (DVD)"); - AddCategoryMapping(208, TorznabCatType.Movies, "|- Отечественные мультфильмы"); - AddCategoryMapping(539, TorznabCatType.Movies, "|- Отечественные полнометражные мультфильмы"); - AddCategoryMapping(209, TorznabCatType.MoviesForeign, "|- Иностранные мультфильмы"); - AddCategoryMapping(484, TorznabCatType.MoviesForeign, "|- Иностранные короткометражные мультфильмы"); - AddCategoryMapping(822, TorznabCatType.Movies, "|- Сборники мультфильмов"); - AddCategoryMapping(181, TorznabCatType.Movies, "|- Мультфильмы без перевода"); - AddCategoryMapping(921, TorznabCatType.TV, "Мультсериалы"); - AddCategoryMapping(815, TorznabCatType.TVSD, "|- Мультсериалы (SD Video)"); - AddCategoryMapping(816, TorznabCatType.TVHD, "|- Мультсериалы (DVD Video)"); - AddCategoryMapping(1460, TorznabCatType.TVHD, "|- Мультсериалы (HD Video)"); - AddCategoryMapping(33, TorznabCatType.TVAnime, "Аниме"); - AddCategoryMapping(1106, TorznabCatType.TVAnime, "|- Онгоинги (HD Video)"); - AddCategoryMapping(1105, TorznabCatType.TVAnime, "|- Аниме (HD Video)"); - AddCategoryMapping(599, TorznabCatType.TVAnime, "|- Аниме (DVD)"); - AddCategoryMapping(1389, TorznabCatType.TVAnime, "|- Аниме (основной подраздел)"); - AddCategoryMapping(1391, TorznabCatType.TVAnime, "|- Аниме (плеерный подраздел)"); - AddCategoryMapping(2491, TorznabCatType.TVAnime, "|- Аниме (QC подраздел)"); - AddCategoryMapping(2544, TorznabCatType.TVAnime, "|- Ван-Пис"); - AddCategoryMapping(1642, TorznabCatType.TVAnime, "|- Гандам"); - AddCategoryMapping(1390, TorznabCatType.TVAnime, "|- Наруто"); - AddCategoryMapping(404, TorznabCatType.TVAnime, "|- Покемоны"); - AddCategoryMapping(893, TorznabCatType.TVAnime, "|- Японские мультфильмы"); - AddCategoryMapping(809, TorznabCatType.Audio, "|- Звуковые дорожки (Аниме)"); - AddCategoryMapping(2484, TorznabCatType.TVAnime, "|- Артбуки и журналы (Аниме)"); - AddCategoryMapping(1386, TorznabCatType.TVAnime, "|- Обои, сканы, аватары, арт"); - AddCategoryMapping(1387, TorznabCatType.TVAnime, "|- AMV и другие ролики"); - AddCategoryMapping(9, TorznabCatType.TV, "Русские сериалы"); - AddCategoryMapping(81, TorznabCatType.TVHD, "|- Русские сериалы (HD Video)"); - AddCategoryMapping(920, TorznabCatType.TVSD, "|- Русские сериалы (DVD Video)"); - AddCategoryMapping(80, TorznabCatType.TV, "|- Сельский детектив"); - AddCategoryMapping(1535, TorznabCatType.TV, "|- По законам военного времени"); - AddCategoryMapping(188, TorznabCatType.TV, "|- Московские тайны"); - AddCategoryMapping(91, TorznabCatType.TV, "|- Я знаю твои секреты"); - AddCategoryMapping(990, TorznabCatType.TV, "|- Универ / Универ. Новая общага / СашаТаня"); - AddCategoryMapping(1408, TorznabCatType.TV, "|- Женская версия"); - AddCategoryMapping(175, TorznabCatType.TV, "|- След"); - AddCategoryMapping(79, TorznabCatType.TV, "|- Некрасивая подружка"); - AddCategoryMapping(104, TorznabCatType.TV, "|- Психология преступления"); - AddCategoryMapping(189, TorznabCatType.TVForeign, "Зарубежные сериалы"); - AddCategoryMapping(842, TorznabCatType.TVForeign, "|- Новинки и сериалы в стадии показа"); - AddCategoryMapping(235, TorznabCatType.TVForeign, "|- Сериалы США и Канады"); - AddCategoryMapping(242, TorznabCatType.TVForeign, "|- Сериалы Великобритании и Ирландии"); - AddCategoryMapping(819, TorznabCatType.TVForeign, "|- Скандинавские сериалы"); - AddCategoryMapping(1531, TorznabCatType.TVForeign, "|- Испанские сериалы"); - AddCategoryMapping(721, TorznabCatType.TVForeign, "|- Итальянские сериалы"); - AddCategoryMapping(1102, TorznabCatType.TVForeign, "|- Европейские сериалы"); - AddCategoryMapping(1120, TorznabCatType.TVForeign, "|- Сериалы стран Африки, Ближнего и Среднего Востока"); - AddCategoryMapping(1214, TorznabCatType.TVForeign, "|- Сериалы Австралии и Новой Зеландии"); - AddCategoryMapping(489, TorznabCatType.TVForeign, "|- Сериалы Ближнего Зарубежья"); - AddCategoryMapping(387, TorznabCatType.TVForeign, "|- Сериалы совместного производства нескольких стран"); - AddCategoryMapping(1359, TorznabCatType.TVForeign, "|- Веб-сериалы, Вебизоды к сериалам и Пилотные серии сериалов"); - AddCategoryMapping(184, TorznabCatType.TVForeign, "|- Бесстыжие / Shameless (US)"); - AddCategoryMapping(1171, TorznabCatType.TVForeign, "|- Викинги / Vikings"); - AddCategoryMapping(1417, TorznabCatType.TVForeign, "|- Во все тяжкие / Breaking Bad"); - AddCategoryMapping(625, TorznabCatType.TVForeign, "|- Доктор Хаус / House M.D."); - AddCategoryMapping(1449, TorznabCatType.TVForeign, "|- Игра престолов / Game of Thrones"); - AddCategoryMapping(273, TorznabCatType.TVForeign, "|- Карточный Домик / House of Cards"); - AddCategoryMapping(504, TorznabCatType.TVForeign, "|- Клан Сопрано / The Sopranos"); - AddCategoryMapping(372, TorznabCatType.TVForeign, "|- Сверхъестественное / Supernatural"); - AddCategoryMapping(110, TorznabCatType.TVForeign, "|- Секретные материалы / The X-Files"); - AddCategoryMapping(121, TorznabCatType.TVForeign, "|- Твин пикс / Twin Peaks"); - AddCategoryMapping(507, TorznabCatType.TVForeign, "|- Теория большого взрыва + Детство Шелдона"); - AddCategoryMapping(536, TorznabCatType.TVForeign, "|- Форс-мажоры / Костюмы в законе / Suits"); - AddCategoryMapping(1144, TorznabCatType.TVForeign, "|- Ходячие мертвецы + Бойтесь ходячих мертвецов"); - AddCategoryMapping(173, TorznabCatType.TVForeign, "|- Черное зеркало / Black Mirror"); - AddCategoryMapping(195, TorznabCatType.TVForeign, "|- Для некондиционных раздач"); - AddCategoryMapping(2366, TorznabCatType.TVHD, "Зарубежные сериалы (HD Video)"); - AddCategoryMapping(119, TorznabCatType.TVUHD, "|- Зарубежные сериалы (UHD Video)"); - AddCategoryMapping(1803, TorznabCatType.TVHD, "|- Новинки и сериалы в стадии показа (HD Video)"); - AddCategoryMapping(266, TorznabCatType.TVHD, "|- Сериалы США и Канады (HD Video)"); - AddCategoryMapping(193, TorznabCatType.TVHD, "|- Сериалы Великобритании и Ирландии (HD Video)"); - AddCategoryMapping(1690, TorznabCatType.TVHD, "|- Скандинавские сериалы (HD Video)"); - AddCategoryMapping(1459, TorznabCatType.TVHD, "|- Европейские сериалы (HD Video)"); - AddCategoryMapping(1463, TorznabCatType.TVHD, "|- Сериалы стран Африки, Ближнего и Среднего Востока (HD Video)"); - AddCategoryMapping(825, TorznabCatType.TVHD, "|- Сериалы Австралии и Новой Зеландии (HD Video)"); - AddCategoryMapping(1248, TorznabCatType.TVHD, "|- Сериалы Ближнего Зарубежья (HD Video)"); - AddCategoryMapping(1288, TorznabCatType.TVHD, "|- Сериалы совместного производства нескольких стран (HD Video)"); - AddCategoryMapping(1669, TorznabCatType.TVHD, "|- Викинги / Vikings (HD Video)"); - AddCategoryMapping(2393, TorznabCatType.TVHD, "|- Доктор Хаус / House M.D. (HD Video)"); - AddCategoryMapping(265, TorznabCatType.TVHD, "|- Игра престолов / Game of Thrones (HD Video)"); - AddCategoryMapping(2406, TorznabCatType.TVHD, "|- Карточный домик (HD Video)"); - AddCategoryMapping(2404, TorznabCatType.TVHD, "|- Сверхъестественное / Supernatural (HD Video)"); - AddCategoryMapping(2405, TorznabCatType.TVHD, "|- Секретные материалы / The X-Files (HD Video)"); - AddCategoryMapping(2370, TorznabCatType.TVHD, "|- Твин пикс / Twin Peaks (HD Video)"); - AddCategoryMapping(2396, TorznabCatType.TVHD, "|- Теория Большого Взрыва / The Big Bang Theory (HD Video)"); - AddCategoryMapping(2398, TorznabCatType.TVHD, "|- Ходячие мертвецы + Бойтесь ходячих мертвецов (HD Video)"); - AddCategoryMapping(1949, TorznabCatType.TVHD, "|- Черное зеркало / Black Mirror (HD Video)"); - AddCategoryMapping(1498, TorznabCatType.TVHD, "|- Для некондиционных раздач (HD Video)"); - AddCategoryMapping(911, TorznabCatType.TVForeign, "Сериалы Латинской Америки, Турции и Индии"); - AddCategoryMapping(1493, TorznabCatType.TVForeign, "|- Актёры и актрисы латиноамериканских сериалов"); - AddCategoryMapping(325, TorznabCatType.TVForeign, "|- Сериалы Аргентины"); - AddCategoryMapping(534, TorznabCatType.TVForeign, "|- Сериалы Бразилии"); - AddCategoryMapping(594, TorznabCatType.TVForeign, "|- Сериалы Венесуэлы"); - AddCategoryMapping(1301, TorznabCatType.TVForeign, "|- Сериалы Индии"); - AddCategoryMapping(607, TorznabCatType.TVForeign, "|- Сериалы Колумбии"); - AddCategoryMapping(1574, TorznabCatType.TVForeign, "|- Сериалы Латинской Америки с озвучкой (раздачи папками)"); - AddCategoryMapping(1539, TorznabCatType.TVForeign, "|- Сериалы Латинской Америки с субтитрами"); - AddCategoryMapping(1940, TorznabCatType.TVForeign, "|- Официальные краткие версии сериалов Латинской Америки"); - AddCategoryMapping(694, TorznabCatType.TVForeign, "|- Сериалы Мексики"); - AddCategoryMapping(775, TorznabCatType.TVForeign, "|- Сериалы Перу, Сальвадора, Чили и других стран"); - AddCategoryMapping(781, TorznabCatType.TVForeign, "|- Сериалы совместного производства"); - AddCategoryMapping(718, TorznabCatType.TVForeign, "|- Сериалы США (латиноамериканские)"); - AddCategoryMapping(704, TorznabCatType.TVForeign, "|- Сериалы Турции"); - AddCategoryMapping(1537, TorznabCatType.TVForeign, "|- Для некондиционных раздач"); - AddCategoryMapping(2100, TorznabCatType.TVForeign, "Азиатские сериалы"); - AddCategoryMapping(820, TorznabCatType.TVForeign, "|- Азиатские сериалы (UHD Video)"); - AddCategoryMapping(915, TorznabCatType.TVForeign, "|- Корейские сериалы"); - AddCategoryMapping(1242, TorznabCatType.TVForeign, "|- Корейские сериалы (HD Video)"); - AddCategoryMapping(717, TorznabCatType.TVForeign, "|- Китайские сериалы"); - AddCategoryMapping(1939, TorznabCatType.TVForeign, "|- Японские сериалы"); - AddCategoryMapping(2412, TorznabCatType.TVForeign, "|- Сериалы Таиланда, Индонезии, Сингапура"); - AddCategoryMapping(2102, TorznabCatType.TVForeign, "|- VMV и др. ролики"); - AddCategoryMapping(19, TorznabCatType.TVDocumentary, "СМИ"); - AddCategoryMapping(670, TorznabCatType.TVDocumentary, "Вера и религия"); - AddCategoryMapping(1475, TorznabCatType.TVDocumentary, "|- [Видео Религия] Христианство"); - AddCategoryMapping(2107, TorznabCatType.TVDocumentary, "|- [Видео Религия] Ислам"); - AddCategoryMapping(1453, TorznabCatType.TVDocumentary, "|- [Видео Религия] Культы и новые религиозные движения"); - AddCategoryMapping(294, TorznabCatType.TVDocumentary, "|- [Видео Религия] Религии Индии, Тибета и Восточной Азии"); - AddCategoryMapping(46, TorznabCatType.TVDocumentary, "Документальные фильмы и телепередачи"); - AddCategoryMapping(103, TorznabCatType.TVDocumentary, "|- Документальные (DVD)"); - AddCategoryMapping(671, TorznabCatType.TVDocumentary, "|- [Док] Биографии. Личности и кумиры"); - AddCategoryMapping(2177, TorznabCatType.TVDocumentary, "|- [Док] Кинематограф и мультипликация"); - AddCategoryMapping(656, TorznabCatType.TVDocumentary, "|- [Док] Мастера искусств Театра и Кино"); - AddCategoryMapping(2538, TorznabCatType.TVDocumentary, "|- [Док] Искусство, история искусств"); - AddCategoryMapping(2159, TorznabCatType.TVDocumentary, "|- [Док] Музыка"); - AddCategoryMapping(251, TorznabCatType.TVDocumentary, "|- [Док] Криминальная документалистика"); - AddCategoryMapping(98, TorznabCatType.TVDocumentary, "|- [Док] Тайны века / Спецслужбы / Теории Заговоров"); - AddCategoryMapping(97, TorznabCatType.TVDocumentary, "|- [Док] Военное дело"); - AddCategoryMapping(851, TorznabCatType.TVDocumentary, "|- [Док] Вторая мировая война"); - AddCategoryMapping(2178, TorznabCatType.TVDocumentary, "|- [Док] Аварии / Катастрофы / Катаклизмы"); - AddCategoryMapping(821, TorznabCatType.TVDocumentary, "|- [Док] Авиация"); - AddCategoryMapping(2076, TorznabCatType.TVDocumentary, "|- [Док] Космос"); - AddCategoryMapping(56, TorznabCatType.TVDocumentary, "|- [Док] Научно-популярные фильмы"); - AddCategoryMapping(2123, TorznabCatType.TVDocumentary, "|- [Док] Флора и фауна"); - AddCategoryMapping(876, TorznabCatType.TVDocumentary, "|- [Док] Путешествия и туризм"); - AddCategoryMapping(2139, TorznabCatType.TVDocumentary, "|- [Док] Медицина"); - AddCategoryMapping(2380, TorznabCatType.TVDocumentary, "|- [Док] Социальные ток-шоу"); - AddCategoryMapping(1467, TorznabCatType.TVDocumentary, "|- [Док] Информационно-аналитические и общественно-политические передачи"); - AddCategoryMapping(1469, TorznabCatType.TVDocumentary, "|- [Док] Архитектура и строительство"); - AddCategoryMapping(672, TorznabCatType.TVDocumentary, "|- [Док] Всё о доме, быте и дизайне"); - AddCategoryMapping(249, TorznabCatType.TVDocumentary, "|- [Док] BBC"); - AddCategoryMapping(552, TorznabCatType.TVDocumentary, "|- [Док] Discovery"); - AddCategoryMapping(500, TorznabCatType.TVDocumentary, "|- [Док] National Geographic"); - AddCategoryMapping(2112, TorznabCatType.TVDocumentary, "|- [Док] История: Древний мир / Античность / Средневековье"); - AddCategoryMapping(1327, TorznabCatType.TVDocumentary, "|- [Док] История: Новое и Новейшее время"); - AddCategoryMapping(1468, TorznabCatType.TVDocumentary, "|- [Док] Эпоха СССР"); - AddCategoryMapping(1280, TorznabCatType.TVDocumentary, "|- [Док] Битва экстрасенсов / Теория невероятности / Искатели / Галилео"); - AddCategoryMapping(752, TorznabCatType.TVDocumentary, "|- [Док] Русские сенсации / Программа Максимум / Профессия репортёр"); - AddCategoryMapping(1114, TorznabCatType.TVDocumentary, "|- [Док] Паранормальные явления"); - AddCategoryMapping(2168, TorznabCatType.TVDocumentary, "|- [Док] Альтернативная история и наука"); - AddCategoryMapping(2160, TorznabCatType.TVDocumentary, "|- [Док] Внежанровая документалистика"); - AddCategoryMapping(2176, TorznabCatType.TVDocumentary, "|- [Док] Разное / некондиция"); - AddCategoryMapping(314, TorznabCatType.TVDocumentary, "Документальные (HD Video)"); - AddCategoryMapping(2323, TorznabCatType.TVDocumentary, "|- Информационно-аналитические и общественно-политические (HD Video)"); - AddCategoryMapping(1278, TorznabCatType.TVDocumentary, "|- Биографии. Личности и кумиры (HD Video)"); - AddCategoryMapping(1281, TorznabCatType.TVDocumentary, "|- Военное дело (HD Video)"); - AddCategoryMapping(2110, TorznabCatType.TVDocumentary, "|- Естествознание, наука и техника (HD Video)"); - AddCategoryMapping(979, TorznabCatType.TVDocumentary, "|- Путешествия и туризм (HD Video)"); - AddCategoryMapping(2169, TorznabCatType.TVDocumentary, "|- Флора и фауна (HD Video)"); - AddCategoryMapping(2166, TorznabCatType.TVDocumentary, "|- История (HD Video)"); - AddCategoryMapping(2164, TorznabCatType.TVDocumentary, "|- BBC, Discovery, National Geographic, History Channel, Netflix (HD Video)"); - AddCategoryMapping(2163, TorznabCatType.TVDocumentary, "|- Криминальная документалистика (HD Video)"); - AddCategoryMapping(85, TorznabCatType.TVDocumentary, "|- Некондиционное видео - Документальные (HD Video)"); - AddCategoryMapping(24, TorznabCatType.TVDocumentary, "Развлекательные телепередачи и шоу, приколы и юмор"); - AddCategoryMapping(1959, TorznabCatType.TVOther, "|- [Видео Юмор] Интеллектуальные игры и викторины"); - AddCategoryMapping(939, TorznabCatType.TVOther, "|- [Видео Юмор] Реалити и ток-шоу / номинации / показы"); - AddCategoryMapping(1481, TorznabCatType.TVOther, "|- [Видео Юмор] Детские телешоу"); - AddCategoryMapping(113, TorznabCatType.TVOther, "|- [Видео Юмор] КВН"); - AddCategoryMapping(115, TorznabCatType.TVOther, "|- [Видео Юмор] Пост КВН"); - AddCategoryMapping(882, TorznabCatType.TVOther, "|- [Видео Юмор] Кривое Зеркало / Городок / В Городке"); - AddCategoryMapping(1482, TorznabCatType.TVOther, "|- [Видео Юмор] Ледовые шоу"); - AddCategoryMapping(393, TorznabCatType.TVOther, "|- [Видео Юмор] Музыкальные шоу"); - AddCategoryMapping(1569, TorznabCatType.TVOther, "|- [Видео Юмор] Званый ужин"); - AddCategoryMapping(373, TorznabCatType.TVOther, "|- [Видео Юмор] Хорошие Шутки"); - AddCategoryMapping(1186, TorznabCatType.TVOther, "|- [Видео Юмор] Вечерний Квартал"); - AddCategoryMapping(137, TorznabCatType.TVOther, "|- [Видео Юмор] Фильмы со смешным переводом (пародии)"); - AddCategoryMapping(2537, TorznabCatType.TVOther, "|- [Видео Юмор] Stand-up comedy"); - AddCategoryMapping(532, TorznabCatType.TVOther, "|- [Видео Юмор] Украинские Шоу"); - AddCategoryMapping(827, TorznabCatType.TVOther, "|- [Видео Юмор] Танцевальные шоу, концерты, выступления"); - AddCategoryMapping(1484, TorznabCatType.TVOther, "|- [Видео Юмор] Цирк"); - AddCategoryMapping(1485, TorznabCatType.TVOther, "|- [Видео Юмор] Школа злословия"); - AddCategoryMapping(114, TorznabCatType.TVOther, "|- [Видео Юмор] Сатирики и юмористы"); - AddCategoryMapping(1332, TorznabCatType.TVOther, "|- Юмористические аудиопередачи"); - AddCategoryMapping(1495, TorznabCatType.TVOther, "|- Аудио и видео ролики (Приколы и юмор)"); - AddCategoryMapping(1392, TorznabCatType.TVSport, "XXXII Летние Олимпийские игры 2020"); - AddCategoryMapping(2475, TorznabCatType.TVSport, "|- Легкая атлетика"); - AddCategoryMapping(2493, TorznabCatType.TVSport, "|- Плавание. Прыжки в воду. Синхронное плавание"); - AddCategoryMapping(2113, TorznabCatType.TVSport, "|- Спортивная гимнастика. Художественная гимнастика. Прыжки на батуте"); - AddCategoryMapping(2482, TorznabCatType.TVSport, "|- Велоспорт"); - AddCategoryMapping(2103, TorznabCatType.TVSport, "|- Академическая гребля. Гребля на байдарках и каноэ"); - AddCategoryMapping(2522, TorznabCatType.TVSport, "|- Бокс. Борьба Вольная и Греко-римская. Дзюдо. Карате. Тхэквондо"); - AddCategoryMapping(2485, TorznabCatType.TVSport, "|- Футбол"); - AddCategoryMapping(2486, TorznabCatType.TVSport, "|- Баскетбол. Волейбол. Гандбол. Водное поло. Регби. Хоккей на траве"); - AddCategoryMapping(2479, TorznabCatType.TVSport, "|- Теннис. Настольный теннис. Бадминтон"); - AddCategoryMapping(2089, TorznabCatType.TVSport, "|- Фехтование. Стрельба. Стрельба из лука. Современное пятиборье"); - AddCategoryMapping(1794, TorznabCatType.TVSport, "|- Другие виды спорта"); - AddCategoryMapping(2338, TorznabCatType.TVSport, "|- Обзорные и аналитические программы"); - AddCategoryMapping(1315, TorznabCatType.TVSport, "XXIV Зимние Олимпийские игры 2022"); - AddCategoryMapping(1336, TorznabCatType.TVSport, "|- Биатлон"); - AddCategoryMapping(2171, TorznabCatType.TVSport, "|- Лыжные гонки"); - AddCategoryMapping(1339, TorznabCatType.TVSport, "|- Прыжки на лыжах с трамплина / Лыжное двоеборье"); - AddCategoryMapping(2455, TorznabCatType.TVSport, "|- Горные лыжи / Сноубординг / Фристайл"); - AddCategoryMapping(1434, TorznabCatType.TVSport, "|- Бобслей / Санный спорт / Скелетон"); - AddCategoryMapping(2350, TorznabCatType.TVSport, "|- Конькобежный спорт / Шорт-трек"); - AddCategoryMapping(1472, TorznabCatType.TVSport, "|- Фигурное катание"); - AddCategoryMapping(2068, TorznabCatType.TVSport, "|- Хоккей"); - AddCategoryMapping(2016, TorznabCatType.TVSport, "|- Керлинг"); - AddCategoryMapping(1311, TorznabCatType.TVSport, "|- Обзорные и аналитические программы"); - AddCategoryMapping(255, TorznabCatType.TVSport, "Спортивные турниры, фильмы и передачи"); - AddCategoryMapping(256, TorznabCatType.TVSport, "|- Автоспорт"); - AddCategoryMapping(1986, TorznabCatType.TVSport, "|- Мотоспорт"); - AddCategoryMapping(660, TorznabCatType.TVSport, "|- Формула-1 (2022)"); - AddCategoryMapping(1551, TorznabCatType.TVSport, "|- Формула-1 (2012-2021)"); - AddCategoryMapping(626, TorznabCatType.TVSport, "|- Формула 1 (до 2011 вкл.)"); - AddCategoryMapping(262, TorznabCatType.TVSport, "|- Велоспорт"); - AddCategoryMapping(1326, TorznabCatType.TVSport, "|- Волейбол/Гандбол"); - AddCategoryMapping(978, TorznabCatType.TVSport, "|- Бильярд"); - AddCategoryMapping(1287, TorznabCatType.TVSport, "|- Покер"); - AddCategoryMapping(1188, TorznabCatType.TVSport, "|- Бодибилдинг/Силовые виды спорта"); - AddCategoryMapping(1667, TorznabCatType.TVSport, "|- Бокс"); - AddCategoryMapping(1675, TorznabCatType.TVSport, "|- Классические единоборства"); - AddCategoryMapping(257, TorznabCatType.TVSport, "|- Смешанные единоборства и K-1"); - AddCategoryMapping(875, TorznabCatType.TVSport, "|- Американский футбол"); - AddCategoryMapping(263, TorznabCatType.TVSport, "|- Регби"); - AddCategoryMapping(2073, TorznabCatType.TVSport, "|- Бейсбол"); - AddCategoryMapping(550, TorznabCatType.TVSport, "|- Теннис"); - AddCategoryMapping(2124, TorznabCatType.TVSport, "|- Бадминтон/Настольный теннис"); - AddCategoryMapping(1470, TorznabCatType.TVSport, "|- Гимнастика/Соревнования по танцам"); - AddCategoryMapping(528, TorznabCatType.TVSport, "|- Лёгкая атлетика/Водные виды спорта"); - AddCategoryMapping(486, TorznabCatType.TVSport, "|- Зимние виды спорта"); - AddCategoryMapping(854, TorznabCatType.TVSport, "|- Фигурное катание"); - AddCategoryMapping(2079, TorznabCatType.TVSport, "|- Биатлон"); - AddCategoryMapping(260, TorznabCatType.TVSport, "|- Экстрим"); - AddCategoryMapping(1319, TorznabCatType.TVSport, "|- Спорт (видео)"); - AddCategoryMapping(1608, TorznabCatType.TVSport, "⚽ Футбол"); - AddCategoryMapping(2294, TorznabCatType.TVSport, "|- UHDTV"); - AddCategoryMapping(1229, TorznabCatType.TVSport, "|- Чемпионат Мира 2022 (финальный турнир)"); - AddCategoryMapping(1693, TorznabCatType.TVSport, "|- Чемпионат Мира 2022 (отбор)"); - AddCategoryMapping(2532, TorznabCatType.TVSport, "|- Чемпионат Европы 2020 [2021] (финальный турнир)"); - AddCategoryMapping(136, TorznabCatType.TVSport, "|- Чемпионат Европы 2020 [2021] (отбор)"); - AddCategoryMapping(592, TorznabCatType.TVSport, "|- Лига Наций"); - AddCategoryMapping(2533, TorznabCatType.TVSport, "|- Чемпионат Мира 2018 (игры)"); - AddCategoryMapping(1952, TorznabCatType.TVSport, "|- Чемпионат Мира 2018 (обзорные передачи, документалистика)"); - AddCategoryMapping(1621, TorznabCatType.TVSport, "|- Чемпионаты Мира"); - AddCategoryMapping(2075, TorznabCatType.TVSport, "|- Россия 2022-2023"); - AddCategoryMapping(1668, TorznabCatType.TVSport, "|- Россия 2021-2022"); - AddCategoryMapping(1613, TorznabCatType.TVSport, "|- Россия/СССР"); - AddCategoryMapping(1614, TorznabCatType.TVSport, "|- Англия"); - AddCategoryMapping(1623, TorznabCatType.TVSport, "|- Испания"); - AddCategoryMapping(1615, TorznabCatType.TVSport, "|- Италия"); - AddCategoryMapping(1630, TorznabCatType.TVSport, "|- Германия"); - AddCategoryMapping(2425, TorznabCatType.TVSport, "|- Франция"); - AddCategoryMapping(2514, TorznabCatType.TVSport, "|- Украина"); - AddCategoryMapping(1616, TorznabCatType.TVSport, "|- Другие национальные чемпионаты и кубки"); - AddCategoryMapping(2014, TorznabCatType.TVSport, "|- Международные турниры"); - AddCategoryMapping(1442, TorznabCatType.TVSport, "|- Еврокубки 2022-2023"); - AddCategoryMapping(1491, TorznabCatType.TVSport, "|- Еврокубки 2021-2022"); - AddCategoryMapping(1987, TorznabCatType.TVSport, "|- Еврокубки 2011-2021"); - AddCategoryMapping(1617, TorznabCatType.TVSport, "|- Еврокубки"); - AddCategoryMapping(1620, TorznabCatType.TVSport, "|- Чемпионаты Европы"); - AddCategoryMapping(1998, TorznabCatType.TVSport, "|- Товарищеские турниры и матчи"); - AddCategoryMapping(1343, TorznabCatType.TVSport, "|- Обзорные и аналитические передачи 2018-2022"); - AddCategoryMapping(751, TorznabCatType.TVSport, "|- Обзорные и аналитические передачи"); - AddCategoryMapping(497, TorznabCatType.TVSport, "|- Документальные фильмы (футбол)"); - AddCategoryMapping(1697, TorznabCatType.TVSport, "|- Мини-футбол/Пляжный футбол"); - AddCategoryMapping(2004, TorznabCatType.TVSport, "🏀 Баскетбол"); - AddCategoryMapping(2001, TorznabCatType.TVSport, "|- Международные соревнования"); - AddCategoryMapping(2002, TorznabCatType.TVSport, "|- NBA / NCAA (до 2000 г.)"); - AddCategoryMapping(283, TorznabCatType.TVSport, "|- NBA / NCAA (2000-2010 гг.)"); - AddCategoryMapping(1997, TorznabCatType.TVSport, "|- NBA / NCAA (2010-2023 гг.)"); - AddCategoryMapping(2003, TorznabCatType.TVSport, "|- Европейский клубный баскетбол"); - AddCategoryMapping(2009, TorznabCatType.TVSport, "🏒 Хоккей"); - AddCategoryMapping(2010, TorznabCatType.TVSport, "|- Хоккей с мячом / Бенди"); - AddCategoryMapping(2006, TorznabCatType.TVSport, "|- Международные турниры"); - AddCategoryMapping(2007, TorznabCatType.TVSport, "|- КХЛ"); - AddCategoryMapping(2005, TorznabCatType.TVSport, "|- НХЛ (до 2011/12)"); - AddCategoryMapping(259, TorznabCatType.TVSport, "|- НХЛ (с 2013)"); - AddCategoryMapping(2008, TorznabCatType.TVSport, "|- СССР - Канада"); - AddCategoryMapping(126, TorznabCatType.TVSport, "|- Документальные фильмы и аналитика"); - AddCategoryMapping(845, TorznabCatType.TVSport, "Рестлинг"); - AddCategoryMapping(343, TorznabCatType.TVSport, "|- Professional Wrestling"); - AddCategoryMapping(2111, TorznabCatType.TVSport, "|- Independent Wrestling"); - AddCategoryMapping(1527, TorznabCatType.TVSport, "|- International Wrestling"); - AddCategoryMapping(2069, TorznabCatType.TVSport, "|- Oldschool Wrestling"); - AddCategoryMapping(1323, TorznabCatType.TVSport, "|- Documentary Wrestling"); - AddCategoryMapping(1346, TorznabCatType.TVSport, "Для дооформления раздач"); - AddCategoryMapping(1411, TorznabCatType.TVSport, "|- Сканирование, обработка сканов"); - AddCategoryMapping(21, TorznabCatType.Books, "Книги и журналы (общий раздел)"); - AddCategoryMapping(2157, TorznabCatType.Books, "|- Кино, театр, ТВ, мультипликация, цирк"); - AddCategoryMapping(765, TorznabCatType.Books, "|- Рисунок, графический дизайн"); - AddCategoryMapping(2019, TorznabCatType.Books, "|- Фото и видеосъемка"); - AddCategoryMapping(31, TorznabCatType.BooksMags, "|- Журналы и газеты (общий раздел)"); - AddCategoryMapping(1427, TorznabCatType.Books, "|- Эзотерика, гадания, магия, фен-шуй"); - AddCategoryMapping(2422, TorznabCatType.Books, "|- Астрология"); - AddCategoryMapping(2195, TorznabCatType.Books, "|- Красота. Уход. Домоводство"); - AddCategoryMapping(2521, TorznabCatType.Books, "|- Мода. Стиль. Этикет"); - AddCategoryMapping(2223, TorznabCatType.Books, "|- Путешествия и туризм"); - AddCategoryMapping(2447, TorznabCatType.Books, "|- Знаменитости и кумиры"); - AddCategoryMapping(39, TorznabCatType.Books, "|- Разное (книги)"); - AddCategoryMapping(2086, TorznabCatType.Books, "|- Самиздат, статьи из журналов, фрагменты книг"); - AddCategoryMapping(1101, TorznabCatType.Books, "Для детей, родителей и учителей"); - AddCategoryMapping(745, TorznabCatType.Books, "|- Учебная литература для детского сада и начальной школы (до 4 класса)"); - AddCategoryMapping(1689, TorznabCatType.Books, "|- Учебная литература для старших классов (5-11 класс)"); - AddCategoryMapping(2336, TorznabCatType.Books, "|- Учителям и педагогам"); - AddCategoryMapping(2337, TorznabCatType.Books, "|- Научно-популярная и познавательная литература (для детей)"); - AddCategoryMapping(1353, TorznabCatType.Books, "|- Досуг и творчество"); - AddCategoryMapping(1400, TorznabCatType.Books, "|- Воспитание и развитие"); - AddCategoryMapping(1415, TorznabCatType.Books, "|- Худ. лит-ра для дошкольников и младших классов"); - AddCategoryMapping(2046, TorznabCatType.Books, "|- Худ. лит-ра для средних и старших классов"); - AddCategoryMapping(1802, TorznabCatType.Books, "Спорт, физическая культура, боевые искусства"); - AddCategoryMapping(2189, TorznabCatType.Books, "|- Футбол (книги и журналы)"); - AddCategoryMapping(2190, TorznabCatType.Books, "|- Хоккей (книги и журналы)"); - AddCategoryMapping(2443, TorznabCatType.Books, "|- Игровые виды спорта"); - AddCategoryMapping(1477, TorznabCatType.Books, "|- Легкая атлетика. Плавание. Гимнастика. Тяжелая атлетика. Гребля"); - AddCategoryMapping(669, TorznabCatType.Books, "|- Автоспорт. Мотоспорт. Велоспорт"); - AddCategoryMapping(2196, TorznabCatType.Books, "|- Шахматы. Шашки"); - AddCategoryMapping(2056, TorznabCatType.Books, "|- Боевые искусства, единоборства"); - AddCategoryMapping(1436, TorznabCatType.Books, "|- Экстрим (книги)"); - AddCategoryMapping(2191, TorznabCatType.Books, "|- Физкультура, фитнес, бодибилдинг"); - AddCategoryMapping(2477, TorznabCatType.Books, "|- Спортивная пресса"); - AddCategoryMapping(1680, TorznabCatType.Books, "Гуманитарные науки"); - AddCategoryMapping(1684, TorznabCatType.Books, "|- Искусствоведение. Культурология"); - AddCategoryMapping(2446, TorznabCatType.Books, "|- Фольклор. Эпос. Мифология"); - AddCategoryMapping(2524, TorznabCatType.Books, "|- Литературоведение"); - AddCategoryMapping(2525, TorznabCatType.Books, "|- Лингвистика"); - AddCategoryMapping(995, TorznabCatType.Books, "|- Философия"); - AddCategoryMapping(2022, TorznabCatType.Books, "|- Политология"); - AddCategoryMapping(2471, TorznabCatType.Books, "|- Социология"); - AddCategoryMapping(2375, TorznabCatType.Books, "|- Публицистика, журналистика"); - AddCategoryMapping(764, TorznabCatType.Books, "|- Бизнес, менеджмент"); - AddCategoryMapping(1685, TorznabCatType.Books, "|- Маркетинг"); - AddCategoryMapping(1688, TorznabCatType.Books, "|- Экономика"); - AddCategoryMapping(2472, TorznabCatType.Books, "|- Финансы"); - AddCategoryMapping(1687, TorznabCatType.Books, "|- Юридические науки. Право. Криминалистика"); - AddCategoryMapping(2020, TorznabCatType.Books, "Исторические науки"); - AddCategoryMapping(1349, TorznabCatType.Books, "|- Методология и философия исторической науки"); - AddCategoryMapping(1967, TorznabCatType.Books, "|- Исторические источники (книги, периодика)"); - AddCategoryMapping(1341, TorznabCatType.Books, "|- Исторические источники (документы)"); - AddCategoryMapping(2049, TorznabCatType.Books, "|- Исторические персоны"); - AddCategoryMapping(1681, TorznabCatType.Books, "|- Альтернативные исторические теории"); - AddCategoryMapping(2319, TorznabCatType.Books, "|- Археология"); - AddCategoryMapping(2434, TorznabCatType.Books, "|- Древний мир. Античность"); - AddCategoryMapping(1683, TorznabCatType.Books, "|- Средние века"); - AddCategoryMapping(2444, TorznabCatType.Books, "|- История Нового и Новейшего времени"); - AddCategoryMapping(2427, TorznabCatType.Books, "|- История Европы"); - AddCategoryMapping(2452, TorznabCatType.Books, "|- История Азии и Африки"); - AddCategoryMapping(2445, TorznabCatType.Books, "|- История Америки, Австралии, Океании"); - AddCategoryMapping(2435, TorznabCatType.Books, "|- История России"); - AddCategoryMapping(667, TorznabCatType.Books, "|- История России до 1917 года"); - AddCategoryMapping(2436, TorznabCatType.Books, "|- Эпоха СССР"); - AddCategoryMapping(1335, TorznabCatType.Books, "|- История России после 1991 года"); - AddCategoryMapping(2453, TorznabCatType.Books, "|- История стран бывшего СССР"); - AddCategoryMapping(2320, TorznabCatType.Books, "|- Этнография, антропология"); - AddCategoryMapping(1801, TorznabCatType.Books, "|- Международные отношения. Дипломатия"); - AddCategoryMapping(2023, TorznabCatType.BooksTechnical, "Точные, естественные и инженерные науки"); - AddCategoryMapping(2024, TorznabCatType.BooksTechnical, "|- Авиация / Космонавтика"); - AddCategoryMapping(2026, TorznabCatType.BooksTechnical, "|- Физика"); - AddCategoryMapping(2192, TorznabCatType.BooksTechnical, "|- Астрономия"); - AddCategoryMapping(2027, TorznabCatType.BooksTechnical, "|- Биология / Экология"); - AddCategoryMapping(295, TorznabCatType.BooksTechnical, "|- Химия / Биохимия"); - AddCategoryMapping(2028, TorznabCatType.BooksTechnical, "|- Математика"); - AddCategoryMapping(2029, TorznabCatType.BooksTechnical, "|- География / Геология / Геодезия"); - AddCategoryMapping(1325, TorznabCatType.BooksTechnical, "|- Электроника / Радио"); - AddCategoryMapping(2386, TorznabCatType.BooksTechnical, "|- Схемы и сервис-мануалы (оригинальная документация)"); - AddCategoryMapping(2031, TorznabCatType.BooksTechnical, "|- Архитектура / Строительство / Инженерные сети / Ландшафтный дизайн"); - AddCategoryMapping(2030, TorznabCatType.BooksTechnical, "|- Машиностроение"); - AddCategoryMapping(2526, TorznabCatType.BooksTechnical, "|- Сварка / Пайка / Неразрушающий контроль"); - AddCategoryMapping(2527, TorznabCatType.BooksTechnical, "|- Автоматизация / Робототехника"); - AddCategoryMapping(2254, TorznabCatType.BooksTechnical, "|- Металлургия / Материаловедение"); - AddCategoryMapping(2376, TorznabCatType.BooksTechnical, "|- Механика, сопротивление материалов"); - AddCategoryMapping(2054, TorznabCatType.BooksTechnical, "|- Энергетика / электротехника"); - AddCategoryMapping(770, TorznabCatType.BooksTechnical, "|- Нефтяная, газовая и химическая промышленность"); - AddCategoryMapping(2476, TorznabCatType.BooksTechnical, "|- Сельское хозяйство и пищевая промышленность"); - AddCategoryMapping(2494, TorznabCatType.BooksTechnical, "|- Железнодорожное дело"); - AddCategoryMapping(1528, TorznabCatType.BooksTechnical, "|- Нормативная документация"); - AddCategoryMapping(2032, TorznabCatType.BooksTechnical, "|- Журналы: научные, научно-популярные, радио и др."); - AddCategoryMapping(919, TorznabCatType.Books, "Ноты и Музыкальная литература"); - AddCategoryMapping(944, TorznabCatType.Books, "|- Академическая музыка (Ноты и Media CD)"); - AddCategoryMapping(980, TorznabCatType.Books, "|- Другие направления (Ноты, табулатуры)"); - AddCategoryMapping(946, TorznabCatType.Books, "|- Самоучители и Школы"); - AddCategoryMapping(977, TorznabCatType.Books, "|- Песенники (Songbooks)"); - AddCategoryMapping(2074, TorznabCatType.Books, "|- Музыкальная литература и Теория"); - AddCategoryMapping(2349, TorznabCatType.Books, "|- Музыкальные журналы"); - AddCategoryMapping(768, TorznabCatType.Books, "Военное дело"); - AddCategoryMapping(2099, TorznabCatType.Books, "|- Милитария"); - AddCategoryMapping(2021, TorznabCatType.Books, "|- Военная история"); - AddCategoryMapping(2437, TorznabCatType.Books, "|- История Второй мировой войны"); - AddCategoryMapping(1337, TorznabCatType.Books, "|- Биографии и мемуары военных деятелей"); - AddCategoryMapping(1447, TorznabCatType.Books, "|- Военная техника"); - AddCategoryMapping(2468, TorznabCatType.Books, "|- Стрелковое оружие"); - AddCategoryMapping(2469, TorznabCatType.Books, "|- Учебно-методическая литература"); - AddCategoryMapping(2470, TorznabCatType.Books, "|- Спецслужбы мира"); - AddCategoryMapping(1686, TorznabCatType.Books, "Вера и религия"); - AddCategoryMapping(2215, TorznabCatType.Books, "|- Христианство"); - AddCategoryMapping(2216, TorznabCatType.Books, "|- Ислам"); - AddCategoryMapping(2217, TorznabCatType.Books, "|- Религии Индии, Тибета и Восточной Азии / Иудаизм"); - AddCategoryMapping(2218, TorznabCatType.Books, "|- Нетрадиционные религиозные, духовные и мистические учения"); - AddCategoryMapping(2252, TorznabCatType.Books, "|- Религиоведение. История Религии"); - AddCategoryMapping(2543, TorznabCatType.Books, "|- Атеизм. Научный атеизм"); - AddCategoryMapping(767, TorznabCatType.Books, "Психология"); - AddCategoryMapping(2515, TorznabCatType.Books, "|- Общая и прикладная психология"); - AddCategoryMapping(2516, TorznabCatType.Books, "|- Психотерапия и консультирование"); - AddCategoryMapping(2517, TorznabCatType.Books, "|- Психодиагностика и психокоррекция"); - AddCategoryMapping(2518, TorznabCatType.Books, "|- Социальная психология и психология отношений"); - AddCategoryMapping(2519, TorznabCatType.Books, "|- Тренинг и коучинг"); - AddCategoryMapping(2520, TorznabCatType.Books, "|- Саморазвитие и самосовершенствование"); - AddCategoryMapping(1696, TorznabCatType.Books, "|- Популярная психология"); - AddCategoryMapping(2253, TorznabCatType.Books, "|- Сексология. Взаимоотношения полов (18+)"); - AddCategoryMapping(2033, TorznabCatType.Books, "Коллекционирование, увлечения и хобби"); - AddCategoryMapping(1412, TorznabCatType.Books, "|- Коллекционирование и вспомогательные ист. дисциплины"); - AddCategoryMapping(1446, TorznabCatType.Books, "|- Вышивание"); - AddCategoryMapping(753, TorznabCatType.Books, "|- Вязание"); - AddCategoryMapping(2037, TorznabCatType.Books, "|- Шитье, пэчворк"); - AddCategoryMapping(2224, TorznabCatType.Books, "|- Кружевоплетение"); - AddCategoryMapping(2194, TorznabCatType.Books, "|- Бисероплетение. Ювелирика. Украшения из проволоки."); - AddCategoryMapping(2418, TorznabCatType.Books, "|- Бумажный арт"); - AddCategoryMapping(1410, TorznabCatType.Books, "|- Другие виды декоративно-прикладного искусства"); - AddCategoryMapping(2034, TorznabCatType.Books, "|- Домашние питомцы и аквариумистика"); - AddCategoryMapping(2433, TorznabCatType.Books, "|- Охота и рыбалка"); - AddCategoryMapping(1961, TorznabCatType.Books, "|- Кулинария (книги)"); - AddCategoryMapping(2432, TorznabCatType.Books, "|- Кулинария (газеты и журналы)"); - AddCategoryMapping(565, TorznabCatType.Books, "|- Моделизм"); - AddCategoryMapping(1523, TorznabCatType.Books, "|- Приусадебное хозяйство / Цветоводство"); - AddCategoryMapping(1575, TorznabCatType.Books, "|- Ремонт, частное строительство, дизайн интерьеров"); - AddCategoryMapping(1520, TorznabCatType.Books, "|- Деревообработка"); - AddCategoryMapping(2424, TorznabCatType.Books, "|- Настольные игры"); - AddCategoryMapping(769, TorznabCatType.Books, "|- Прочие хобби и игры"); - AddCategoryMapping(2038, TorznabCatType.Books, "Художественная литература"); - AddCategoryMapping(2043, TorznabCatType.Books, "|- Русская литература"); - AddCategoryMapping(2042, TorznabCatType.Books, "|- Зарубежная литература (до 1900 г.)"); - AddCategoryMapping(2041, TorznabCatType.Books, "|- Зарубежная литература (XX и XXI век)"); - AddCategoryMapping(2044, TorznabCatType.Books, "|- Детектив, боевик"); - AddCategoryMapping(2039, TorznabCatType.Books, "|- Женский роман"); - AddCategoryMapping(2045, TorznabCatType.Books, "|- Отечественная фантастика / фэнтези / мистика"); - AddCategoryMapping(2080, TorznabCatType.Books, "|- Зарубежная фантастика / фэнтези / мистика"); - AddCategoryMapping(2047, TorznabCatType.Books, "|- Приключения"); - AddCategoryMapping(2193, TorznabCatType.Books, "|- Литературные журналы"); - AddCategoryMapping(1037, TorznabCatType.Books, "|- Самиздат и книги, изданные за счет авторов"); - AddCategoryMapping(1418, TorznabCatType.BooksTechnical, "Компьютерная литература"); - AddCategoryMapping(1422, TorznabCatType.BooksTechnical, "|- Программы от Microsoft"); - AddCategoryMapping(1423, TorznabCatType.BooksTechnical, "|- Другие программы"); - AddCategoryMapping(1424, TorznabCatType.BooksTechnical, "|- Mac OS; Linux, FreeBSD и прочие *NIX"); - AddCategoryMapping(1445, TorznabCatType.BooksTechnical, "|- СУБД"); - AddCategoryMapping(1425, TorznabCatType.BooksTechnical, "|- Веб-дизайн и программирование"); - AddCategoryMapping(1426, TorznabCatType.BooksTechnical, "|- Программирование (книги)"); - AddCategoryMapping(1428, TorznabCatType.BooksTechnical, "|- Графика, обработка видео"); - AddCategoryMapping(1429, TorznabCatType.BooksTechnical, "|- Сети / VoIP"); - AddCategoryMapping(1430, TorznabCatType.BooksTechnical, "|- Хакинг и безопасность"); - AddCategoryMapping(1431, TorznabCatType.BooksTechnical, "|- Железо (книги о ПК)"); - AddCategoryMapping(1433, TorznabCatType.BooksTechnical, "|- Инженерные и научные программы (книги)"); - AddCategoryMapping(1432, TorznabCatType.BooksTechnical, "|- Компьютерные журналы и приложения к ним"); - AddCategoryMapping(2202, TorznabCatType.BooksTechnical, "|- Дисковые приложения к игровым журналам"); - AddCategoryMapping(862, TorznabCatType.BooksComics, "Комиксы, манга, ранобэ"); - AddCategoryMapping(2461, TorznabCatType.BooksComics, "|- Комиксы на русском языке"); - AddCategoryMapping(2462, TorznabCatType.BooksComics, "|- Комиксы издательства Marvel"); - AddCategoryMapping(2463, TorznabCatType.BooksComics, "|- Комиксы издательства DC"); - AddCategoryMapping(2464, TorznabCatType.BooksComics, "|- Комиксы других издательств"); - AddCategoryMapping(2473, TorznabCatType.BooksComics, "|- Комиксы на других языках"); - AddCategoryMapping(281, TorznabCatType.BooksComics, "|- Манга (на русском языке)"); - AddCategoryMapping(2465, TorznabCatType.BooksComics, "|- Манга (на иностранных языках)"); - AddCategoryMapping(2458, TorznabCatType.BooksComics, "|- Ранобэ"); - AddCategoryMapping(2048, TorznabCatType.BooksOther, "Коллекции книг и библиотеки"); - AddCategoryMapping(1238, TorznabCatType.BooksOther, "|- Библиотеки (зеркала сетевых библиотек/коллекций)"); - AddCategoryMapping(2055, TorznabCatType.BooksOther, "|- Тематические коллекции (подборки)"); - AddCategoryMapping(754, TorznabCatType.BooksOther, "|- Многопредметные коллекции (подборки)"); - AddCategoryMapping(2114, TorznabCatType.BooksEBook, "Мультимедийные и интерактивные издания"); - AddCategoryMapping(2438, TorznabCatType.BooksEBook, "|- Мультимедийные энциклопедии"); - AddCategoryMapping(2439, TorznabCatType.BooksEBook, "|- Интерактивные обучающие и развивающие материалы"); - AddCategoryMapping(2440, TorznabCatType.BooksEBook, "|- Обучающие издания для детей"); - AddCategoryMapping(2441, TorznabCatType.BooksEBook, "|- Кулинария. Цветоводство. Домоводство"); - AddCategoryMapping(2442, TorznabCatType.BooksEBook, "|- Культура. Искусство. История"); - AddCategoryMapping(2125, TorznabCatType.Books, "Медицина и здоровье"); - AddCategoryMapping(2133, TorznabCatType.Books, "|- Клиническая медицина до 1980 г."); - AddCategoryMapping(2130, TorznabCatType.Books, "|- Клиническая медицина с 1980 по 2000 г."); - AddCategoryMapping(2313, TorznabCatType.Books, "|- Клиническая медицина после 2000 г."); - AddCategoryMapping(2528, TorznabCatType.Books, "|- Научная медицинская периодика (газеты и журналы)"); - AddCategoryMapping(2129, TorznabCatType.Books, "|- Медико-биологические науки"); - AddCategoryMapping(2141, TorznabCatType.Books, "|- Фармация и фармакология"); - AddCategoryMapping(2314, TorznabCatType.Books, "|- Популярная медицинская периодика (газеты и журналы)"); - AddCategoryMapping(2132, TorznabCatType.Books, "|- Нетрадиционная, народная медицина и популярные книги о здоровье"); - AddCategoryMapping(2131, TorznabCatType.Books, "|- Ветеринария, разное"); - AddCategoryMapping(2315, TorznabCatType.Books, "|- Тематические коллекции книг"); - AddCategoryMapping(2362, TorznabCatType.BooksEBook, "Иностранные языки для взрослых"); - AddCategoryMapping(1265, TorznabCatType.BooksEBook, "|- Английский язык (для взрослых)"); - AddCategoryMapping(1266, TorznabCatType.BooksEBook, "|- Немецкий язык"); - AddCategoryMapping(1267, TorznabCatType.BooksEBook, "|- Французский язык"); - AddCategoryMapping(1358, TorznabCatType.BooksEBook, "|- Испанский язык"); - AddCategoryMapping(2363, TorznabCatType.BooksEBook, "|- Итальянский язык"); - AddCategoryMapping(734, TorznabCatType.BooksEBook, "|- Финский язык"); - AddCategoryMapping(1268, TorznabCatType.BooksEBook, "|- Другие европейские языки"); - AddCategoryMapping(1673, TorznabCatType.BooksEBook, "|- Арабский язык"); - AddCategoryMapping(1269, TorznabCatType.BooksEBook, "|- Китайский язык"); - AddCategoryMapping(1270, TorznabCatType.BooksEBook, "|- Японский язык"); - AddCategoryMapping(1275, TorznabCatType.BooksEBook, "|- Другие восточные языки"); - AddCategoryMapping(2364, TorznabCatType.BooksEBook, "|- Русский язык как иностранный"); - AddCategoryMapping(1276, TorznabCatType.BooksEBook, "|- Мультиязычные сборники и курсы"); - AddCategoryMapping(2094, TorznabCatType.BooksEBook, "|- LIM-курсы"); - AddCategoryMapping(1274, TorznabCatType.BooksEBook, "|- Разное (иностранные языки)"); - AddCategoryMapping(1264, TorznabCatType.BooksEBook, "Иностранные языки для детей"); - AddCategoryMapping(2358, TorznabCatType.BooksEBook, "|- Английский язык (для детей)"); - AddCategoryMapping(2359, TorznabCatType.BooksEBook, "|- Другие европейские языки (для детей)"); - AddCategoryMapping(2360, TorznabCatType.BooksEBook, "|- Восточные языки (для детей)"); - AddCategoryMapping(2361, TorznabCatType.BooksEBook, "|- Школьные учебники, ЕГЭ, ОГЭ"); - AddCategoryMapping(2057, TorznabCatType.BooksEBook, "Художественная литература (ин.языки)"); - AddCategoryMapping(2355, TorznabCatType.BooksEBook, "|- Художественная литература на английском языке"); - AddCategoryMapping(2474, TorznabCatType.BooksEBook, "|- Художественная литература на французском языке"); - AddCategoryMapping(2356, TorznabCatType.BooksEBook, "|- Художественная литература на других европейских языках"); - AddCategoryMapping(2357, TorznabCatType.BooksEBook, "|- Художественная литература на восточных языках"); - AddCategoryMapping(2413, TorznabCatType.AudioAudiobook, "Аудиокниги на иностранных языках"); - AddCategoryMapping(1501, TorznabCatType.AudioAudiobook, "|- Аудиокниги на английском языке"); - AddCategoryMapping(1580, TorznabCatType.AudioAudiobook, "|- Аудиокниги на немецком языке"); - AddCategoryMapping(525, TorznabCatType.AudioAudiobook, "|- Аудиокниги на других иностранных языках"); - AddCategoryMapping(610, TorznabCatType.BooksOther, "Видеоуроки и обучающие интерактивные DVD"); - AddCategoryMapping(1568, TorznabCatType.BooksOther, "|- Кулинария"); - AddCategoryMapping(1542, TorznabCatType.BooksOther, "|- Спорт"); - AddCategoryMapping(2335, TorznabCatType.BooksOther, "|- Фитнес - Кардио-Силовые Тренировки"); - AddCategoryMapping(1544, TorznabCatType.BooksOther, "|- Фитнес - Разум и Тело"); - AddCategoryMapping(1546, TorznabCatType.BooksOther, "|- Бодибилдинг"); - AddCategoryMapping(1549, TorznabCatType.BooksOther, "|- Оздоровительные практики"); - AddCategoryMapping(1597, TorznabCatType.BooksOther, "|- Йога"); - AddCategoryMapping(1552, TorznabCatType.BooksOther, "|- Видео- и фотосъёмка"); - AddCategoryMapping(1550, TorznabCatType.BooksOther, "|- Уход за собой"); - AddCategoryMapping(1553, TorznabCatType.BooksOther, "|- Рисование"); - AddCategoryMapping(1554, TorznabCatType.BooksOther, "|- Игра на гитаре"); - AddCategoryMapping(617, TorznabCatType.BooksOther, "|- Ударные инструменты"); - AddCategoryMapping(1555, TorznabCatType.BooksOther, "|- Другие музыкальные инструменты"); - AddCategoryMapping(2017, TorznabCatType.BooksOther, "|- Игра на бас-гитаре"); - AddCategoryMapping(1257, TorznabCatType.BooksOther, "|- Бальные танцы"); - AddCategoryMapping(1258, TorznabCatType.BooksOther, "|- Танец живота"); - AddCategoryMapping(2208, TorznabCatType.BooksOther, "|- Уличные и клубные танцы"); - AddCategoryMapping(677, TorznabCatType.BooksOther, "|- Танцы, разное"); - AddCategoryMapping(1255, TorznabCatType.BooksOther, "|- Охота"); - AddCategoryMapping(1479, TorznabCatType.BooksOther, "|- Рыболовство и подводная охота"); - AddCategoryMapping(1261, TorznabCatType.BooksOther, "|- Фокусы и трюки"); - AddCategoryMapping(614, TorznabCatType.BooksOther, "|- Образование"); - AddCategoryMapping(1583, TorznabCatType.BooksOther, "|- Финансы"); - AddCategoryMapping(1259, TorznabCatType.BooksOther, "|- Продажи, бизнес"); - AddCategoryMapping(2065, TorznabCatType.BooksOther, "|- Беременность, роды, материнство"); - AddCategoryMapping(1254, TorznabCatType.BooksOther, "|- Учебные видео для детей"); - AddCategoryMapping(1260, TorznabCatType.BooksOther, "|- Психология"); - AddCategoryMapping(2209, TorznabCatType.BooksOther, "|- Эзотерика, саморазвитие"); - AddCategoryMapping(2210, TorznabCatType.BooksOther, "|- Пикап, знакомства"); - AddCategoryMapping(1547, TorznabCatType.BooksOther, "|- Строительство, ремонт и дизайн"); - AddCategoryMapping(1548, TorznabCatType.BooksOther, "|- Дерево- и металлообработка"); - AddCategoryMapping(2211, TorznabCatType.BooksOther, "|- Растения и животные"); - AddCategoryMapping(1596, TorznabCatType.BooksOther, "|- Хобби и рукоделие"); - AddCategoryMapping(2135, TorznabCatType.BooksOther, "|- Медицина и стоматология"); - AddCategoryMapping(2140, TorznabCatType.BooksOther, "|- Психотерапия и клиническая психология"); - AddCategoryMapping(2136, TorznabCatType.BooksOther, "|- Массаж"); - AddCategoryMapping(2138, TorznabCatType.BooksOther, "|- Здоровье"); - AddCategoryMapping(615, TorznabCatType.BooksOther, "|- Разное"); - AddCategoryMapping(1581, TorznabCatType.BooksOther, "Боевые искусства (Видеоуроки)"); - AddCategoryMapping(1590, TorznabCatType.BooksOther, "|- Айкидо и айки-дзюцу"); - AddCategoryMapping(1587, TorznabCatType.BooksOther, "|- Вин чун"); - AddCategoryMapping(1594, TorznabCatType.BooksOther, "|- Джиу-джитсу"); - AddCategoryMapping(1591, TorznabCatType.BooksOther, "|- Дзюдо и самбо"); - AddCategoryMapping(1588, TorznabCatType.BooksOther, "|- Каратэ"); - AddCategoryMapping(1585, TorznabCatType.BooksOther, "|- Работа с оружием"); - AddCategoryMapping(1586, TorznabCatType.BooksOther, "|- Русский стиль"); - AddCategoryMapping(2078, TorznabCatType.BooksOther, "|- Рукопашный бой"); - AddCategoryMapping(1929, TorznabCatType.BooksOther, "|- Смешанные стили"); - AddCategoryMapping(1593, TorznabCatType.BooksOther, "|- Ударные стили"); - AddCategoryMapping(1592, TorznabCatType.BooksOther, "|- Ушу"); - AddCategoryMapping(1595, TorznabCatType.BooksOther, "|- Разное"); - AddCategoryMapping(1556, TorznabCatType.BooksTechnical, "Компьютерные видеоуроки и обучающие интерактивные DVD"); - AddCategoryMapping(1560, TorznabCatType.BooksTechnical, "|- Компьютерные сети и безопасность"); - AddCategoryMapping(1991, TorznabCatType.BooksTechnical, "|- Devops"); - AddCategoryMapping(1561, TorznabCatType.BooksTechnical, "|- ОС и серверные программы Microsoft"); - AddCategoryMapping(1653, TorznabCatType.BooksTechnical, "|- Офисные программы Microsoft"); - AddCategoryMapping(1570, TorznabCatType.BooksTechnical, "|- ОС и программы семейства UNIX"); - AddCategoryMapping(1654, TorznabCatType.BooksTechnical, "|- Adobe Photoshop"); - AddCategoryMapping(1655, TorznabCatType.BooksTechnical, "|- Autodesk Maya"); - AddCategoryMapping(1656, TorznabCatType.BooksTechnical, "|- Autodesk 3ds Max"); - AddCategoryMapping(1930, TorznabCatType.BooksTechnical, "|- Autodesk Softimage (XSI)"); - AddCategoryMapping(1931, TorznabCatType.BooksTechnical, "|- ZBrush"); - AddCategoryMapping(1932, TorznabCatType.BooksTechnical, "|- Flash, Flex и ActionScript"); - AddCategoryMapping(1562, TorznabCatType.BooksTechnical, "|- 2D-графика"); - AddCategoryMapping(1563, TorznabCatType.BooksTechnical, "|- 3D-графика"); - AddCategoryMapping(1626, TorznabCatType.BooksTechnical, "|- Инженерные и научные программы (видеоуроки)"); - AddCategoryMapping(1564, TorznabCatType.BooksTechnical, "|- Web-дизайн"); - AddCategoryMapping(1545, TorznabCatType.BooksTechnical, "|- WEB, SMM, SEO, интернет-маркетинг"); - AddCategoryMapping(1565, TorznabCatType.BooksTechnical, "|- Программирование (видеоуроки)"); - AddCategoryMapping(1559, TorznabCatType.BooksTechnical, "|- Программы для Mac OS"); - AddCategoryMapping(1566, TorznabCatType.BooksTechnical, "|- Работа с видео"); - AddCategoryMapping(1573, TorznabCatType.BooksTechnical, "|- Работа со звуком"); - AddCategoryMapping(1567, TorznabCatType.BooksTechnical, "|- Разное (Компьютерные видеоуроки)"); - AddCategoryMapping(2326, TorznabCatType.AudioAudiobook, "Радиоспектакли, история, мемуары"); - AddCategoryMapping(574, TorznabCatType.AudioAudiobook, "|- [Аудио] Радиоспектакли и литературные чтения"); - AddCategoryMapping(1036, TorznabCatType.AudioAudiobook, "|- [Аудио] Биографии и мемуары"); - AddCategoryMapping(400, TorznabCatType.AudioAudiobook, "|- [Аудио] История, культурология, философия"); - AddCategoryMapping(2389, TorznabCatType.AudioAudiobook, "Фантастика, фэнтези, мистика, ужасы, фанфики"); - AddCategoryMapping(2388, TorznabCatType.AudioAudiobook, "|- [Аудио] Зарубежная фантастика, фэнтези, мистика, ужасы, фанфики"); - AddCategoryMapping(2387, TorznabCatType.AudioAudiobook, "|- [Аудио] Российская фантастика, фэнтези, мистика, ужасы, фанфики"); - AddCategoryMapping(661, TorznabCatType.AudioAudiobook, "|- [Аудио] Любовно-фантастический роман"); - AddCategoryMapping(2348, TorznabCatType.AudioAudiobook, "|- [Аудио] Сборники/разное Фантастика, фэнтези, мистика, ужасы, фанфики"); - AddCategoryMapping(2327, TorznabCatType.AudioAudiobook, "Художественная литература"); - AddCategoryMapping(695, TorznabCatType.AudioAudiobook, "|- [Аудио] Поэзия"); - AddCategoryMapping(399, TorznabCatType.AudioAudiobook, "|- [Аудио] Зарубежная литература"); - AddCategoryMapping(402, TorznabCatType.AudioAudiobook, "|- [Аудио] Русская литература"); - AddCategoryMapping(467, TorznabCatType.AudioAudiobook, "|- [Аудио] Современные любовные романы"); - AddCategoryMapping(490, TorznabCatType.AudioAudiobook, "|- [Аудио] Детская литература"); - AddCategoryMapping(499, TorznabCatType.AudioAudiobook, "|- [Аудио] Зарубежные детективы, приключения, триллеры, боевики"); - AddCategoryMapping(2137, TorznabCatType.AudioAudiobook, "|- [Аудио] Российские детективы, приключения, триллеры, боевики"); - AddCategoryMapping(2127, TorznabCatType.AudioAudiobook, "|- [Аудио] Азиатская подростковая литература, ранобэ, веб-новеллы"); - AddCategoryMapping(2324, TorznabCatType.AudioAudiobook, "Религии"); - AddCategoryMapping(2325, TorznabCatType.AudioAudiobook, "|- [Аудио] Православие"); - AddCategoryMapping(2342, TorznabCatType.AudioAudiobook, "|- [Аудио] Ислам"); - AddCategoryMapping(530, TorznabCatType.AudioAudiobook, "|- [Аудио] Другие традиционные религии"); - AddCategoryMapping(2152, TorznabCatType.AudioAudiobook, "|- [Аудио] Нетрадиционные религиозно-философские учения"); - AddCategoryMapping(2328, TorznabCatType.AudioAudiobook, "Прочая литература"); - AddCategoryMapping(1350, TorznabCatType.AudioAudiobook, "|- [Аудио] Книги по медицине"); - AddCategoryMapping(403, TorznabCatType.AudioAudiobook, "|- [Аудио] Учебная и научно-популярная литература"); - AddCategoryMapping(1279, TorznabCatType.AudioAudiobook, "|- [Аудио] lossless-аудиокниги"); - AddCategoryMapping(716, TorznabCatType.AudioAudiobook, "|- [Аудио] Бизнес"); - AddCategoryMapping(2165, TorznabCatType.AudioAudiobook, "|- [Аудио] Разное"); - AddCategoryMapping(401, TorznabCatType.AudioAudiobook, "|- [Аудио] Некондиционные раздачи"); - AddCategoryMapping(1964, TorznabCatType.Books, "Ремонт и эксплуатация транспортных средств"); - AddCategoryMapping(1973, TorznabCatType.Books, "|- Оригинальные каталоги по подбору запчастей"); - AddCategoryMapping(1974, TorznabCatType.Books, "|- Неоригинальные каталоги по подбору запчастей"); - AddCategoryMapping(1975, TorznabCatType.Books, "|- Программы по диагностике и ремонту"); - AddCategoryMapping(1976, TorznabCatType.Books, "|- Тюнинг, чиптюнинг, настройка"); - AddCategoryMapping(1977, TorznabCatType.Books, "|- Книги по ремонту/обслуживанию/эксплуатации ТС"); - AddCategoryMapping(1203, TorznabCatType.Books, "|- Мультимедийки по ремонту/обслуживанию/эксплуатации ТС"); - AddCategoryMapping(1978, TorznabCatType.Books, "|- Учет, утилиты и прочее"); - AddCategoryMapping(1979, TorznabCatType.Books, "|- Виртуальная автошкола"); - AddCategoryMapping(1980, TorznabCatType.Books, "|- Видеоуроки по вождению транспортных средств"); - AddCategoryMapping(1981, TorznabCatType.Books, "|- Видеоуроки по ремонту транспортных средств"); - AddCategoryMapping(1970, TorznabCatType.Books, "|- Журналы по авто/мото"); - AddCategoryMapping(334, TorznabCatType.Books, "|- Водный транспорт"); - AddCategoryMapping(1202, TorznabCatType.TVDocumentary, "Фильмы и передачи по авто/мото"); - AddCategoryMapping(1985, TorznabCatType.TVDocumentary, "|- Документальные/познавательные фильмы"); - AddCategoryMapping(1982, TorznabCatType.TVOther, "|- Развлекательные передачи"); - AddCategoryMapping(2151, TorznabCatType.TVDocumentary, "|- Top Gear/Топ Гир"); - AddCategoryMapping(1983, TorznabCatType.TVDocumentary, "|- Тест драйв/Обзоры/Автосалоны"); - AddCategoryMapping(1984, TorznabCatType.TVDocumentary, "|- Тюнинг/форсаж"); - AddCategoryMapping(409, TorznabCatType.Audio, "Классическая и современная академическая музыка"); - AddCategoryMapping(560, TorznabCatType.AudioLossless, "|- Полные собрания сочинений и многодисковые издания (lossless)"); - AddCategoryMapping(794, TorznabCatType.AudioLossless, "|- Опера (lossless)"); - AddCategoryMapping(556, TorznabCatType.AudioLossless, "|- Вокальная музыка (lossless)"); - AddCategoryMapping(2307, TorznabCatType.AudioLossless, "|- Хоровая музыка (lossless)"); - AddCategoryMapping(557, TorznabCatType.AudioLossless, "|- Оркестровая музыка (lossless)"); - AddCategoryMapping(2308, TorznabCatType.AudioLossless, "|- Концерт для инструмента с оркестром (lossless)"); - AddCategoryMapping(558, TorznabCatType.AudioLossless, "|- Камерная инструментальная музыка (lossless)"); - AddCategoryMapping(793, TorznabCatType.AudioLossless, "|- Сольная инструментальная музыка (lossless)"); - AddCategoryMapping(1395, TorznabCatType.AudioLossless, "|- Духовные песнопения и музыка (lossless)"); - AddCategoryMapping(1396, TorznabCatType.AudioMP3, "|- Духовные песнопения и музыка (lossy)"); - AddCategoryMapping(436, TorznabCatType.AudioMP3, "|- Полные собрания сочинений и многодисковые издания (lossy)"); - AddCategoryMapping(2309, TorznabCatType.AudioMP3, "|- Вокальная и хоровая музыка (lossy)"); - AddCategoryMapping(2310, TorznabCatType.AudioMP3, "|- Оркестровая музыка (lossy)"); - AddCategoryMapping(2311, TorznabCatType.AudioMP3, "|- Камерная и сольная инструментальная музыка (lossy)"); - AddCategoryMapping(969, TorznabCatType.Audio, "|- Классика в современной обработке, Classical Crossover (lossy и lossless)"); - AddCategoryMapping(1125, TorznabCatType.Audio, "Фольклор, Народная и Этническая музыка"); - AddCategoryMapping(1130, TorznabCatType.AudioMP3, "|- Восточноевропейский фолк (lossy)"); - AddCategoryMapping(1131, TorznabCatType.AudioLossless, "|- Восточноевропейский фолк (lossless)"); - AddCategoryMapping(1132, TorznabCatType.AudioMP3, "|- Западноевропейский фолк (lossy)"); - AddCategoryMapping(1133, TorznabCatType.AudioLossless, "|- Западноевропейский фолк (lossless)"); - AddCategoryMapping(2084, TorznabCatType.Audio, "|- Klezmer и Еврейский фольклор (lossy и lossless)"); - AddCategoryMapping(1128, TorznabCatType.AudioMP3, "|- Этническая музыка Сибири, Средней и Восточной Азии (lossy)"); - AddCategoryMapping(1129, TorznabCatType.AudioLossless, "|- Этническая музыка Сибири, Средней и Восточной Азии (lossless)"); - AddCategoryMapping(1856, TorznabCatType.AudioMP3, "|- Этническая музыка Индии (lossy)"); - AddCategoryMapping(2430, TorznabCatType.AudioLossless, "|- Этническая музыка Индии (lossless)"); - AddCategoryMapping(1283, TorznabCatType.AudioMP3, "|- Этническая музыка Африки и Ближнего Востока (lossy)"); - AddCategoryMapping(2085, TorznabCatType.AudioLossless, "|- Этническая музыка Африки и Ближнего Востока (lossless)"); - AddCategoryMapping(1282, TorznabCatType.Audio, "|- Фольклорная, Народная, Эстрадная музыка Кавказа и Закавказья (lossy и lossless)"); - AddCategoryMapping(1284, TorznabCatType.AudioMP3, "|- Этническая музыка Северной и Южной Америки (lossy)"); - AddCategoryMapping(1285, TorznabCatType.AudioLossless, "|- Этническая музыка Северной и Южной Америки (lossless)"); - AddCategoryMapping(1138, TorznabCatType.Audio, "|- Этническая музыка Австралии, Тихого и Индийского океанов (lossy и lossless)"); - AddCategoryMapping(1136, TorznabCatType.AudioMP3, "|- Country, Bluegrass (lossy)"); - AddCategoryMapping(1137, TorznabCatType.AudioLossless, "|- Country, Bluegrass (lossless)"); - AddCategoryMapping(1849, TorznabCatType.Audio, "New Age, Relax, Meditative & Flamenco"); - AddCategoryMapping(1126, TorznabCatType.AudioMP3, "|- New Age & Meditative (lossy)"); - AddCategoryMapping(1127, TorznabCatType.AudioLossless, "|- New Age & Meditative (lossless)"); - AddCategoryMapping(1134, TorznabCatType.AudioMP3, "|- Фламенко и акустическая гитара (lossy)"); - AddCategoryMapping(1135, TorznabCatType.AudioLossless, "|- Фламенко и акустическая гитара (lossless)"); - AddCategoryMapping(2018, TorznabCatType.Audio, "|- Музыка для бальных танцев (lossy и lossless)"); - AddCategoryMapping(855, TorznabCatType.Audio, "|- Звуки природы"); - AddCategoryMapping(408, TorznabCatType.Audio, "Рэп, Хип-Хоп, R'n'B"); - AddCategoryMapping(441, TorznabCatType.AudioMP3, "|- Отечественный Рэп, Хип-Хоп (lossy)"); - AddCategoryMapping(1173, TorznabCatType.AudioMP3, "|- Отечественный R'n'B (lossy)"); - AddCategoryMapping(1486, TorznabCatType.AudioLossless, "|- Отечественный Рэп, Хип-Хоп, R'n'B (lossless)"); - AddCategoryMapping(1172, TorznabCatType.AudioMP3, "|- Зарубежный R'n'B (lossy)"); - AddCategoryMapping(446, TorznabCatType.AudioMP3, "|- Зарубежный Рэп, Хип-Хоп (lossy)"); - AddCategoryMapping(909, TorznabCatType.AudioLossless, "|- Зарубежный Рэп, Хип-Хоп (lossless)"); - AddCategoryMapping(1665, TorznabCatType.AudioLossless, "|- Зарубежный R'n'B (lossless)"); - AddCategoryMapping(1760, TorznabCatType.Audio, "Reggae, Ska, Dub"); - AddCategoryMapping(1764, TorznabCatType.Audio, "|- Rocksteady, Early Reggae, Ska-Jazz, Trad.Ska (lossy и lossless)"); - AddCategoryMapping(1767, TorznabCatType.AudioMP3, "|- 3rd Wave Ska (lossy)"); - AddCategoryMapping(1769, TorznabCatType.AudioMP3, "|- Ska-Punk, Ska-Core (lossy)"); - AddCategoryMapping(1765, TorznabCatType.AudioMP3, "|- Reggae (lossy)"); - AddCategoryMapping(1771, TorznabCatType.AudioMP3, "|- Dub (lossy)"); - AddCategoryMapping(1770, TorznabCatType.AudioMP3, "|- Dancehall, Raggamuffin (lossy)"); - AddCategoryMapping(1768, TorznabCatType.AudioLossless, "|- Reggae, Dancehall, Dub (lossless)"); - AddCategoryMapping(1774, TorznabCatType.AudioLossless, "|- Ska, Ska-Punk, Ska-Jazz (lossless)"); - AddCategoryMapping(1772, TorznabCatType.Audio, "|- Отечественный Reggae, Dub (lossy и lossless)"); - AddCategoryMapping(2233, TorznabCatType.Audio, "|- Reggae, Ska, Dub (компиляции) (lossy и lossless)"); - AddCategoryMapping(416, TorznabCatType.Audio, "Саундтреки, караоке и мюзиклы"); - AddCategoryMapping(2377, TorznabCatType.AudioVideo, "|- Караоке"); - AddCategoryMapping(468, TorznabCatType.Audio, "|- Минусовки (lossy и lossless)"); - AddCategoryMapping(691, TorznabCatType.AudioLossless, "|- Саундтреки к отечественным фильмам (lossless)"); - AddCategoryMapping(469, TorznabCatType.AudioMP3, "|- Саундтреки к отечественным фильмам (lossy)"); - AddCategoryMapping(786, TorznabCatType.AudioLossless, "|- Саундтреки к зарубежным фильмам (lossless)"); - AddCategoryMapping(785, TorznabCatType.AudioMP3, "|- Саундтреки к зарубежным фильмам (lossy)"); - AddCategoryMapping(1631, TorznabCatType.AudioLossless, "|- Саундтреки к сериалам (lossless)"); - AddCategoryMapping(1499, TorznabCatType.AudioMP3, "|- Саундтреки к сериалам (lossy)"); - AddCategoryMapping(715, TorznabCatType.Audio, "|- Саундтреки к мультфильмам (lossy и lossless)"); - AddCategoryMapping(1388, TorznabCatType.AudioLossless, "|- Саундтреки к аниме (lossless)"); - AddCategoryMapping(282, TorznabCatType.AudioMP3, "|- Саундтреки к аниме (lossy)"); - AddCategoryMapping(796, TorznabCatType.AudioMP3, "|- Неофициальные саундтреки к фильмам и сериалам (lossy)"); - AddCategoryMapping(784, TorznabCatType.AudioLossless, "|- Саундтреки к играм (lossless)"); - AddCategoryMapping(783, TorznabCatType.AudioMP3, "|- Саундтреки к играм (lossy)"); - AddCategoryMapping(2331, TorznabCatType.AudioMP3, "|- Неофициальные саундтреки к играм (lossy)"); - AddCategoryMapping(2431, TorznabCatType.Audio, "|- Аранжировки музыки из игр (lossy и lossless)"); - AddCategoryMapping(880, TorznabCatType.Audio, "|- Мюзикл (lossy и lossless)"); - AddCategoryMapping(1215, TorznabCatType.Audio, "Шансон, Авторская и Военная песня"); - AddCategoryMapping(1220, TorznabCatType.AudioLossless, "|- Отечественный шансон (lossless)"); - AddCategoryMapping(1221, TorznabCatType.AudioMP3, "|- Отечественный шансон (lossy)"); - AddCategoryMapping(1334, TorznabCatType.AudioMP3, "|- Сборники отечественного шансона (lossy)"); - AddCategoryMapping(1216, TorznabCatType.AudioLossless, "|- Военная песня, марши (lossless)"); - AddCategoryMapping(1223, TorznabCatType.AudioMP3, "|- Военная песня, марши (lossy)"); - AddCategoryMapping(1224, TorznabCatType.AudioLossless, "|- Авторская песня (lossless)"); - AddCategoryMapping(1225, TorznabCatType.AudioMP3, "|- Авторская песня (lossy)"); - AddCategoryMapping(1226, TorznabCatType.Audio, "|- Менестрели и ролевики (lossy и lossless)"); - AddCategoryMapping(1842, TorznabCatType.AudioLossless, "Label Packs (lossless)"); - AddCategoryMapping(1648, TorznabCatType.AudioMP3, "Label packs, Scene packs (lossy)"); - AddCategoryMapping(2495, TorznabCatType.Audio, "Отечественная поп-музыка"); - AddCategoryMapping(424, TorznabCatType.AudioMP3, "|- Популярная музыка России и стран бывшего СССР (lossy)"); - AddCategoryMapping(1361, TorznabCatType.AudioMP3, "|- Популярная музыка России и стран бывшего СССР (сборники) (lossy)"); - AddCategoryMapping(425, TorznabCatType.AudioLossless, "|- Популярная музыка России и стран бывшего СССР (lossless)"); - AddCategoryMapping(1635, TorznabCatType.AudioMP3, "|- Советская эстрада, ретро, романсы (lossy)"); - AddCategoryMapping(1634, TorznabCatType.AudioLossless, "|- Советская эстрада, ретро, романсы (lossless)"); - AddCategoryMapping(2497, TorznabCatType.Audio, "Зарубежная поп-музыка"); - AddCategoryMapping(428, TorznabCatType.AudioMP3, "|- Зарубежная поп-музыка (lossy)"); - AddCategoryMapping(1362, TorznabCatType.AudioMP3, "|- Зарубежная поп-музыка (сборники) (lossy)"); - AddCategoryMapping(429, TorznabCatType.AudioLossless, "|- Зарубежная поп-музыка (lossless)"); - AddCategoryMapping(735, TorznabCatType.AudioMP3, "|- Итальянская поп-музыка (lossy)"); - AddCategoryMapping(1753, TorznabCatType.AudioLossless, "|- Итальянская поп-музыка (lossless)"); - AddCategoryMapping(2232, TorznabCatType.AudioMP3, "|- Латиноамериканская поп-музыка (lossy)"); - AddCategoryMapping(714, TorznabCatType.AudioLossless, "|- Латиноамериканская поп-музыка (lossless)"); - AddCategoryMapping(1331, TorznabCatType.AudioMP3, "|- Восточноазиатская поп-музыка (lossy)"); - AddCategoryMapping(1330, TorznabCatType.AudioLossless, "|- Восточноазиатская поп-музыка (lossless)"); - AddCategoryMapping(1219, TorznabCatType.AudioMP3, "|- Зарубежный шансон (lossy)"); - AddCategoryMapping(1452, TorznabCatType.AudioLossless, "|- Зарубежный шансон (lossless)"); - AddCategoryMapping(2275, TorznabCatType.AudioMP3, "|- Easy Listening, Instrumental Pop (lossy)"); - AddCategoryMapping(2270, TorznabCatType.AudioLossless, "|- Easy Listening, Instrumental Pop (lossless)"); - AddCategoryMapping(1351, TorznabCatType.Audio, "|- Сборники песен для детей (lossy и lossless)"); - AddCategoryMapping(2499, TorznabCatType.Audio, "Eurodance, Disco, Hi-NRG"); - AddCategoryMapping(2503, TorznabCatType.AudioMP3, "|- Eurodance, Euro-House, Technopop (lossy)"); - AddCategoryMapping(2504, TorznabCatType.AudioMP3, "|- Eurodance, Euro-House, Technopop (сборники) (lossy)"); - AddCategoryMapping(2502, TorznabCatType.AudioLossless, "|- Eurodance, Euro-House, Technopop (lossless)"); - AddCategoryMapping(2501, TorznabCatType.AudioMP3, "|- Disco, Italo-Disco, Euro-Disco, Hi-NRG (lossy)"); - AddCategoryMapping(2505, TorznabCatType.AudioMP3, "|- Disco, Italo-Disco, Euro-Disco, Hi-NRG (сборники) (lossy)"); - AddCategoryMapping(2500, TorznabCatType.AudioLossless, "|- Disco, Italo-Disco, Euro-Disco, Hi-NRG (lossless)"); - AddCategoryMapping(2267, TorznabCatType.Audio, "Зарубежный джаз"); - AddCategoryMapping(2277, TorznabCatType.AudioLossless, "|- Early Jazz, Swing, Gypsy (lossless)"); - AddCategoryMapping(2278, TorznabCatType.AudioLossless, "|- Bop (lossless)"); - AddCategoryMapping(2279, TorznabCatType.AudioLossless, "|- Mainstream Jazz, Cool (lossless)"); - AddCategoryMapping(2280, TorznabCatType.AudioLossless, "|- Jazz Fusion (lossless)"); - AddCategoryMapping(2281, TorznabCatType.AudioLossless, "|- World Fusion, Ethnic Jazz (lossless)"); - AddCategoryMapping(2282, TorznabCatType.AudioLossless, "|- Avant-Garde Jazz, Free Improvisation (lossless)"); - AddCategoryMapping(2353, TorznabCatType.AudioLossless, "|- Modern Creative, Third Stream (lossless)"); - AddCategoryMapping(2284, TorznabCatType.AudioLossless, "|- Smooth, Jazz-Pop (lossless)"); - AddCategoryMapping(2285, TorznabCatType.AudioLossless, "|- Vocal Jazz (lossless)"); - AddCategoryMapping(2283, TorznabCatType.AudioLossless, "|- Funk, Soul, R&B (lossless)"); - AddCategoryMapping(2286, TorznabCatType.AudioLossless, "|- Сборники зарубежного джаза (lossless)"); - AddCategoryMapping(2287, TorznabCatType.AudioMP3, "|- Зарубежный джаз (lossy)"); - AddCategoryMapping(2268, TorznabCatType.Audio, "Зарубежный блюз"); - AddCategoryMapping(2293, TorznabCatType.AudioLossless, "|- Blues (Texas, Chicago, Modern and Others) (lossless)"); - AddCategoryMapping(2292, TorznabCatType.AudioLossless, "|- Blues-rock (lossless)"); - AddCategoryMapping(2290, TorznabCatType.AudioLossless, "|- Roots, Pre-War Blues, Early R&B, Gospel (lossless)"); - AddCategoryMapping(2289, TorznabCatType.AudioLossless, "|- Зарубежный блюз (сборники; Tribute VA) (lossless)"); - AddCategoryMapping(2288, TorznabCatType.AudioMP3, "|- Зарубежный блюз (lossy)"); - AddCategoryMapping(2269, TorznabCatType.Audio, "Отечественный джаз и блюз"); - AddCategoryMapping(2297, TorznabCatType.AudioLossless, "|- Отечественный джаз (lossless)"); - AddCategoryMapping(2295, TorznabCatType.AudioMP3, "|- Отечественный джаз (lossy)"); - AddCategoryMapping(2296, TorznabCatType.AudioLossless, "|- Отечественный блюз (lossless)"); - AddCategoryMapping(2298, TorznabCatType.AudioMP3, "|- Отечественный блюз (lossy)"); - AddCategoryMapping(1698, TorznabCatType.Audio, "Зарубежный Rock"); - AddCategoryMapping(1702, TorznabCatType.AudioLossless, "|- Classic Rock & Hard Rock (lossless)"); - AddCategoryMapping(1703, TorznabCatType.AudioMP3, "|- Classic Rock & Hard Rock (lossy)"); - AddCategoryMapping(1704, TorznabCatType.AudioLossless, "|- Progressive & Art-Rock (lossless)"); - AddCategoryMapping(1705, TorznabCatType.AudioMP3, "|- Progressive & Art-Rock (lossy)"); - AddCategoryMapping(1706, TorznabCatType.AudioLossless, "|- Folk-Rock (lossless)"); - AddCategoryMapping(1707, TorznabCatType.AudioMP3, "|- Folk-Rock (lossy)"); - AddCategoryMapping(2329, TorznabCatType.AudioLossless, "|- AOR (Melodic Hard Rock, Arena rock) (lossless)"); - AddCategoryMapping(2330, TorznabCatType.AudioMP3, "|- AOR (Melodic Hard Rock, Arena rock) (lossy)"); - AddCategoryMapping(1708, TorznabCatType.AudioLossless, "|- Pop-Rock & Soft Rock (lossless)"); - AddCategoryMapping(1709, TorznabCatType.AudioMP3, "|- Pop-Rock & Soft Rock (lossy)"); - AddCategoryMapping(1710, TorznabCatType.AudioLossless, "|- Instrumental Guitar Rock (lossless)"); - AddCategoryMapping(1711, TorznabCatType.AudioMP3, "|- Instrumental Guitar Rock (lossy)"); - AddCategoryMapping(1712, TorznabCatType.AudioLossless, "|- Rockabilly, Psychobilly, Rock'n'Roll (lossless)"); - AddCategoryMapping(1713, TorznabCatType.AudioMP3, "|- Rockabilly, Psychobilly, Rock'n'Roll (lossy)"); - AddCategoryMapping(731, TorznabCatType.AudioLossless, "|- Сборники зарубежного рока (lossless)"); - AddCategoryMapping(1799, TorznabCatType.AudioMP3, "|- Сборники зарубежного рока (lossy)"); - AddCategoryMapping(1714, TorznabCatType.AudioLossless, "|- Восточноазиатский рок (lossless)"); - AddCategoryMapping(1715, TorznabCatType.AudioMP3, "|- Восточноазиатский рок (lossy)"); - AddCategoryMapping(1716, TorznabCatType.Audio, "Зарубежный Metal"); - AddCategoryMapping(1796, TorznabCatType.AudioLossless, "|- Avant-garde, Experimental Metal (lossless)"); - AddCategoryMapping(1797, TorznabCatType.AudioMP3, "|- Avant-garde, Experimental Metal (lossy)"); - AddCategoryMapping(1719, TorznabCatType.AudioLossless, "|- Black (lossless)"); - AddCategoryMapping(1778, TorznabCatType.AudioMP3, "|- Black (lossy)"); - AddCategoryMapping(1779, TorznabCatType.AudioLossless, "|- Death, Doom (lossless)"); - AddCategoryMapping(1780, TorznabCatType.AudioMP3, "|- Death, Doom (lossy)"); - AddCategoryMapping(1720, TorznabCatType.AudioLossless, "|- Folk, Pagan, Viking (lossless)"); - AddCategoryMapping(798, TorznabCatType.AudioMP3, "|- Folk, Pagan, Viking (lossy)"); - AddCategoryMapping(1724, TorznabCatType.AudioLossless, "|- Gothic Metal (lossless)"); - AddCategoryMapping(1725, TorznabCatType.AudioMP3, "|- Gothic Metal (lossy)"); - AddCategoryMapping(1730, TorznabCatType.AudioLossless, "|- Grind, Brutal Death (lossless)"); - AddCategoryMapping(1731, TorznabCatType.AudioMP3, "|- Grind, Brutal Death (lossy)"); - AddCategoryMapping(1726, TorznabCatType.AudioLossless, "|- Heavy, Power, Progressive (lossless)"); - AddCategoryMapping(1727, TorznabCatType.AudioMP3, "|- Heavy, Power, Progressive (lossy)"); - AddCategoryMapping(1815, TorznabCatType.AudioLossless, "|- Sludge, Stoner, Post-Metal (lossless)"); - AddCategoryMapping(1816, TorznabCatType.AudioMP3, "|- Sludge, Stoner, Post-Metal (lossy)"); - AddCategoryMapping(1728, TorznabCatType.AudioLossless, "|- Thrash, Speed (lossless)"); - AddCategoryMapping(1729, TorznabCatType.AudioMP3, "|- Thrash, Speed (lossy)"); - AddCategoryMapping(2230, TorznabCatType.AudioLossless, "|- Сборники (lossless)"); - AddCategoryMapping(2231, TorznabCatType.AudioMP3, "|- Сборники (lossy)"); - AddCategoryMapping(1732, TorznabCatType.Audio, "Зарубежные Alternative, Punk, Independent"); - AddCategoryMapping(1736, TorznabCatType.AudioLossless, "|- Alternative & Nu-metal (lossless)"); - AddCategoryMapping(1737, TorznabCatType.AudioMP3, "|- Alternative & Nu-metal (lossy)"); - AddCategoryMapping(1738, TorznabCatType.AudioLossless, "|- Punk (lossless)"); - AddCategoryMapping(1739, TorznabCatType.AudioMP3, "|- Punk (lossy)"); - AddCategoryMapping(1740, TorznabCatType.AudioLossless, "|- Hardcore (lossless)"); - AddCategoryMapping(1741, TorznabCatType.AudioMP3, "|- Hardcore (lossy)"); - AddCategoryMapping(1773, TorznabCatType.AudioLossless, "|- Indie Rock, Indie Pop, Dream Pop, Brit-Pop (lossless)"); - AddCategoryMapping(202, TorznabCatType.AudioMP3, "|- Indie Rock, Indie Pop, Dream Pop, Brit-Pop (lossy)"); - AddCategoryMapping(172, TorznabCatType.AudioLossless, "|- Post-Punk, Shoegaze, Garage Rock, Noise Rock (lossless)"); - AddCategoryMapping(236, TorznabCatType.AudioMP3, "|- Post-Punk, Shoegaze, Garage Rock, Noise Rock (lossy)"); - AddCategoryMapping(1742, TorznabCatType.AudioLossless, "|- Post-Rock (lossless)"); - AddCategoryMapping(1743, TorznabCatType.AudioMP3, "|- Post-Rock (lossy)"); - AddCategoryMapping(1744, TorznabCatType.AudioLossless, "|- Industrial & Post-industrial (lossless)"); - AddCategoryMapping(1745, TorznabCatType.AudioMP3, "|- Industrial & Post-industrial (lossy)"); - AddCategoryMapping(1746, TorznabCatType.AudioLossless, "|- Emocore, Post-hardcore, Metalcore (lossless)"); - AddCategoryMapping(1747, TorznabCatType.AudioMP3, "|- Emocore, Post-hardcore, Metalcore (lossy)"); - AddCategoryMapping(1748, TorznabCatType.AudioLossless, "|- Gothic Rock & Dark Folk (lossless)"); - AddCategoryMapping(1749, TorznabCatType.AudioMP3, "|- Gothic Rock & Dark Folk (lossy)"); - AddCategoryMapping(2175, TorznabCatType.AudioLossless, "|- Avant-garde, Experimental Rock (lossless)"); - AddCategoryMapping(2174, TorznabCatType.AudioMP3, "|- Avant-garde, Experimental Rock (lossy)"); - AddCategoryMapping(722, TorznabCatType.Audio, "Отечественный Rock, Metal"); - AddCategoryMapping(737, TorznabCatType.AudioLossless, "|- Rock (lossless)"); - AddCategoryMapping(738, TorznabCatType.AudioMP3, "|- Rock (lossy)"); - AddCategoryMapping(464, TorznabCatType.AudioLossless, "|- Alternative, Punk, Independent (lossless)"); - AddCategoryMapping(463, TorznabCatType.AudioMP3, "|- Alternative, Punk, Independent (lossy)"); - AddCategoryMapping(739, TorznabCatType.AudioLossless, "|- Metal (lossless)"); - AddCategoryMapping(740, TorznabCatType.AudioMP3, "|- Metal (lossy)"); - AddCategoryMapping(951, TorznabCatType.AudioLossless, "|- Rock на языках народов xUSSR (lossless)"); - AddCategoryMapping(952, TorznabCatType.AudioMP3, "|- Rock на языках народов xUSSR (lossy)"); - AddCategoryMapping(1821, TorznabCatType.Audio, "Trance, Goa Trance, Psy-Trance, PsyChill, Ambient, Dub"); - AddCategoryMapping(1844, TorznabCatType.AudioLossless, "|- Goa Trance, Psy-Trance (lossless)"); - AddCategoryMapping(1822, TorznabCatType.AudioMP3, "|- Goa Trance, Psy-Trance (lossy)"); - AddCategoryMapping(1894, TorznabCatType.AudioLossless, "|- PsyChill, Ambient, Dub (lossless)"); - AddCategoryMapping(1895, TorznabCatType.AudioMP3, "|- PsyChill, Ambient, Dub (lossy)"); - AddCategoryMapping(460, TorznabCatType.AudioMP3, "|- Goa Trance, Psy-Trance, PsyChill, Ambient, Dub (Live Sets, Mixes) (lossy)"); - AddCategoryMapping(1818, TorznabCatType.AudioLossless, "|- Trance (lossless)"); - AddCategoryMapping(1819, TorznabCatType.AudioMP3, "|- Trance (lossy)"); - AddCategoryMapping(1847, TorznabCatType.AudioMP3, "|- Trance (Singles, EPs) (lossy)"); - AddCategoryMapping(1824, TorznabCatType.AudioMP3, "|- Trance (Radioshows, Podcasts, Live Sets, Mixes) (lossy)"); - AddCategoryMapping(1807, TorznabCatType.Audio, "House, Techno, Hardcore, Hardstyle, Jumpstyle"); - AddCategoryMapping(1829, TorznabCatType.AudioLossless, "|- Hardcore, Hardstyle, Jumpstyle (lossless)"); - AddCategoryMapping(1830, TorznabCatType.AudioMP3, "|- Hardcore, Hardstyle, Jumpstyle (lossy)"); - AddCategoryMapping(1831, TorznabCatType.AudioMP3, "|- Hardcore, Hardstyle, Jumpstyle (vinyl, web)"); - AddCategoryMapping(1857, TorznabCatType.AudioLossless, "|- House (lossless)"); - AddCategoryMapping(1859, TorznabCatType.AudioMP3, "|- House (Radioshow, Podcast, Liveset, Mixes)"); - AddCategoryMapping(1858, TorznabCatType.AudioMP3, "|- House (lossy)"); - AddCategoryMapping(840, TorznabCatType.AudioMP3, "|- House (Проморелизы, сборники) (lossy)"); - AddCategoryMapping(1860, TorznabCatType.AudioMP3, "|- House (Singles, EPs) (lossy)"); - AddCategoryMapping(1825, TorznabCatType.AudioLossless, "|- Techno (lossless)"); - AddCategoryMapping(1826, TorznabCatType.AudioMP3, "|- Techno (lossy)"); - AddCategoryMapping(1827, TorznabCatType.AudioMP3, "|- Techno (Radioshows, Podcasts, Livesets, Mixes)"); - AddCategoryMapping(1828, TorznabCatType.AudioMP3, "|- Techno (Singles, EPs) (lossy)"); - AddCategoryMapping(1808, TorznabCatType.Audio, "Drum & Bass, Jungle, Breakbeat, Dubstep, IDM, Electro"); - AddCategoryMapping(797, TorznabCatType.AudioLossless, "|- Electro, Electro-Freestyle, Nu Electro (lossless)"); - AddCategoryMapping(1805, TorznabCatType.AudioMP3, "|- Electro, Electro-Freestyle, Nu Electro (lossy)"); - AddCategoryMapping(1832, TorznabCatType.AudioLossless, "|- Drum & Bass, Jungle (lossless)"); - AddCategoryMapping(1833, TorznabCatType.AudioMP3, "|- Drum & Bass, Jungle (lossy)"); - AddCategoryMapping(1834, TorznabCatType.AudioMP3, "|- Drum & Bass, Jungle (Radioshows, Podcasts, Livesets, Mixes)"); - AddCategoryMapping(1836, TorznabCatType.AudioLossless, "|- Breakbeat (lossless)"); - AddCategoryMapping(1837, TorznabCatType.AudioMP3, "|- Breakbeat (lossy)"); - AddCategoryMapping(1839, TorznabCatType.AudioLossless, "|- Dubstep (lossless)"); - AddCategoryMapping(454, TorznabCatType.AudioMP3, "|- Dubstep (lossy)"); - AddCategoryMapping(1838, TorznabCatType.AudioMP3, "|- Breakbeat, Dubstep (Radioshows, Podcasts, Livesets, Mixes)"); - AddCategoryMapping(1840, TorznabCatType.AudioLossless, "|- IDM (lossless)"); - AddCategoryMapping(1841, TorznabCatType.AudioMP3, "|- IDM (lossy)"); - AddCategoryMapping(2229, TorznabCatType.AudioMP3, "|- IDM Discography & Collections (lossy)"); - AddCategoryMapping(1809, TorznabCatType.Audio, "Chillout, Lounge, Downtempo, Trip-Hop"); - AddCategoryMapping(1861, TorznabCatType.AudioLossless, "|- Chillout, Lounge, Downtempo (lossless)"); - AddCategoryMapping(1862, TorznabCatType.AudioMP3, "|- Chillout, Lounge, Downtempo (lossy)"); - AddCategoryMapping(1947, TorznabCatType.AudioLossless, "|- Nu Jazz, Acid Jazz, Future Jazz (lossless)"); - AddCategoryMapping(1946, TorznabCatType.AudioMP3, "|- Nu Jazz, Acid Jazz, Future Jazz (lossy)"); - AddCategoryMapping(1945, TorznabCatType.AudioLossless, "|- Trip Hop, Abstract Hip-Hop (lossless)"); - AddCategoryMapping(1944, TorznabCatType.AudioMP3, "|- Trip Hop, Abstract Hip-Hop (lossy)"); - AddCategoryMapping(1810, TorznabCatType.Audio, "Traditional Electronic, Ambient, Modern Classical, Electroacoustic, Experimental"); - AddCategoryMapping(1864, TorznabCatType.AudioLossless, "|- Traditional Electronic, Ambient (lossless)"); - AddCategoryMapping(1865, TorznabCatType.AudioMP3, "|- Traditional Electronic, Ambient (lossy)"); - AddCategoryMapping(1871, TorznabCatType.AudioLossless, "|- Modern Classical, Electroacoustic (lossless)"); - AddCategoryMapping(1867, TorznabCatType.AudioMP3, "|- Modern Classical, Electroacoustic (lossy)"); - AddCategoryMapping(1869, TorznabCatType.AudioLossless, "|- Experimental (lossless)"); - AddCategoryMapping(1873, TorznabCatType.AudioMP3, "|- Experimental (lossy)"); - AddCategoryMapping(1811, TorznabCatType.Audio, "Industrial, Noise, EBM, Dark Electro, Aggrotech, Cyberpunk, Synthpop, New Wave"); - AddCategoryMapping(1868, TorznabCatType.AudioLossless, "|- EBM, Dark Electro, Aggrotech (lossless)"); - AddCategoryMapping(1875, TorznabCatType.AudioMP3, "|- EBM, Dark Electro, Aggrotech (lossy)"); - AddCategoryMapping(1877, TorznabCatType.AudioLossless, "|- Industrial, Noise (lossless)"); - AddCategoryMapping(1878, TorznabCatType.AudioMP3, "|- Industrial, Noise (lossy)"); - AddCategoryMapping(1907, TorznabCatType.Audio, "|- Cyberpunk, 8-bit, Chiptune (lossy & lossless)"); - AddCategoryMapping(1880, TorznabCatType.AudioLossless, "|- Synthpop, Futurepop, New Wave, Electropop (lossless)"); - AddCategoryMapping(1881, TorznabCatType.AudioMP3, "|- Synthpop, Futurepop, New Wave, Electropop (lossy)"); - AddCategoryMapping(466, TorznabCatType.AudioLossless, "|- Synthwave, Spacesynth, Dreamwave, Retrowave, Outrun (lossless)"); - AddCategoryMapping(465, TorznabCatType.AudioMP3, "|- Synthwave, Spacesynth, Dreamwave, Retrowave, Outrun (lossy)"); - AddCategoryMapping(1866, TorznabCatType.AudioLossless, "|- Darkwave, Neoclassical, Ethereal, Dungeon Synth (lossless)"); - AddCategoryMapping(406, TorznabCatType.AudioMP3, "|- Darkwave, Neoclassical, Ethereal, Dungeon Synth (lossy)"); - AddCategoryMapping(1299, TorznabCatType.Audio, "Hi-Res stereo и многоканальная музыка"); - AddCategoryMapping(1884, TorznabCatType.Audio, "|- Классика и классика в современной обработке (Hi-Res stereo)"); - AddCategoryMapping(1164, TorznabCatType.Audio, "|- Классика и классика в современной обработке (многоканальная музыка)"); - AddCategoryMapping(2513, TorznabCatType.Audio, "|- New Age, Relax, Meditative & Flamenco (Hi-Res stereo и многоканальная музыка)"); - AddCategoryMapping(1397, TorznabCatType.Audio, "|- Саундтреки (Hi-Res stereo и многоканальная музыка)"); - AddCategoryMapping(2512, TorznabCatType.Audio, "|- Музыка разных жанров (Hi-Res stereo и многоканальная музыка)"); - AddCategoryMapping(1885, TorznabCatType.Audio, "|- Поп-музыка (Hi-Res stereo)"); - AddCategoryMapping(1163, TorznabCatType.Audio, "|- Поп-музыка (многоканальная музыка)"); - AddCategoryMapping(2302, TorznabCatType.Audio, "|- Джаз и Блюз (Hi-Res stereo)"); - AddCategoryMapping(2303, TorznabCatType.Audio, "|- Джаз и Блюз (многоканальная музыка)"); - AddCategoryMapping(1755, TorznabCatType.Audio, "|- Рок-музыка (Hi-Res stereo)"); - AddCategoryMapping(1757, TorznabCatType.Audio, "|- Рок-музыка (многоканальная музыка)"); - AddCategoryMapping(1893, TorznabCatType.Audio, "|- Электронная музыка (Hi-Res stereo)"); - AddCategoryMapping(1890, TorznabCatType.Audio, "|- Электронная музыка (многоканальная музыка)"); - AddCategoryMapping(2219, TorznabCatType.Audio, "Оцифровки с аналоговых носителей"); - AddCategoryMapping(1660, TorznabCatType.Audio, "|- Классика и классика в современной обработке (оцифровки)"); - AddCategoryMapping(506, TorznabCatType.Audio, "|- Фольклор, народная и этническая музыка (оцифровки)"); - AddCategoryMapping(1835, TorznabCatType.Audio, "|- Rap, Hip-Hop, R'n'B, Reggae, Ska, Dub (оцифровки)"); - AddCategoryMapping(1625, TorznabCatType.Audio, "|- Саундтреки и мюзиклы (оцифровки)"); - AddCategoryMapping(1217, TorznabCatType.Audio, "|- Шансон, авторские, военные песни и марши (оцифровки)"); - AddCategoryMapping(974, TorznabCatType.Audio, "|- Музыка других жанров (оцифровки)"); - AddCategoryMapping(1444, TorznabCatType.Audio, "|- Зарубежная поп-музыка (оцифровки)"); - AddCategoryMapping(2401, TorznabCatType.Audio, "|- Советская эстрада, ретро, романсы (оцифровки)"); - AddCategoryMapping(239, TorznabCatType.Audio, "|- Отечественная поп-музыка (оцифровки)"); - AddCategoryMapping(450, TorznabCatType.Audio, "|- Инструментальная поп-музыка (оцифровки)"); - AddCategoryMapping(2301, TorznabCatType.Audio, "|- Джаз и блюз (оцифровки)"); - AddCategoryMapping(123, TorznabCatType.Audio, "|- Alternative, Punk, Independent (оцифровки)"); - AddCategoryMapping(1756, TorznabCatType.Audio, "|- Зарубежная рок-музыка (оцифровки)"); - AddCategoryMapping(1758, TorznabCatType.Audio, "|- Отечественная рок-музыка (оцифровки)"); - AddCategoryMapping(1766, TorznabCatType.Audio, "|- Зарубежный и Отечественный Metal (оцифровки)"); - AddCategoryMapping(1754, TorznabCatType.Audio, "|- Электронная музыка (оцифровки)"); - AddCategoryMapping(860, TorznabCatType.Audio, "Неофициальные конверсии цифровых форматов"); - AddCategoryMapping(453, TorznabCatType.Audio, "|- Конверсии Quadraphonic"); - AddCategoryMapping(1170, TorznabCatType.Audio, "|- Конверсии SACD"); - AddCategoryMapping(1759, TorznabCatType.Audio, "|- Конверсии Blu-Ray, ADVD и DVD-Audio"); - AddCategoryMapping(1852, TorznabCatType.Audio, "|- Апмиксы-Upmixes/Даунмиксы-Downmix"); - AddCategoryMapping(413, TorznabCatType.AudioVideo, "Музыкальное SD видео"); - AddCategoryMapping(445, TorznabCatType.AudioVideo, "|- Классическая и современная академическая музыка (Видео)"); - AddCategoryMapping(702, TorznabCatType.AudioVideo, "|- Опера, Оперетта и Мюзикл (Видео)"); - AddCategoryMapping(1990, TorznabCatType.AudioVideo, "|- Балет и современная хореография (Видео)"); - AddCategoryMapping(1793, TorznabCatType.AudioVideo, "|- Классика в современной обработке, Classical Crossover (Видео)"); - AddCategoryMapping(1141, TorznabCatType.AudioVideo, "|- Фольклор, Народная и Этническая музыка и фламенко (Видео)"); - AddCategoryMapping(1775, TorznabCatType.AudioVideo, "|- New Age, Relax, Meditative, Рэп, Хип-Хоп, R'n'B, Reggae, Ska, Dub (Видео)"); - AddCategoryMapping(1227, TorznabCatType.AudioVideo, "|- Зарубежный и Отечественный Шансон, Авторская и Военная песня (Видео)"); - AddCategoryMapping(475, TorznabCatType.AudioVideo, "|- Музыка других жанров, Советская эстрада, ретро, романсы (Видео)"); - AddCategoryMapping(1121, TorznabCatType.AudioVideo, "|- Отечественная поп-музыка (Видео)"); - AddCategoryMapping(431, TorznabCatType.AudioVideo, "|- Зарубежная Поп-музыка, Eurodance, Disco (Видео)"); - AddCategoryMapping(2378, TorznabCatType.AudioVideo, "|- Восточноазиатская поп-музыка (Видео)"); - AddCategoryMapping(2383, TorznabCatType.AudioVideo, "|- Разножанровые сборные концерты и сборники видеоклипов (Видео)"); - AddCategoryMapping(2305, TorznabCatType.AudioVideo, "|- Джаз и Блюз (Видео)"); - AddCategoryMapping(1782, TorznabCatType.AudioVideo, "|- Rock (Видео)"); - AddCategoryMapping(1787, TorznabCatType.AudioVideo, "|- Metal (Видео)"); - AddCategoryMapping(1789, TorznabCatType.AudioVideo, "|- Зарубежный Alternative, Punk, Independent (Видео)"); - AddCategoryMapping(1791, TorznabCatType.AudioVideo, "|- Отечественный Рок, Панк, Альтернатива (Видео)"); - AddCategoryMapping(1912, TorznabCatType.AudioVideo, "|- Электронная музыка (Видео)"); - AddCategoryMapping(1189, TorznabCatType.AudioVideo, "|- Документальные фильмы о музыке и музыкантах (Видео)"); - AddCategoryMapping(2403, TorznabCatType.AudioVideo, "Музыкальное DVD видео"); - AddCategoryMapping(984, TorznabCatType.AudioVideo, "|- Классическая и современная академическая музыка (DVD Video)"); - AddCategoryMapping(983, TorznabCatType.AudioVideo, "|- Опера, Оперетта и Мюзикл (DVD видео)"); - AddCategoryMapping(2352, TorznabCatType.AudioVideo, "|- Балет и современная хореография (DVD Video)"); - AddCategoryMapping(2384, TorznabCatType.AudioVideo, "|- Классика в современной обработке, Classical Crossover (DVD Video)"); - AddCategoryMapping(1142, TorznabCatType.AudioVideo, "|- Фольклор, Народная и Этническая музыка и Flamenco (DVD Video)"); - AddCategoryMapping(1107, TorznabCatType.AudioVideo, "|- New Age, Relax, Meditative, Рэп, Хип-Хоп, R'n'B, Reggae, Ska, Dub (DVD Video)"); - AddCategoryMapping(1228, TorznabCatType.AudioVideo, "|- Зарубежный и Отечественный Шансон, Авторская и Военная песня (DVD Video)"); - AddCategoryMapping(988, TorznabCatType.AudioVideo, "|- Музыка других жанров, Советская эстрада, ретро, романсы (DVD Video)"); - AddCategoryMapping(1122, TorznabCatType.AudioVideo, "|- Отечественная поп-музыка (DVD Video)"); - AddCategoryMapping(986, TorznabCatType.AudioVideo, "|- Зарубежная Поп-музыка, Eurodance, Disco (DVD Video)"); - AddCategoryMapping(2379, TorznabCatType.AudioVideo, "|- Восточноазиатская поп-музыка (DVD Video)"); - AddCategoryMapping(2088, TorznabCatType.AudioVideo, "|- Разножанровые сборные концерты и сборники видеоклипов (DVD Video)"); - AddCategoryMapping(2304, TorznabCatType.AudioVideo, "|- Джаз и Блюз (DVD Видео)"); - AddCategoryMapping(1783, TorznabCatType.AudioVideo, "|- Зарубежный Rock (DVD Video)"); - AddCategoryMapping(1788, TorznabCatType.AudioVideo, "|- Зарубежный Metal (DVD Video)"); - AddCategoryMapping(1790, TorznabCatType.AudioVideo, "|- Зарубежный Alternative, Punk, Independent (DVD Video)"); - AddCategoryMapping(1792, TorznabCatType.AudioVideo, "|- Отечественный Рок, Метал, Панк, Альтернатива (DVD Video)"); - AddCategoryMapping(1886, TorznabCatType.AudioVideo, "|- Электронная музыка (DVD Video)"); - AddCategoryMapping(2509, TorznabCatType.AudioVideo, "|- Документальные фильмы о музыке и музыкантах (DVD Video)"); - AddCategoryMapping(2507, TorznabCatType.AudioVideo, "Неофициальные DVD видео"); - AddCategoryMapping(2263, TorznabCatType.AudioVideo, "|- Классическая музыка, Опера, Балет, Мюзикл (Неофициальные DVD Video)"); - AddCategoryMapping(2511, TorznabCatType.AudioVideo, "|- Шансон, Авторская песня, Сборные концерты, МДЖ (Неофициальные DVD Video)"); - AddCategoryMapping(2264, TorznabCatType.AudioVideo, "|- Зарубежная и Отечественная Поп-музыка (Неофициальные DVD Video)"); - AddCategoryMapping(2262, TorznabCatType.AudioVideo, "|- Джаз и Блюз (Неофициальные DVD Video)"); - AddCategoryMapping(2261, TorznabCatType.AudioVideo, "|- Зарубежная и Отечественная Рок-музыка (Неофициальные DVD Video)"); - AddCategoryMapping(1887, TorznabCatType.AudioVideo, "|- Электронная музыка (Неофициальные DVD Video)"); - AddCategoryMapping(2531, TorznabCatType.AudioVideo, "|- Прочие жанры (Неофициальные DVD видео)"); - AddCategoryMapping(2400, TorznabCatType.AudioVideo, "Музыкальное HD видео"); - AddCategoryMapping(1812, TorznabCatType.AudioVideo, "|- Классическая и современная академическая музыка (HD Video)"); - AddCategoryMapping(655, TorznabCatType.AudioVideo, "|- Опера, Оперетта и Мюзикл (HD Видео)"); - AddCategoryMapping(1777, TorznabCatType.AudioVideo, "|- Балет и современная хореография (HD Video)"); - AddCategoryMapping(2530, TorznabCatType.AudioVideo, "|- Фольклор, Народная, Этническая музыка и Flamenco (HD Видео)"); - AddCategoryMapping(2529, TorznabCatType.AudioVideo, "|- New Age, Relax, Meditative, Рэп, Хип-Хоп, R'n'B, Reggae, Ska, Dub (HD Видео)"); - AddCategoryMapping(1781, TorznabCatType.AudioVideo, "|- Музыка других жанров, Разножанровые сборные концерты (HD видео)"); - AddCategoryMapping(2508, TorznabCatType.AudioVideo, "|- Зарубежная поп-музыка (HD Video)"); - AddCategoryMapping(2426, TorznabCatType.AudioVideo, "|- Отечественная поп-музыка (HD видео)"); - AddCategoryMapping(2351, TorznabCatType.AudioVideo, "|- Восточноазиатская Поп-музыка (HD Video)"); - AddCategoryMapping(2306, TorznabCatType.AudioVideo, "|- Джаз и Блюз (HD Video)"); - AddCategoryMapping(1795, TorznabCatType.AudioVideo, "|- Зарубежный рок (HD Video)"); - AddCategoryMapping(2271, TorznabCatType.AudioVideo, "|- Отечественный рок (HD видео)"); - AddCategoryMapping(1913, TorznabCatType.AudioVideo, "|- Электронная музыка (HD Video)"); - AddCategoryMapping(1784, TorznabCatType.AudioVideo, "|- UHD музыкальное видео"); - AddCategoryMapping(1892, TorznabCatType.AudioVideo, "|- Документальные фильмы о музыке и музыкантах (HD Video)"); - AddCategoryMapping(518, TorznabCatType.AudioVideo, "Некондиционное музыкальное видео (Видео, DVD видео, HD видео)"); - AddCategoryMapping(5, TorznabCatType.PCGames, "Игры для Windows"); - AddCategoryMapping(635, TorznabCatType.PCGames, "|- Горячие Новинки"); - AddCategoryMapping(127, TorznabCatType.PCGames, "|- Аркады"); - AddCategoryMapping(2203, TorznabCatType.PCGames, "|- Файтинги"); - AddCategoryMapping(647, TorznabCatType.PCGames, "|- Экшены от первого лица"); - AddCategoryMapping(646, TorznabCatType.PCGames, "|- Экшены от третьего лица"); - AddCategoryMapping(50, TorznabCatType.PCGames, "|- Хорроры"); - AddCategoryMapping(53, TorznabCatType.PCGames, "|- Приключения и квесты"); - AddCategoryMapping(1008, TorznabCatType.PCGames, "|- Квесты в стиле \"Поиск предметов\""); - AddCategoryMapping(900, TorznabCatType.PCGames, "|- Визуальные новеллы"); - AddCategoryMapping(128, TorznabCatType.PCGames, "|- Для самых маленьких"); - AddCategoryMapping(2204, TorznabCatType.PCGames, "|- Логические игры"); - AddCategoryMapping(278, TorznabCatType.PCGames, "|- Шахматы"); - AddCategoryMapping(2118, TorznabCatType.PCGames, "|- Многопользовательские игры"); - AddCategoryMapping(52, TorznabCatType.PCGames, "|- Ролевые игры"); - AddCategoryMapping(54, TorznabCatType.PCGames, "|- Симуляторы"); - AddCategoryMapping(51, TorznabCatType.PCGames, "|- Стратегии в реальном времени"); - AddCategoryMapping(2226, TorznabCatType.PCGames, "|- Пошаговые стратегии"); - AddCategoryMapping(2228, TorznabCatType.PCGames, "|- IBM-PC-несовместимые компьютеры"); - AddCategoryMapping(139, TorznabCatType.PCGames, "Прочее для Windows-игр"); - AddCategoryMapping(2478, TorznabCatType.PCGames, "|- Официальные патчи, моды, плагины, дополнения"); - AddCategoryMapping(2480, TorznabCatType.PCGames, "|- Неофициальные модификации, плагины, дополнения"); - AddCategoryMapping(2481, TorznabCatType.PCGames, "|- Русификаторы"); - AddCategoryMapping(2142, TorznabCatType.PCGames, "Прочее для Microsoft Flight Simulator, Prepar3D, X-Plane"); - AddCategoryMapping(2060, TorznabCatType.PCGames, "|- Сценарии, меши и аэропорты для FS2004, FSX, P3D"); - AddCategoryMapping(2145, TorznabCatType.PCGames, "|- Самолёты и вертолёты для FS2004, FSX, P3D"); - AddCategoryMapping(2146, TorznabCatType.PCGames, "|- Миссии, трафик, звуки, паки и утилиты для FS2004, FSX, P3D"); - AddCategoryMapping(2143, TorznabCatType.PCGames, "|- Сценарии, миссии, трафик, звуки, паки и утилиты для X-Plane"); - AddCategoryMapping(2012, TorznabCatType.PCGames, "|- Самолёты и вертолёты для X-Plane"); - AddCategoryMapping(960, TorznabCatType.PCMac, "Игры для Apple Macintosh"); - AddCategoryMapping(537, TorznabCatType.PCMac, "|- Нативные игры для Mac"); - AddCategoryMapping(637, TorznabCatType.PCMac, "|- Игры для Mac с Wineskin, DOSBox, Cider и другими"); - AddCategoryMapping(899, TorznabCatType.PCGames, "Игры для Linux"); - AddCategoryMapping(1992, TorznabCatType.PCGames, "|- Нативные игры для Linux"); - AddCategoryMapping(2059, TorznabCatType.PCGames, "|- Игры для Linux с Wine, DOSBox и другими"); - AddCategoryMapping(548, TorznabCatType.Console, "Игры для консолей"); - AddCategoryMapping(908, TorznabCatType.Console, "|- PS"); - AddCategoryMapping(357, TorznabCatType.ConsoleOther, "|- PS2"); - AddCategoryMapping(886, TorznabCatType.ConsolePS3, "|- PS3"); - AddCategoryMapping(546, TorznabCatType.Console, "|- Игры PS1, PS2 и PSP для PS3"); - AddCategoryMapping(973, TorznabCatType.ConsolePS4, "|- PS4"); - AddCategoryMapping(1352, TorznabCatType.ConsolePSP, "|- PSP"); - AddCategoryMapping(1116, TorznabCatType.ConsolePSP, "|- Игры PS1 для PSP"); - AddCategoryMapping(595, TorznabCatType.ConsolePSVita, "|- PS Vita"); - AddCategoryMapping(887, TorznabCatType.ConsoleXBox, "|- Original Xbox"); - AddCategoryMapping(510, TorznabCatType.ConsoleXBox360, "|- Xbox 360"); - AddCategoryMapping(773, TorznabCatType.ConsoleWii, "|- Wii/WiiU"); - AddCategoryMapping(774, TorznabCatType.ConsoleNDS, "|- NDS/3DS"); - AddCategoryMapping(1605, TorznabCatType.Console, "|- Switch"); - AddCategoryMapping(968, TorznabCatType.Console, "|- Dreamcast"); - AddCategoryMapping(129, TorznabCatType.Console, "|- Остальные платформы"); - AddCategoryMapping(2185, TorznabCatType.ConsoleOther, "Видео для консолей"); - AddCategoryMapping(2487, TorznabCatType.ConsoleOther, "|- Видео для PS Vita"); - AddCategoryMapping(2182, TorznabCatType.ConsoleOther, "|- Фильмы для PSP"); - AddCategoryMapping(2181, TorznabCatType.ConsoleOther, "|- Сериалы для PSP"); - AddCategoryMapping(2180, TorznabCatType.ConsoleOther, "|- Мультфильмы для PSP"); - AddCategoryMapping(2179, TorznabCatType.ConsoleOther, "|- Дорамы для PSP"); - AddCategoryMapping(2186, TorznabCatType.ConsoleOther, "|- Аниме для PSP"); - AddCategoryMapping(700, TorznabCatType.ConsoleOther, "|- Видео для PSP"); - AddCategoryMapping(1926, TorznabCatType.ConsoleOther, "|- Видео для PS3 и других консолей"); - AddCategoryMapping(650, TorznabCatType.PCMobileOther, "Игры для мобильных устройств"); - AddCategoryMapping(2149, TorznabCatType.PCMobileAndroid, "|- Игры для Android"); - AddCategoryMapping(2420, TorznabCatType.ConsoleOther, "|- Игры для Oculus Quest"); - AddCategoryMapping(1001, TorznabCatType.PC, "|- Игры для Java"); - AddCategoryMapping(1004, TorznabCatType.PCMobileOther, "|- Игры для Symbian"); - AddCategoryMapping(1002, TorznabCatType.PCMobileOther, "|- Игры для Windows Mobile"); - AddCategoryMapping(240, TorznabCatType.OtherMisc, "Игровое видео"); - AddCategoryMapping(2415, TorznabCatType.OtherMisc, "|- Видеопрохождения игр"); - AddCategoryMapping(1012, TorznabCatType.PC, "Операционные системы от Microsoft"); - AddCategoryMapping(2489, TorznabCatType.PC, "|- Оригинальные образы Windows"); - AddCategoryMapping(2523, TorznabCatType.PC, "|- Сборки Windows 8 и далее"); - AddCategoryMapping(2153, TorznabCatType.PC, "|- Сборки Windows XP - Windows 7"); - AddCategoryMapping(1019, TorznabCatType.PC, "|- Операционные системы выпущенные до Windows XP"); - AddCategoryMapping(1021, TorznabCatType.PC, "|- Серверные ОС (оригинальные + сборки)"); - AddCategoryMapping(1025, TorznabCatType.PC, "|- Разное (сборки All-in-One, пакеты обновлений, утилиты, и прочее)"); - AddCategoryMapping(1376, TorznabCatType.PC, "Linux, Unix и другие ОС"); - AddCategoryMapping(1379, TorznabCatType.PC, "|- Операционные системы (Linux, Unix)"); - AddCategoryMapping(1381, TorznabCatType.PC, "|- Программное обеспечение (Linux, Unix)"); - AddCategoryMapping(1473, TorznabCatType.PC, "|- Другие ОС и ПО под них"); - AddCategoryMapping(1195, TorznabCatType.PC, "Тестовые диски для настройки аудио/видео аппаратуры"); - AddCategoryMapping(1013, TorznabCatType.PC, "Системные программы"); - AddCategoryMapping(1028, TorznabCatType.PC, "|- Работа с жёстким диском"); - AddCategoryMapping(1029, TorznabCatType.PC, "|- Резервное копирование"); - AddCategoryMapping(1030, TorznabCatType.PC, "|- Архиваторы и файловые менеджеры"); - AddCategoryMapping(1031, TorznabCatType.PC, "|- Программы для настройки и оптимизации ОС"); - AddCategoryMapping(1032, TorznabCatType.PC, "|- Сервисное обслуживание компьютера"); - AddCategoryMapping(1033, TorznabCatType.PC, "|- Работа с носителями информации"); - AddCategoryMapping(1034, TorznabCatType.PC, "|- Информация и диагностика"); - AddCategoryMapping(1066, TorznabCatType.PC, "|- Программы для интернет и сетей"); - AddCategoryMapping(1035, TorznabCatType.PC, "|- ПО для защиты компьютера (Антивирусное ПО, Фаерволлы)"); - AddCategoryMapping(1038, TorznabCatType.PC, "|- Анти-шпионы и анти-трояны"); - AddCategoryMapping(1039, TorznabCatType.PC, "|- Программы для защиты информации"); - AddCategoryMapping(1536, TorznabCatType.PC, "|- Драйверы и прошивки"); - AddCategoryMapping(1051, TorznabCatType.PC, "|- Оригинальные диски к компьютерам и комплектующим"); - AddCategoryMapping(1040, TorznabCatType.PC, "|- Серверное ПО для Windows"); - AddCategoryMapping(1041, TorznabCatType.PC, "|- Изменение интерфейса ОС Windows"); - AddCategoryMapping(1636, TorznabCatType.PC, "|- Скринсейверы"); - AddCategoryMapping(1042, TorznabCatType.PC, "|- Разное (Системные программы под Windows)"); - AddCategoryMapping(1059, TorznabCatType.PC, "|- Архив (Разрегистрированные раздачи)"); - AddCategoryMapping(1014, TorznabCatType.PC, "Системы для бизнеса, офиса, научной и проектной работы"); - AddCategoryMapping(2134, TorznabCatType.PC, "|- Медицина - интерактивный софт"); - AddCategoryMapping(1060, TorznabCatType.PC, "|- Всё для дома: кройка, шитьё, кулинария"); - AddCategoryMapping(1061, TorznabCatType.PC, "|- Офисные системы"); - AddCategoryMapping(1062, TorznabCatType.PC, "|- Системы для бизнеса"); - AddCategoryMapping(1067, TorznabCatType.PC, "|- Распознавание текста, звука и синтез речи"); - AddCategoryMapping(1086, TorznabCatType.PC, "|- Работа с PDF и DjVu"); - AddCategoryMapping(1068, TorznabCatType.PC, "|- Словари, переводчики"); - AddCategoryMapping(1063, TorznabCatType.PC, "|- Системы для научной работы"); - AddCategoryMapping(1087, TorznabCatType.PC, "|- САПР (общие и машиностроительные)"); - AddCategoryMapping(1192, TorznabCatType.PC, "|- САПР (электроника, автоматика, ГАП)"); - AddCategoryMapping(1088, TorznabCatType.PC, "|- Программы для архитекторов и строителей"); - AddCategoryMapping(1193, TorznabCatType.PC, "|- Библиотеки и проекты для архитекторов и дизайнеров интерьеров"); - AddCategoryMapping(1071, TorznabCatType.PC, "|- Прочие справочные системы"); - AddCategoryMapping(1073, TorznabCatType.PC, "|- Разное (Системы для бизнеса, офиса, научной и проектной работы)"); - AddCategoryMapping(1052, TorznabCatType.PC, "Веб-разработка и Программирование"); - AddCategoryMapping(1053, TorznabCatType.PC, "|- WYSIWYG Редакторы для веб-диза"); - AddCategoryMapping(1054, TorznabCatType.PC, "|- Текстовые редакторы с подсветкой"); - AddCategoryMapping(1055, TorznabCatType.PC, "|- Среды программирования, компиляторы и вспомогательные программы"); - AddCategoryMapping(1056, TorznabCatType.PC, "|- Компоненты для сред программирования"); - AddCategoryMapping(2077, TorznabCatType.PC, "|- Системы управления базами данных"); - AddCategoryMapping(1057, TorznabCatType.PC, "|- Скрипты и движки сайтов, CMS а также расширения к ним"); - AddCategoryMapping(1018, TorznabCatType.PC, "|- Шаблоны для сайтов и CMS"); - AddCategoryMapping(1058, TorznabCatType.PC, "|- Разное (Веб-разработка и программирование)"); - AddCategoryMapping(1016, TorznabCatType.PC, "Программы для работы с мультимедиа и 3D"); - AddCategoryMapping(1079, TorznabCatType.PC, "|- Программные комплекты"); - AddCategoryMapping(1080, TorznabCatType.PC, "|- Плагины для программ компании Adobe"); - AddCategoryMapping(1081, TorznabCatType.PC, "|- Графические редакторы"); - AddCategoryMapping(1082, TorznabCatType.PC, "|- Программы для верстки, печати и работы со шрифтами"); - AddCategoryMapping(1083, TorznabCatType.PC, "|- 3D моделирование, рендеринг и плагины для них"); - AddCategoryMapping(1084, TorznabCatType.PC, "|- Анимация"); - AddCategoryMapping(1085, TorznabCatType.PC, "|- Создание BD/HD/DVD-видео"); - AddCategoryMapping(1089, TorznabCatType.PC, "|- Редакторы видео"); - AddCategoryMapping(1090, TorznabCatType.PC, "|- Видео- Аудио- конверторы"); - AddCategoryMapping(1065, TorznabCatType.PC, "|- Аудио- и видео-, CD- проигрыватели и каталогизаторы"); - AddCategoryMapping(1064, TorznabCatType.PC, "|- Каталогизаторы и просмотрщики графики"); - AddCategoryMapping(1092, TorznabCatType.PC, "|- Разное (Программы для работы с мультимедиа и 3D)"); - AddCategoryMapping(1204, TorznabCatType.PC, "|- Виртуальные студии, секвенсоры и аудиоредакторы"); - AddCategoryMapping(1027, TorznabCatType.PC, "|- Виртуальные инструменты и синтезаторы"); - AddCategoryMapping(1199, TorznabCatType.PC, "|- Плагины для обработки звука"); - AddCategoryMapping(1091, TorznabCatType.PC, "|- Разное (Программы для работы со звуком)"); - AddCategoryMapping(828, TorznabCatType.OtherMisc, "Материалы для мультимедиа и дизайна"); - AddCategoryMapping(1357, TorznabCatType.OtherMisc, "|- Авторские работы"); - AddCategoryMapping(890, TorznabCatType.OtherMisc, "|- Официальные сборники векторных клипартов"); - AddCategoryMapping(830, TorznabCatType.OtherMisc, "|- Прочие векторные клипарты"); - AddCategoryMapping(1290, TorznabCatType.OtherMisc, "|- Photostocks"); - AddCategoryMapping(1962, TorznabCatType.OtherMisc, "|- Дополнения для программ компоузинга и постобработки"); - AddCategoryMapping(831, TorznabCatType.OtherMisc, "|- Рамки, шаблоны, текстуры и фоны"); - AddCategoryMapping(829, TorznabCatType.OtherMisc, "|- Прочие растровые клипарты"); - AddCategoryMapping(633, TorznabCatType.OtherMisc, "|- 3D модели, сцены и материалы"); - AddCategoryMapping(1009, TorznabCatType.OtherMisc, "|- Футажи"); - AddCategoryMapping(1963, TorznabCatType.OtherMisc, "|- Прочие сборники футажей"); - AddCategoryMapping(1954, TorznabCatType.OtherMisc, "|- Музыкальные библиотеки"); - AddCategoryMapping(1010, TorznabCatType.OtherMisc, "|- Звуковые эффекты"); - AddCategoryMapping(1674, TorznabCatType.OtherMisc, "|- Библиотеки сэмплов"); - AddCategoryMapping(2421, TorznabCatType.OtherMisc, "|- Библиотеки и саундбанки для сэмплеров, пресеты для синтезаторов"); - AddCategoryMapping(2492, TorznabCatType.OtherMisc, "|- Multitracks"); - AddCategoryMapping(839, TorznabCatType.OtherMisc, "|- Материалы для создания меню и обложек DVD"); - AddCategoryMapping(1679, TorznabCatType.OtherMisc, "|- Дополнения, стили, кисти, формы, узоры для программ Adobe"); - AddCategoryMapping(1011, TorznabCatType.OtherMisc, "|- Шрифты"); - AddCategoryMapping(835, TorznabCatType.OtherMisc, "|- Разное (Материалы для мультимедиа и дизайна)"); - AddCategoryMapping(1503, TorznabCatType.OtherMisc, "ГИС, системы навигации и карты"); - AddCategoryMapping(1507, TorznabCatType.OtherMisc, "|- ГИС (Геоинформационные системы)"); - AddCategoryMapping(1526, TorznabCatType.OtherMisc, "|- Карты, снабженные программной оболочкой"); - AddCategoryMapping(1508, TorznabCatType.OtherMisc, "|- Атласы и карты современные (после 1950 г.)"); - AddCategoryMapping(1509, TorznabCatType.OtherMisc, "|- Атласы и карты старинные (до 1950 г.)"); - AddCategoryMapping(1510, TorznabCatType.OtherMisc, "|- Карты прочие (астрономические, исторические, тематические)"); - AddCategoryMapping(1511, TorznabCatType.OtherMisc, "|- Встроенная автомобильная навигация"); - AddCategoryMapping(1512, TorznabCatType.OtherMisc, "|- Garmin"); - AddCategoryMapping(1513, TorznabCatType.OtherMisc, "|- Ozi"); - AddCategoryMapping(1514, TorznabCatType.OtherMisc, "|- TomTom"); - AddCategoryMapping(1515, TorznabCatType.OtherMisc, "|- Navigon / Navitel"); - AddCategoryMapping(1516, TorznabCatType.OtherMisc, "|- Igo"); - AddCategoryMapping(1517, TorznabCatType.OtherMisc, "|- Разное - системы навигации и карты"); - AddCategoryMapping(285, TorznabCatType.PCMobileOther, "Приложения для мобильных устройств"); - AddCategoryMapping(2154, TorznabCatType.PCMobileAndroid, "|- Приложения для Android"); - AddCategoryMapping(1005, TorznabCatType.PCMobileOther, "|- Приложения для Java"); - AddCategoryMapping(289, TorznabCatType.PCMobileOther, "|- Приложения для Symbian"); - AddCategoryMapping(290, TorznabCatType.PCMobileOther, "|- Приложения для Windows Mobile"); - AddCategoryMapping(288, TorznabCatType.PCMobileOther, "|- Софт для работы с телефоном"); - AddCategoryMapping(292, TorznabCatType.PCMobileOther, "|- Прошивки для телефонов"); - AddCategoryMapping(291, TorznabCatType.PCMobileOther, "|- Обои и темы"); - AddCategoryMapping(957, TorznabCatType.PCMobileOther, "Видео для мобильных устройств"); - AddCategoryMapping(287, TorznabCatType.PCMobileOther, "|- Видео для смартфонов и КПК"); - AddCategoryMapping(286, TorznabCatType.PCMobileOther, "|- Видео в формате 3GP для мобильных"); - AddCategoryMapping(1366, TorznabCatType.PCMac, "Apple Macintosh"); - AddCategoryMapping(1368, TorznabCatType.PCMac, "|- Mac OS (для Macintosh)"); - AddCategoryMapping(1383, TorznabCatType.PCMac, "|- Mac OS (для РС-Хакинтош)"); - AddCategoryMapping(1394, TorznabCatType.PCMac, "|- Программы для просмотра и обработки видео (Mac OS)"); - AddCategoryMapping(1370, TorznabCatType.PCMac, "|- Программы для создания и обработки графики (Mac OS)"); - AddCategoryMapping(2237, TorznabCatType.PCMac, "|- Плагины для программ компании Adobe (Mac OS)"); - AddCategoryMapping(1372, TorznabCatType.PCMac, "|- Аудио редакторы и конвертеры (Mac OS)"); - AddCategoryMapping(1373, TorznabCatType.PCMac, "|- Системные программы (Mac OS)"); - AddCategoryMapping(1375, TorznabCatType.PCMac, "|- Офисные программы (Mac OS)"); - AddCategoryMapping(1371, TorznabCatType.PCMac, "|- Программы для интернета и сетей (Mac OS)"); - AddCategoryMapping(1374, TorznabCatType.PCMac, "|- Другие программы (Mac OS)"); - AddCategoryMapping(1933, TorznabCatType.PCMobileiOS, "iOS"); - AddCategoryMapping(1935, TorznabCatType.PCMobileiOS, "|- Программы для iOS"); - AddCategoryMapping(1003, TorznabCatType.PCMobileiOS, "|- Игры для iOS"); - AddCategoryMapping(1937, TorznabCatType.PCMobileiOS, "|- Разное для iOS"); - AddCategoryMapping(2235, TorznabCatType.PCMobileiOS, "Видео"); - AddCategoryMapping(1908, TorznabCatType.PCMobileiOS, "|- Фильмы для iPod, iPhone, iPad"); - AddCategoryMapping(864, TorznabCatType.PCMobileiOS, "|- Сериалы для iPod, iPhone, iPad"); - AddCategoryMapping(863, TorznabCatType.PCMobileiOS, "|- Мультфильмы для iPod, iPhone, iPad"); - AddCategoryMapping(2535, TorznabCatType.PCMobileiOS, "|- Аниме для iPod, iPhone, iPad"); - AddCategoryMapping(2534, TorznabCatType.PCMobileiOS, "|- Музыкальное видео для iPod, iPhone, iPad"); - AddCategoryMapping(2238, TorznabCatType.PCMac, "Видео HD"); - AddCategoryMapping(1936, TorznabCatType.PCMac, "|- Фильмы HD для Apple TV"); - AddCategoryMapping(315, TorznabCatType.PCMac, "|- Сериалы HD для Apple TV"); - AddCategoryMapping(1363, TorznabCatType.PCMac, "|- Мультфильмы HD для Apple TV"); - AddCategoryMapping(2082, TorznabCatType.PCMac, "|- Документальное видео HD для Apple TV"); - AddCategoryMapping(2241, TorznabCatType.PCMac, "|- Музыкальное видео HD для Apple TV"); - AddCategoryMapping(2236, TorznabCatType.Audio, "Аудио"); - AddCategoryMapping(1909, TorznabCatType.AudioAudiobook, "|- Аудиокниги (AAC, ALAC)"); - AddCategoryMapping(1927, TorznabCatType.AudioLossless, "|- Музыка lossless (ALAC)"); - AddCategoryMapping(2240, TorznabCatType.Audio, "|- Музыка Lossy (AAC-iTunes)"); - AddCategoryMapping(2248, TorznabCatType.Audio, "|- Музыка Lossy (AAC)"); - AddCategoryMapping(2244, TorznabCatType.Audio, "|- Музыка Lossy (AAC) (Singles, EPs)"); - AddCategoryMapping(10, TorznabCatType.OtherMisc, "Разное (раздачи)"); - AddCategoryMapping(865, TorznabCatType.OtherMisc, "|- Психоактивные аудиопрограммы"); - AddCategoryMapping(1100, TorznabCatType.OtherMisc, "|- Аватары, Иконки, Смайлы"); - AddCategoryMapping(1643, TorznabCatType.OtherMisc, "|- Живопись, Графика, Скульптура, Digital Art"); - AddCategoryMapping(848, TorznabCatType.OtherMisc, "|- Картинки"); - AddCategoryMapping(808, TorznabCatType.OtherMisc, "|- Любительские фотографии"); - AddCategoryMapping(630, TorznabCatType.OtherMisc, "|- Обои"); - AddCategoryMapping(1664, TorznabCatType.OtherMisc, "|- Фото знаменитостей"); - AddCategoryMapping(148, TorznabCatType.Audio, "|- Аудио"); - AddCategoryMapping(965, TorznabCatType.AudioMP3, "|- Музыка (lossy)"); - AddCategoryMapping(134, TorznabCatType.AudioLossless, "|- Музыка (lossless)"); - AddCategoryMapping(807, TorznabCatType.TVOther, "|- Видео"); - AddCategoryMapping(147, TorznabCatType.Books, "|- Публикации и учебные материалы (тексты)"); - AddCategoryMapping(847, TorznabCatType.MoviesOther, "|- Трейлеры и дополнительные материалы к фильмам"); - AddCategoryMapping(1167, TorznabCatType.TVOther, "|- Любительские видеоклипы"); - AddCategoryMapping(321, TorznabCatType.Other, "|- Отчеты о встречах"); + caps.Categories.AddCategoryMapping(22, TorznabCatType.Movies, "Наше кино"); + caps.Categories.AddCategoryMapping(941, TorznabCatType.Movies, "|- Кино СССР"); + caps.Categories.AddCategoryMapping(1666, TorznabCatType.Movies, "|- Детские отечественные фильмы"); + caps.Categories.AddCategoryMapping(376, TorznabCatType.Movies, "|- Авторские дебюты"); + caps.Categories.AddCategoryMapping(106, TorznabCatType.Movies, "|- Фильмы России и СССР на национальных языках [без перевода]"); + caps.Categories.AddCategoryMapping(7, TorznabCatType.MoviesForeign, "Зарубежное кино"); + caps.Categories.AddCategoryMapping(187, TorznabCatType.MoviesForeign, "|- Классика мирового кинематографа"); + caps.Categories.AddCategoryMapping(2090, TorznabCatType.MoviesForeign, "|- Фильмы до 1990 года"); + caps.Categories.AddCategoryMapping(2221, TorznabCatType.MoviesForeign, "|- Фильмы 1991-2000"); + caps.Categories.AddCategoryMapping(2091, TorznabCatType.MoviesForeign, "|- Фильмы 2001-2005"); + caps.Categories.AddCategoryMapping(2092, TorznabCatType.MoviesForeign, "|- Фильмы 2006-2010"); + caps.Categories.AddCategoryMapping(2093, TorznabCatType.MoviesForeign, "|- Фильмы 2011-2015"); + caps.Categories.AddCategoryMapping(2200, TorznabCatType.MoviesForeign, "|- Фильмы 2016-2020"); + caps.Categories.AddCategoryMapping(1950, TorznabCatType.MoviesForeign, "|- Фильмы 2021-2022"); + caps.Categories.AddCategoryMapping(252, TorznabCatType.MoviesForeign, "|- Фильмы 2023"); + caps.Categories.AddCategoryMapping(2540, TorznabCatType.MoviesForeign, "|- Фильмы Ближнего Зарубежья"); + caps.Categories.AddCategoryMapping(934, TorznabCatType.MoviesForeign, "|- Азиатские фильмы"); + caps.Categories.AddCategoryMapping(505, TorznabCatType.MoviesForeign, "|- Индийское кино"); + caps.Categories.AddCategoryMapping(212, TorznabCatType.MoviesForeign, "|- Сборники фильмов"); + caps.Categories.AddCategoryMapping(2459, TorznabCatType.MoviesForeign, "|- Короткий метр"); + caps.Categories.AddCategoryMapping(1235, TorznabCatType.MoviesForeign, "|- Грайндхаус"); + caps.Categories.AddCategoryMapping(166, TorznabCatType.MoviesForeign, "|- Зарубежные фильмы без перевода"); + caps.Categories.AddCategoryMapping(185, TorznabCatType.Audio, "|- Звуковые дорожки и Переводы"); + caps.Categories.AddCategoryMapping(124, TorznabCatType.MoviesOther, "Арт-хаус и авторское кино"); + caps.Categories.AddCategoryMapping(1543, TorznabCatType.MoviesOther, "|- Короткий метр (Арт-хаус и авторское кино)"); + caps.Categories.AddCategoryMapping(709, TorznabCatType.MoviesOther, "|- Документальные фильмы (Арт-хаус и авторское кино)"); + caps.Categories.AddCategoryMapping(1577, TorznabCatType.MoviesOther, "|- Анимация (Арт-хаус и авторское кино)"); + caps.Categories.AddCategoryMapping(511, TorznabCatType.TVOther, "Театр"); + caps.Categories.AddCategoryMapping(93, TorznabCatType.MoviesDVD, "DVD Video"); + caps.Categories.AddCategoryMapping(905, TorznabCatType.MoviesDVD, "|- Классика мирового кинематографа (DVD Video)"); + caps.Categories.AddCategoryMapping(101, TorznabCatType.MoviesDVD, "|- Зарубежное кино (DVD Video)"); + caps.Categories.AddCategoryMapping(100, TorznabCatType.MoviesDVD, "|- Наше кино (DVD Video)"); + caps.Categories.AddCategoryMapping(877, TorznabCatType.MoviesDVD, "|- Фильмы Ближнего Зарубежья (DVD Video)"); + caps.Categories.AddCategoryMapping(1576, TorznabCatType.MoviesDVD, "|- Азиатские фильмы (DVD Video)"); + caps.Categories.AddCategoryMapping(572, TorznabCatType.MoviesDVD, "|- Арт-хаус и авторское кино (DVD Video)"); + caps.Categories.AddCategoryMapping(2220, TorznabCatType.MoviesDVD, "|- Индийское кино (DVD Video)"); + caps.Categories.AddCategoryMapping(1670, TorznabCatType.MoviesDVD, "|- Грайндхаус (DVD Video)"); + caps.Categories.AddCategoryMapping(2198, TorznabCatType.MoviesHD, "HD Video"); + caps.Categories.AddCategoryMapping(1457, TorznabCatType.MoviesUHD, "|- UHD Video"); + caps.Categories.AddCategoryMapping(2199, TorznabCatType.MoviesHD, "|- Классика мирового кинематографа (HD Video)"); + caps.Categories.AddCategoryMapping(313, TorznabCatType.MoviesHD, "|- Зарубежное кино (HD Video)"); + caps.Categories.AddCategoryMapping(312, TorznabCatType.MoviesHD, "|- Наше кино (HD Video)"); + caps.Categories.AddCategoryMapping(1247, TorznabCatType.MoviesHD, "|- Фильмы Ближнего Зарубежья (HD Video)"); + caps.Categories.AddCategoryMapping(2201, TorznabCatType.MoviesHD, "|- Азиатские фильмы (HD Video)"); + caps.Categories.AddCategoryMapping(2339, TorznabCatType.MoviesHD, "|- Арт-хаус и авторское кино (HD Video)"); + caps.Categories.AddCategoryMapping(140, TorznabCatType.MoviesHD, "|- Индийское кино (HD Video)"); + caps.Categories.AddCategoryMapping(194, TorznabCatType.MoviesHD, "|- Грайндхаус (HD Video)"); + caps.Categories.AddCategoryMapping(352, TorznabCatType.Movies3D, "3D/Стерео Кино, Видео, TV и Спорт"); + caps.Categories.AddCategoryMapping(549, TorznabCatType.Movies3D, "|- 3D Кинофильмы"); + caps.Categories.AddCategoryMapping(1213, TorznabCatType.Movies3D, "|- 3D Мультфильмы"); + caps.Categories.AddCategoryMapping(2109, TorznabCatType.Movies3D, "|- 3D Документальные фильмы"); + caps.Categories.AddCategoryMapping(514, TorznabCatType.Movies3D, "|- 3D Спорт"); + caps.Categories.AddCategoryMapping(2097, TorznabCatType.Movies3D, "|- 3D Ролики, Музыкальное видео, Трейлеры к фильмам"); + caps.Categories.AddCategoryMapping(4, TorznabCatType.Movies, "Мультфильмы"); + caps.Categories.AddCategoryMapping(84, TorznabCatType.MoviesUHD, "|- Мультфильмы (UHD Video)"); + caps.Categories.AddCategoryMapping(2343, TorznabCatType.MoviesHD, "|- Отечественные мультфильмы (HD Video)"); + caps.Categories.AddCategoryMapping(930, TorznabCatType.MoviesHD, "|- Иностранные мультфильмы (HD Video)"); + caps.Categories.AddCategoryMapping(2365, TorznabCatType.MoviesHD, "|- Иностранные короткометражные мультфильмы (HD Video)"); + caps.Categories.AddCategoryMapping(1900, TorznabCatType.MoviesDVD, "|- Отечественные мультфильмы (DVD)"); + caps.Categories.AddCategoryMapping(2258, TorznabCatType.MoviesDVD, "|- Иностранные короткометражные мультфильмы (DVD)"); + caps.Categories.AddCategoryMapping(521, TorznabCatType.MoviesDVD, "|- Иностранные мультфильмы (DVD)"); + caps.Categories.AddCategoryMapping(208, TorznabCatType.Movies, "|- Отечественные мультфильмы"); + caps.Categories.AddCategoryMapping(539, TorznabCatType.Movies, "|- Отечественные полнометражные мультфильмы"); + caps.Categories.AddCategoryMapping(209, TorznabCatType.MoviesForeign, "|- Иностранные мультфильмы"); + caps.Categories.AddCategoryMapping(484, TorznabCatType.MoviesForeign, "|- Иностранные короткометражные мультфильмы"); + caps.Categories.AddCategoryMapping(822, TorznabCatType.Movies, "|- Сборники мультфильмов"); + caps.Categories.AddCategoryMapping(181, TorznabCatType.Movies, "|- Мультфильмы без перевода"); + caps.Categories.AddCategoryMapping(921, TorznabCatType.TV, "Мультсериалы"); + caps.Categories.AddCategoryMapping(815, TorznabCatType.TVSD, "|- Мультсериалы (SD Video)"); + caps.Categories.AddCategoryMapping(816, TorznabCatType.TVHD, "|- Мультсериалы (DVD Video)"); + caps.Categories.AddCategoryMapping(1460, TorznabCatType.TVHD, "|- Мультсериалы (HD Video)"); + caps.Categories.AddCategoryMapping(33, TorznabCatType.TVAnime, "Аниме"); + caps.Categories.AddCategoryMapping(1106, TorznabCatType.TVAnime, "|- Онгоинги (HD Video)"); + caps.Categories.AddCategoryMapping(1105, TorznabCatType.TVAnime, "|- Аниме (HD Video)"); + caps.Categories.AddCategoryMapping(599, TorznabCatType.TVAnime, "|- Аниме (DVD)"); + caps.Categories.AddCategoryMapping(1389, TorznabCatType.TVAnime, "|- Аниме (основной подраздел)"); + caps.Categories.AddCategoryMapping(1391, TorznabCatType.TVAnime, "|- Аниме (плеерный подраздел)"); + caps.Categories.AddCategoryMapping(2491, TorznabCatType.TVAnime, "|- Аниме (QC подраздел)"); + caps.Categories.AddCategoryMapping(2544, TorznabCatType.TVAnime, "|- Ван-Пис"); + caps.Categories.AddCategoryMapping(1642, TorznabCatType.TVAnime, "|- Гандам"); + caps.Categories.AddCategoryMapping(1390, TorznabCatType.TVAnime, "|- Наруто"); + caps.Categories.AddCategoryMapping(404, TorznabCatType.TVAnime, "|- Покемоны"); + caps.Categories.AddCategoryMapping(893, TorznabCatType.TVAnime, "|- Японские мультфильмы"); + caps.Categories.AddCategoryMapping(809, TorznabCatType.Audio, "|- Звуковые дорожки (Аниме)"); + caps.Categories.AddCategoryMapping(2484, TorznabCatType.TVAnime, "|- Артбуки и журналы (Аниме)"); + caps.Categories.AddCategoryMapping(1386, TorznabCatType.TVAnime, "|- Обои, сканы, аватары, арт"); + caps.Categories.AddCategoryMapping(1387, TorznabCatType.TVAnime, "|- AMV и другие ролики"); + caps.Categories.AddCategoryMapping(9, TorznabCatType.TV, "Русские сериалы"); + caps.Categories.AddCategoryMapping(81, TorznabCatType.TVHD, "|- Русские сериалы (HD Video)"); + caps.Categories.AddCategoryMapping(920, TorznabCatType.TVSD, "|- Русские сериалы (DVD Video)"); + caps.Categories.AddCategoryMapping(80, TorznabCatType.TV, "|- Сельский детектив"); + caps.Categories.AddCategoryMapping(1535, TorznabCatType.TV, "|- По законам военного времени"); + caps.Categories.AddCategoryMapping(188, TorznabCatType.TV, "|- Московские тайны"); + caps.Categories.AddCategoryMapping(91, TorznabCatType.TV, "|- Я знаю твои секреты"); + caps.Categories.AddCategoryMapping(990, TorznabCatType.TV, "|- Универ / Универ. Новая общага / СашаТаня"); + caps.Categories.AddCategoryMapping(1408, TorznabCatType.TV, "|- Женская версия"); + caps.Categories.AddCategoryMapping(175, TorznabCatType.TV, "|- След"); + caps.Categories.AddCategoryMapping(79, TorznabCatType.TV, "|- Некрасивая подружка"); + caps.Categories.AddCategoryMapping(104, TorznabCatType.TV, "|- Психология преступления"); + caps.Categories.AddCategoryMapping(189, TorznabCatType.TVForeign, "Зарубежные сериалы"); + caps.Categories.AddCategoryMapping(842, TorznabCatType.TVForeign, "|- Новинки и сериалы в стадии показа"); + caps.Categories.AddCategoryMapping(235, TorznabCatType.TVForeign, "|- Сериалы США и Канады"); + caps.Categories.AddCategoryMapping(242, TorznabCatType.TVForeign, "|- Сериалы Великобритании и Ирландии"); + caps.Categories.AddCategoryMapping(819, TorznabCatType.TVForeign, "|- Скандинавские сериалы"); + caps.Categories.AddCategoryMapping(1531, TorznabCatType.TVForeign, "|- Испанские сериалы"); + caps.Categories.AddCategoryMapping(721, TorznabCatType.TVForeign, "|- Итальянские сериалы"); + caps.Categories.AddCategoryMapping(1102, TorznabCatType.TVForeign, "|- Европейские сериалы"); + caps.Categories.AddCategoryMapping(1120, TorznabCatType.TVForeign, "|- Сериалы стран Африки, Ближнего и Среднего Востока"); + caps.Categories.AddCategoryMapping(1214, TorznabCatType.TVForeign, "|- Сериалы Австралии и Новой Зеландии"); + caps.Categories.AddCategoryMapping(489, TorznabCatType.TVForeign, "|- Сериалы Ближнего Зарубежья"); + caps.Categories.AddCategoryMapping(387, TorznabCatType.TVForeign, "|- Сериалы совместного производства нескольких стран"); + caps.Categories.AddCategoryMapping(1359, TorznabCatType.TVForeign, "|- Веб-сериалы, Вебизоды к сериалам и Пилотные серии сериалов"); + caps.Categories.AddCategoryMapping(184, TorznabCatType.TVForeign, "|- Бесстыжие / Shameless (US)"); + caps.Categories.AddCategoryMapping(1171, TorznabCatType.TVForeign, "|- Викинги / Vikings"); + caps.Categories.AddCategoryMapping(1417, TorznabCatType.TVForeign, "|- Во все тяжкие / Breaking Bad"); + caps.Categories.AddCategoryMapping(625, TorznabCatType.TVForeign, "|- Доктор Хаус / House M.D."); + caps.Categories.AddCategoryMapping(1449, TorznabCatType.TVForeign, "|- Игра престолов / Game of Thrones"); + caps.Categories.AddCategoryMapping(273, TorznabCatType.TVForeign, "|- Карточный Домик / House of Cards"); + caps.Categories.AddCategoryMapping(504, TorznabCatType.TVForeign, "|- Клан Сопрано / The Sopranos"); + caps.Categories.AddCategoryMapping(372, TorznabCatType.TVForeign, "|- Сверхъестественное / Supernatural"); + caps.Categories.AddCategoryMapping(110, TorznabCatType.TVForeign, "|- Секретные материалы / The X-Files"); + caps.Categories.AddCategoryMapping(121, TorznabCatType.TVForeign, "|- Твин пикс / Twin Peaks"); + caps.Categories.AddCategoryMapping(507, TorznabCatType.TVForeign, "|- Теория большого взрыва + Детство Шелдона"); + caps.Categories.AddCategoryMapping(536, TorznabCatType.TVForeign, "|- Форс-мажоры / Костюмы в законе / Suits"); + caps.Categories.AddCategoryMapping(1144, TorznabCatType.TVForeign, "|- Ходячие мертвецы + Бойтесь ходячих мертвецов"); + caps.Categories.AddCategoryMapping(173, TorznabCatType.TVForeign, "|- Черное зеркало / Black Mirror"); + caps.Categories.AddCategoryMapping(195, TorznabCatType.TVForeign, "|- Для некондиционных раздач"); + caps.Categories.AddCategoryMapping(2366, TorznabCatType.TVHD, "Зарубежные сериалы (HD Video)"); + caps.Categories.AddCategoryMapping(119, TorznabCatType.TVUHD, "|- Зарубежные сериалы (UHD Video)"); + caps.Categories.AddCategoryMapping(1803, TorznabCatType.TVHD, "|- Новинки и сериалы в стадии показа (HD Video)"); + caps.Categories.AddCategoryMapping(266, TorznabCatType.TVHD, "|- Сериалы США и Канады (HD Video)"); + caps.Categories.AddCategoryMapping(193, TorznabCatType.TVHD, "|- Сериалы Великобритании и Ирландии (HD Video)"); + caps.Categories.AddCategoryMapping(1690, TorznabCatType.TVHD, "|- Скандинавские сериалы (HD Video)"); + caps.Categories.AddCategoryMapping(1459, TorznabCatType.TVHD, "|- Европейские сериалы (HD Video)"); + caps.Categories.AddCategoryMapping(1463, TorznabCatType.TVHD, "|- Сериалы стран Африки, Ближнего и Среднего Востока (HD Video)"); + caps.Categories.AddCategoryMapping(825, TorznabCatType.TVHD, "|- Сериалы Австралии и Новой Зеландии (HD Video)"); + caps.Categories.AddCategoryMapping(1248, TorznabCatType.TVHD, "|- Сериалы Ближнего Зарубежья (HD Video)"); + caps.Categories.AddCategoryMapping(1288, TorznabCatType.TVHD, "|- Сериалы совместного производства нескольких стран (HD Video)"); + caps.Categories.AddCategoryMapping(1669, TorznabCatType.TVHD, "|- Викинги / Vikings (HD Video)"); + caps.Categories.AddCategoryMapping(2393, TorznabCatType.TVHD, "|- Доктор Хаус / House M.D. (HD Video)"); + caps.Categories.AddCategoryMapping(265, TorznabCatType.TVHD, "|- Игра престолов / Game of Thrones (HD Video)"); + caps.Categories.AddCategoryMapping(2406, TorznabCatType.TVHD, "|- Карточный домик (HD Video)"); + caps.Categories.AddCategoryMapping(2404, TorznabCatType.TVHD, "|- Сверхъестественное / Supernatural (HD Video)"); + caps.Categories.AddCategoryMapping(2405, TorznabCatType.TVHD, "|- Секретные материалы / The X-Files (HD Video)"); + caps.Categories.AddCategoryMapping(2370, TorznabCatType.TVHD, "|- Твин пикс / Twin Peaks (HD Video)"); + caps.Categories.AddCategoryMapping(2396, TorznabCatType.TVHD, "|- Теория Большого Взрыва / The Big Bang Theory (HD Video)"); + caps.Categories.AddCategoryMapping(2398, TorznabCatType.TVHD, "|- Ходячие мертвецы + Бойтесь ходячих мертвецов (HD Video)"); + caps.Categories.AddCategoryMapping(1949, TorznabCatType.TVHD, "|- Черное зеркало / Black Mirror (HD Video)"); + caps.Categories.AddCategoryMapping(1498, TorznabCatType.TVHD, "|- Для некондиционных раздач (HD Video)"); + caps.Categories.AddCategoryMapping(911, TorznabCatType.TVForeign, "Сериалы Латинской Америки, Турции и Индии"); + caps.Categories.AddCategoryMapping(1493, TorznabCatType.TVForeign, "|- Актёры и актрисы латиноамериканских сериалов"); + caps.Categories.AddCategoryMapping(325, TorznabCatType.TVForeign, "|- Сериалы Аргентины"); + caps.Categories.AddCategoryMapping(534, TorznabCatType.TVForeign, "|- Сериалы Бразилии"); + caps.Categories.AddCategoryMapping(594, TorznabCatType.TVForeign, "|- Сериалы Венесуэлы"); + caps.Categories.AddCategoryMapping(1301, TorznabCatType.TVForeign, "|- Сериалы Индии"); + caps.Categories.AddCategoryMapping(607, TorznabCatType.TVForeign, "|- Сериалы Колумбии"); + caps.Categories.AddCategoryMapping(1574, TorznabCatType.TVForeign, "|- Сериалы Латинской Америки с озвучкой (раздачи папками)"); + caps.Categories.AddCategoryMapping(1539, TorznabCatType.TVForeign, "|- Сериалы Латинской Америки с субтитрами"); + caps.Categories.AddCategoryMapping(1940, TorznabCatType.TVForeign, "|- Официальные краткие версии сериалов Латинской Америки"); + caps.Categories.AddCategoryMapping(694, TorznabCatType.TVForeign, "|- Сериалы Мексики"); + caps.Categories.AddCategoryMapping(775, TorznabCatType.TVForeign, "|- Сериалы Перу, Сальвадора, Чили и других стран"); + caps.Categories.AddCategoryMapping(781, TorznabCatType.TVForeign, "|- Сериалы совместного производства"); + caps.Categories.AddCategoryMapping(718, TorznabCatType.TVForeign, "|- Сериалы США (латиноамериканские)"); + caps.Categories.AddCategoryMapping(704, TorznabCatType.TVForeign, "|- Сериалы Турции"); + caps.Categories.AddCategoryMapping(1537, TorznabCatType.TVForeign, "|- Для некондиционных раздач"); + caps.Categories.AddCategoryMapping(2100, TorznabCatType.TVForeign, "Азиатские сериалы"); + caps.Categories.AddCategoryMapping(820, TorznabCatType.TVForeign, "|- Азиатские сериалы (UHD Video)"); + caps.Categories.AddCategoryMapping(915, TorznabCatType.TVForeign, "|- Корейские сериалы"); + caps.Categories.AddCategoryMapping(1242, TorznabCatType.TVForeign, "|- Корейские сериалы (HD Video)"); + caps.Categories.AddCategoryMapping(717, TorznabCatType.TVForeign, "|- Китайские сериалы"); + caps.Categories.AddCategoryMapping(1939, TorznabCatType.TVForeign, "|- Японские сериалы"); + caps.Categories.AddCategoryMapping(2412, TorznabCatType.TVForeign, "|- Сериалы Таиланда, Индонезии, Сингапура"); + caps.Categories.AddCategoryMapping(2102, TorznabCatType.TVForeign, "|- VMV и др. ролики"); + caps.Categories.AddCategoryMapping(19, TorznabCatType.TVDocumentary, "СМИ"); + caps.Categories.AddCategoryMapping(670, TorznabCatType.TVDocumentary, "Вера и религия"); + caps.Categories.AddCategoryMapping(1475, TorznabCatType.TVDocumentary, "|- [Видео Религия] Христианство"); + caps.Categories.AddCategoryMapping(2107, TorznabCatType.TVDocumentary, "|- [Видео Религия] Ислам"); + caps.Categories.AddCategoryMapping(1453, TorznabCatType.TVDocumentary, "|- [Видео Религия] Культы и новые религиозные движения"); + caps.Categories.AddCategoryMapping(294, TorznabCatType.TVDocumentary, "|- [Видео Религия] Религии Индии, Тибета и Восточной Азии"); + caps.Categories.AddCategoryMapping(46, TorznabCatType.TVDocumentary, "Документальные фильмы и телепередачи"); + caps.Categories.AddCategoryMapping(103, TorznabCatType.TVDocumentary, "|- Документальные (DVD)"); + caps.Categories.AddCategoryMapping(671, TorznabCatType.TVDocumentary, "|- [Док] Биографии. Личности и кумиры"); + caps.Categories.AddCategoryMapping(2177, TorznabCatType.TVDocumentary, "|- [Док] Кинематограф и мультипликация"); + caps.Categories.AddCategoryMapping(656, TorznabCatType.TVDocumentary, "|- [Док] Мастера искусств Театра и Кино"); + caps.Categories.AddCategoryMapping(2538, TorznabCatType.TVDocumentary, "|- [Док] Искусство, история искусств"); + caps.Categories.AddCategoryMapping(2159, TorznabCatType.TVDocumentary, "|- [Док] Музыка"); + caps.Categories.AddCategoryMapping(251, TorznabCatType.TVDocumentary, "|- [Док] Криминальная документалистика"); + caps.Categories.AddCategoryMapping(98, TorznabCatType.TVDocumentary, "|- [Док] Тайны века / Спецслужбы / Теории Заговоров"); + caps.Categories.AddCategoryMapping(97, TorznabCatType.TVDocumentary, "|- [Док] Военное дело"); + caps.Categories.AddCategoryMapping(851, TorznabCatType.TVDocumentary, "|- [Док] Вторая мировая война"); + caps.Categories.AddCategoryMapping(2178, TorznabCatType.TVDocumentary, "|- [Док] Аварии / Катастрофы / Катаклизмы"); + caps.Categories.AddCategoryMapping(821, TorznabCatType.TVDocumentary, "|- [Док] Авиация"); + caps.Categories.AddCategoryMapping(2076, TorznabCatType.TVDocumentary, "|- [Док] Космос"); + caps.Categories.AddCategoryMapping(56, TorznabCatType.TVDocumentary, "|- [Док] Научно-популярные фильмы"); + caps.Categories.AddCategoryMapping(2123, TorznabCatType.TVDocumentary, "|- [Док] Флора и фауна"); + caps.Categories.AddCategoryMapping(876, TorznabCatType.TVDocumentary, "|- [Док] Путешествия и туризм"); + caps.Categories.AddCategoryMapping(2139, TorznabCatType.TVDocumentary, "|- [Док] Медицина"); + caps.Categories.AddCategoryMapping(2380, TorznabCatType.TVDocumentary, "|- [Док] Социальные ток-шоу"); + caps.Categories.AddCategoryMapping(1467, TorznabCatType.TVDocumentary, "|- [Док] Информационно-аналитические и общественно-политические передачи"); + caps.Categories.AddCategoryMapping(1469, TorznabCatType.TVDocumentary, "|- [Док] Архитектура и строительство"); + caps.Categories.AddCategoryMapping(672, TorznabCatType.TVDocumentary, "|- [Док] Всё о доме, быте и дизайне"); + caps.Categories.AddCategoryMapping(249, TorznabCatType.TVDocumentary, "|- [Док] BBC"); + caps.Categories.AddCategoryMapping(552, TorznabCatType.TVDocumentary, "|- [Док] Discovery"); + caps.Categories.AddCategoryMapping(500, TorznabCatType.TVDocumentary, "|- [Док] National Geographic"); + caps.Categories.AddCategoryMapping(2112, TorznabCatType.TVDocumentary, "|- [Док] История: Древний мир / Античность / Средневековье"); + caps.Categories.AddCategoryMapping(1327, TorznabCatType.TVDocumentary, "|- [Док] История: Новое и Новейшее время"); + caps.Categories.AddCategoryMapping(1468, TorznabCatType.TVDocumentary, "|- [Док] Эпоха СССР"); + caps.Categories.AddCategoryMapping(1280, TorznabCatType.TVDocumentary, "|- [Док] Битва экстрасенсов / Теория невероятности / Искатели / Галилео"); + caps.Categories.AddCategoryMapping(752, TorznabCatType.TVDocumentary, "|- [Док] Русские сенсации / Программа Максимум / Профессия репортёр"); + caps.Categories.AddCategoryMapping(1114, TorznabCatType.TVDocumentary, "|- [Док] Паранормальные явления"); + caps.Categories.AddCategoryMapping(2168, TorznabCatType.TVDocumentary, "|- [Док] Альтернативная история и наука"); + caps.Categories.AddCategoryMapping(2160, TorznabCatType.TVDocumentary, "|- [Док] Внежанровая документалистика"); + caps.Categories.AddCategoryMapping(2176, TorznabCatType.TVDocumentary, "|- [Док] Разное / некондиция"); + caps.Categories.AddCategoryMapping(314, TorznabCatType.TVDocumentary, "Документальные (HD Video)"); + caps.Categories.AddCategoryMapping(2323, TorznabCatType.TVDocumentary, "|- Информационно-аналитические и общественно-политические (HD Video)"); + caps.Categories.AddCategoryMapping(1278, TorznabCatType.TVDocumentary, "|- Биографии. Личности и кумиры (HD Video)"); + caps.Categories.AddCategoryMapping(1281, TorznabCatType.TVDocumentary, "|- Военное дело (HD Video)"); + caps.Categories.AddCategoryMapping(2110, TorznabCatType.TVDocumentary, "|- Естествознание, наука и техника (HD Video)"); + caps.Categories.AddCategoryMapping(979, TorznabCatType.TVDocumentary, "|- Путешествия и туризм (HD Video)"); + caps.Categories.AddCategoryMapping(2169, TorznabCatType.TVDocumentary, "|- Флора и фауна (HD Video)"); + caps.Categories.AddCategoryMapping(2166, TorznabCatType.TVDocumentary, "|- История (HD Video)"); + caps.Categories.AddCategoryMapping(2164, TorznabCatType.TVDocumentary, "|- BBC, Discovery, National Geographic, History Channel, Netflix (HD Video)"); + caps.Categories.AddCategoryMapping(2163, TorznabCatType.TVDocumentary, "|- Криминальная документалистика (HD Video)"); + caps.Categories.AddCategoryMapping(85, TorznabCatType.TVDocumentary, "|- Некондиционное видео - Документальные (HD Video)"); + caps.Categories.AddCategoryMapping(24, TorznabCatType.TVDocumentary, "Развлекательные телепередачи и шоу, приколы и юмор"); + caps.Categories.AddCategoryMapping(1959, TorznabCatType.TVOther, "|- [Видео Юмор] Интеллектуальные игры и викторины"); + caps.Categories.AddCategoryMapping(939, TorznabCatType.TVOther, "|- [Видео Юмор] Реалити и ток-шоу / номинации / показы"); + caps.Categories.AddCategoryMapping(1481, TorznabCatType.TVOther, "|- [Видео Юмор] Детские телешоу"); + caps.Categories.AddCategoryMapping(113, TorznabCatType.TVOther, "|- [Видео Юмор] КВН"); + caps.Categories.AddCategoryMapping(115, TorznabCatType.TVOther, "|- [Видео Юмор] Пост КВН"); + caps.Categories.AddCategoryMapping(882, TorznabCatType.TVOther, "|- [Видео Юмор] Кривое Зеркало / Городок / В Городке"); + caps.Categories.AddCategoryMapping(1482, TorznabCatType.TVOther, "|- [Видео Юмор] Ледовые шоу"); + caps.Categories.AddCategoryMapping(393, TorznabCatType.TVOther, "|- [Видео Юмор] Музыкальные шоу"); + caps.Categories.AddCategoryMapping(1569, TorznabCatType.TVOther, "|- [Видео Юмор] Званый ужин"); + caps.Categories.AddCategoryMapping(373, TorznabCatType.TVOther, "|- [Видео Юмор] Хорошие Шутки"); + caps.Categories.AddCategoryMapping(1186, TorznabCatType.TVOther, "|- [Видео Юмор] Вечерний Квартал"); + caps.Categories.AddCategoryMapping(137, TorznabCatType.TVOther, "|- [Видео Юмор] Фильмы со смешным переводом (пародии)"); + caps.Categories.AddCategoryMapping(2537, TorznabCatType.TVOther, "|- [Видео Юмор] Stand-up comedy"); + caps.Categories.AddCategoryMapping(532, TorznabCatType.TVOther, "|- [Видео Юмор] Украинские Шоу"); + caps.Categories.AddCategoryMapping(827, TorznabCatType.TVOther, "|- [Видео Юмор] Танцевальные шоу, концерты, выступления"); + caps.Categories.AddCategoryMapping(1484, TorznabCatType.TVOther, "|- [Видео Юмор] Цирк"); + caps.Categories.AddCategoryMapping(1485, TorznabCatType.TVOther, "|- [Видео Юмор] Школа злословия"); + caps.Categories.AddCategoryMapping(114, TorznabCatType.TVOther, "|- [Видео Юмор] Сатирики и юмористы"); + caps.Categories.AddCategoryMapping(1332, TorznabCatType.TVOther, "|- Юмористические аудиопередачи"); + caps.Categories.AddCategoryMapping(1495, TorznabCatType.TVOther, "|- Аудио и видео ролики (Приколы и юмор)"); + caps.Categories.AddCategoryMapping(1392, TorznabCatType.TVSport, "XXXII Летние Олимпийские игры 2020"); + caps.Categories.AddCategoryMapping(2475, TorznabCatType.TVSport, "|- Легкая атлетика"); + caps.Categories.AddCategoryMapping(2493, TorznabCatType.TVSport, "|- Плавание. Прыжки в воду. Синхронное плавание"); + caps.Categories.AddCategoryMapping(2113, TorznabCatType.TVSport, "|- Спортивная гимнастика. Художественная гимнастика. Прыжки на батуте"); + caps.Categories.AddCategoryMapping(2482, TorznabCatType.TVSport, "|- Велоспорт"); + caps.Categories.AddCategoryMapping(2103, TorznabCatType.TVSport, "|- Академическая гребля. Гребля на байдарках и каноэ"); + caps.Categories.AddCategoryMapping(2522, TorznabCatType.TVSport, "|- Бокс. Борьба Вольная и Греко-римская. Дзюдо. Карате. Тхэквондо"); + caps.Categories.AddCategoryMapping(2485, TorznabCatType.TVSport, "|- Футбол"); + caps.Categories.AddCategoryMapping(2486, TorznabCatType.TVSport, "|- Баскетбол. Волейбол. Гандбол. Водное поло. Регби. Хоккей на траве"); + caps.Categories.AddCategoryMapping(2479, TorznabCatType.TVSport, "|- Теннис. Настольный теннис. Бадминтон"); + caps.Categories.AddCategoryMapping(2089, TorznabCatType.TVSport, "|- Фехтование. Стрельба. Стрельба из лука. Современное пятиборье"); + caps.Categories.AddCategoryMapping(1794, TorznabCatType.TVSport, "|- Другие виды спорта"); + caps.Categories.AddCategoryMapping(2338, TorznabCatType.TVSport, "|- Обзорные и аналитические программы"); + caps.Categories.AddCategoryMapping(1315, TorznabCatType.TVSport, "XXIV Зимние Олимпийские игры 2022"); + caps.Categories.AddCategoryMapping(1336, TorznabCatType.TVSport, "|- Биатлон"); + caps.Categories.AddCategoryMapping(2171, TorznabCatType.TVSport, "|- Лыжные гонки"); + caps.Categories.AddCategoryMapping(1339, TorznabCatType.TVSport, "|- Прыжки на лыжах с трамплина / Лыжное двоеборье"); + caps.Categories.AddCategoryMapping(2455, TorznabCatType.TVSport, "|- Горные лыжи / Сноубординг / Фристайл"); + caps.Categories.AddCategoryMapping(1434, TorznabCatType.TVSport, "|- Бобслей / Санный спорт / Скелетон"); + caps.Categories.AddCategoryMapping(2350, TorznabCatType.TVSport, "|- Конькобежный спорт / Шорт-трек"); + caps.Categories.AddCategoryMapping(1472, TorznabCatType.TVSport, "|- Фигурное катание"); + caps.Categories.AddCategoryMapping(2068, TorznabCatType.TVSport, "|- Хоккей"); + caps.Categories.AddCategoryMapping(2016, TorznabCatType.TVSport, "|- Керлинг"); + caps.Categories.AddCategoryMapping(1311, TorznabCatType.TVSport, "|- Обзорные и аналитические программы"); + caps.Categories.AddCategoryMapping(255, TorznabCatType.TVSport, "Спортивные турниры, фильмы и передачи"); + caps.Categories.AddCategoryMapping(256, TorznabCatType.TVSport, "|- Автоспорт"); + caps.Categories.AddCategoryMapping(1986, TorznabCatType.TVSport, "|- Мотоспорт"); + caps.Categories.AddCategoryMapping(660, TorznabCatType.TVSport, "|- Формула-1 (2022)"); + caps.Categories.AddCategoryMapping(1551, TorznabCatType.TVSport, "|- Формула-1 (2012-2021)"); + caps.Categories.AddCategoryMapping(626, TorznabCatType.TVSport, "|- Формула 1 (до 2011 вкл.)"); + caps.Categories.AddCategoryMapping(262, TorznabCatType.TVSport, "|- Велоспорт"); + caps.Categories.AddCategoryMapping(1326, TorznabCatType.TVSport, "|- Волейбол/Гандбол"); + caps.Categories.AddCategoryMapping(978, TorznabCatType.TVSport, "|- Бильярд"); + caps.Categories.AddCategoryMapping(1287, TorznabCatType.TVSport, "|- Покер"); + caps.Categories.AddCategoryMapping(1188, TorznabCatType.TVSport, "|- Бодибилдинг/Силовые виды спорта"); + caps.Categories.AddCategoryMapping(1667, TorznabCatType.TVSport, "|- Бокс"); + caps.Categories.AddCategoryMapping(1675, TorznabCatType.TVSport, "|- Классические единоборства"); + caps.Categories.AddCategoryMapping(257, TorznabCatType.TVSport, "|- Смешанные единоборства и K-1"); + caps.Categories.AddCategoryMapping(875, TorznabCatType.TVSport, "|- Американский футбол"); + caps.Categories.AddCategoryMapping(263, TorznabCatType.TVSport, "|- Регби"); + caps.Categories.AddCategoryMapping(2073, TorznabCatType.TVSport, "|- Бейсбол"); + caps.Categories.AddCategoryMapping(550, TorznabCatType.TVSport, "|- Теннис"); + caps.Categories.AddCategoryMapping(2124, TorznabCatType.TVSport, "|- Бадминтон/Настольный теннис"); + caps.Categories.AddCategoryMapping(1470, TorznabCatType.TVSport, "|- Гимнастика/Соревнования по танцам"); + caps.Categories.AddCategoryMapping(528, TorznabCatType.TVSport, "|- Лёгкая атлетика/Водные виды спорта"); + caps.Categories.AddCategoryMapping(486, TorznabCatType.TVSport, "|- Зимние виды спорта"); + caps.Categories.AddCategoryMapping(854, TorznabCatType.TVSport, "|- Фигурное катание"); + caps.Categories.AddCategoryMapping(2079, TorznabCatType.TVSport, "|- Биатлон"); + caps.Categories.AddCategoryMapping(260, TorznabCatType.TVSport, "|- Экстрим"); + caps.Categories.AddCategoryMapping(1319, TorznabCatType.TVSport, "|- Спорт (видео)"); + caps.Categories.AddCategoryMapping(1608, TorznabCatType.TVSport, "⚽ Футбол"); + caps.Categories.AddCategoryMapping(2294, TorznabCatType.TVSport, "|- UHDTV"); + caps.Categories.AddCategoryMapping(1229, TorznabCatType.TVSport, "|- Чемпионат Мира 2022 (финальный турнир)"); + caps.Categories.AddCategoryMapping(1693, TorznabCatType.TVSport, "|- Чемпионат Мира 2022 (отбор)"); + caps.Categories.AddCategoryMapping(2532, TorznabCatType.TVSport, "|- Чемпионат Европы 2020 [2021] (финальный турнир)"); + caps.Categories.AddCategoryMapping(136, TorznabCatType.TVSport, "|- Чемпионат Европы 2020 [2021] (отбор)"); + caps.Categories.AddCategoryMapping(592, TorznabCatType.TVSport, "|- Лига Наций"); + caps.Categories.AddCategoryMapping(2533, TorznabCatType.TVSport, "|- Чемпионат Мира 2018 (игры)"); + caps.Categories.AddCategoryMapping(1952, TorznabCatType.TVSport, "|- Чемпионат Мира 2018 (обзорные передачи, документалистика)"); + caps.Categories.AddCategoryMapping(1621, TorznabCatType.TVSport, "|- Чемпионаты Мира"); + caps.Categories.AddCategoryMapping(2075, TorznabCatType.TVSport, "|- Россия 2022-2023"); + caps.Categories.AddCategoryMapping(1668, TorznabCatType.TVSport, "|- Россия 2021-2022"); + caps.Categories.AddCategoryMapping(1613, TorznabCatType.TVSport, "|- Россия/СССР"); + caps.Categories.AddCategoryMapping(1614, TorznabCatType.TVSport, "|- Англия"); + caps.Categories.AddCategoryMapping(1623, TorznabCatType.TVSport, "|- Испания"); + caps.Categories.AddCategoryMapping(1615, TorznabCatType.TVSport, "|- Италия"); + caps.Categories.AddCategoryMapping(1630, TorznabCatType.TVSport, "|- Германия"); + caps.Categories.AddCategoryMapping(2425, TorznabCatType.TVSport, "|- Франция"); + caps.Categories.AddCategoryMapping(2514, TorznabCatType.TVSport, "|- Украина"); + caps.Categories.AddCategoryMapping(1616, TorznabCatType.TVSport, "|- Другие национальные чемпионаты и кубки"); + caps.Categories.AddCategoryMapping(2014, TorznabCatType.TVSport, "|- Международные турниры"); + caps.Categories.AddCategoryMapping(1442, TorznabCatType.TVSport, "|- Еврокубки 2022-2023"); + caps.Categories.AddCategoryMapping(1491, TorznabCatType.TVSport, "|- Еврокубки 2021-2022"); + caps.Categories.AddCategoryMapping(1987, TorznabCatType.TVSport, "|- Еврокубки 2011-2021"); + caps.Categories.AddCategoryMapping(1617, TorznabCatType.TVSport, "|- Еврокубки"); + caps.Categories.AddCategoryMapping(1620, TorznabCatType.TVSport, "|- Чемпионаты Европы"); + caps.Categories.AddCategoryMapping(1998, TorznabCatType.TVSport, "|- Товарищеские турниры и матчи"); + caps.Categories.AddCategoryMapping(1343, TorznabCatType.TVSport, "|- Обзорные и аналитические передачи 2018-2022"); + caps.Categories.AddCategoryMapping(751, TorznabCatType.TVSport, "|- Обзорные и аналитические передачи"); + caps.Categories.AddCategoryMapping(497, TorznabCatType.TVSport, "|- Документальные фильмы (футбол)"); + caps.Categories.AddCategoryMapping(1697, TorznabCatType.TVSport, "|- Мини-футбол/Пляжный футбол"); + caps.Categories.AddCategoryMapping(2004, TorznabCatType.TVSport, "🏀 Баскетбол"); + caps.Categories.AddCategoryMapping(2001, TorznabCatType.TVSport, "|- Международные соревнования"); + caps.Categories.AddCategoryMapping(2002, TorznabCatType.TVSport, "|- NBA / NCAA (до 2000 г.)"); + caps.Categories.AddCategoryMapping(283, TorznabCatType.TVSport, "|- NBA / NCAA (2000-2010 гг.)"); + caps.Categories.AddCategoryMapping(1997, TorznabCatType.TVSport, "|- NBA / NCAA (2010-2023 гг.)"); + caps.Categories.AddCategoryMapping(2003, TorznabCatType.TVSport, "|- Европейский клубный баскетбол"); + caps.Categories.AddCategoryMapping(2009, TorznabCatType.TVSport, "🏒 Хоккей"); + caps.Categories.AddCategoryMapping(2010, TorznabCatType.TVSport, "|- Хоккей с мячом / Бенди"); + caps.Categories.AddCategoryMapping(2006, TorznabCatType.TVSport, "|- Международные турниры"); + caps.Categories.AddCategoryMapping(2007, TorznabCatType.TVSport, "|- КХЛ"); + caps.Categories.AddCategoryMapping(2005, TorznabCatType.TVSport, "|- НХЛ (до 2011/12)"); + caps.Categories.AddCategoryMapping(259, TorznabCatType.TVSport, "|- НХЛ (с 2013)"); + caps.Categories.AddCategoryMapping(2008, TorznabCatType.TVSport, "|- СССР - Канада"); + caps.Categories.AddCategoryMapping(126, TorznabCatType.TVSport, "|- Документальные фильмы и аналитика"); + caps.Categories.AddCategoryMapping(845, TorznabCatType.TVSport, "Рестлинг"); + caps.Categories.AddCategoryMapping(343, TorznabCatType.TVSport, "|- Professional Wrestling"); + caps.Categories.AddCategoryMapping(2111, TorznabCatType.TVSport, "|- Independent Wrestling"); + caps.Categories.AddCategoryMapping(1527, TorznabCatType.TVSport, "|- International Wrestling"); + caps.Categories.AddCategoryMapping(2069, TorznabCatType.TVSport, "|- Oldschool Wrestling"); + caps.Categories.AddCategoryMapping(1323, TorznabCatType.TVSport, "|- Documentary Wrestling"); + caps.Categories.AddCategoryMapping(1346, TorznabCatType.TVSport, "Для дооформления раздач"); + caps.Categories.AddCategoryMapping(1411, TorznabCatType.TVSport, "|- Сканирование, обработка сканов"); + caps.Categories.AddCategoryMapping(21, TorznabCatType.Books, "Книги и журналы (общий раздел)"); + caps.Categories.AddCategoryMapping(2157, TorznabCatType.Books, "|- Кино, театр, ТВ, мультипликация, цирк"); + caps.Categories.AddCategoryMapping(765, TorznabCatType.Books, "|- Рисунок, графический дизайн"); + caps.Categories.AddCategoryMapping(2019, TorznabCatType.Books, "|- Фото и видеосъемка"); + caps.Categories.AddCategoryMapping(31, TorznabCatType.BooksMags, "|- Журналы и газеты (общий раздел)"); + caps.Categories.AddCategoryMapping(1427, TorznabCatType.Books, "|- Эзотерика, гадания, магия, фен-шуй"); + caps.Categories.AddCategoryMapping(2422, TorznabCatType.Books, "|- Астрология"); + caps.Categories.AddCategoryMapping(2195, TorznabCatType.Books, "|- Красота. Уход. Домоводство"); + caps.Categories.AddCategoryMapping(2521, TorznabCatType.Books, "|- Мода. Стиль. Этикет"); + caps.Categories.AddCategoryMapping(2223, TorznabCatType.Books, "|- Путешествия и туризм"); + caps.Categories.AddCategoryMapping(2447, TorznabCatType.Books, "|- Знаменитости и кумиры"); + caps.Categories.AddCategoryMapping(39, TorznabCatType.Books, "|- Разное (книги)"); + caps.Categories.AddCategoryMapping(2086, TorznabCatType.Books, "|- Самиздат, статьи из журналов, фрагменты книг"); + caps.Categories.AddCategoryMapping(1101, TorznabCatType.Books, "Для детей, родителей и учителей"); + caps.Categories.AddCategoryMapping(745, TorznabCatType.Books, "|- Учебная литература для детского сада и начальной школы (до 4 класса)"); + caps.Categories.AddCategoryMapping(1689, TorznabCatType.Books, "|- Учебная литература для старших классов (5-11 класс)"); + caps.Categories.AddCategoryMapping(2336, TorznabCatType.Books, "|- Учителям и педагогам"); + caps.Categories.AddCategoryMapping(2337, TorznabCatType.Books, "|- Научно-популярная и познавательная литература (для детей)"); + caps.Categories.AddCategoryMapping(1353, TorznabCatType.Books, "|- Досуг и творчество"); + caps.Categories.AddCategoryMapping(1400, TorznabCatType.Books, "|- Воспитание и развитие"); + caps.Categories.AddCategoryMapping(1415, TorznabCatType.Books, "|- Худ. лит-ра для дошкольников и младших классов"); + caps.Categories.AddCategoryMapping(2046, TorznabCatType.Books, "|- Худ. лит-ра для средних и старших классов"); + caps.Categories.AddCategoryMapping(1802, TorznabCatType.Books, "Спорт, физическая культура, боевые искусства"); + caps.Categories.AddCategoryMapping(2189, TorznabCatType.Books, "|- Футбол (книги и журналы)"); + caps.Categories.AddCategoryMapping(2190, TorznabCatType.Books, "|- Хоккей (книги и журналы)"); + caps.Categories.AddCategoryMapping(2443, TorznabCatType.Books, "|- Игровые виды спорта"); + caps.Categories.AddCategoryMapping(1477, TorznabCatType.Books, "|- Легкая атлетика. Плавание. Гимнастика. Тяжелая атлетика. Гребля"); + caps.Categories.AddCategoryMapping(669, TorznabCatType.Books, "|- Автоспорт. Мотоспорт. Велоспорт"); + caps.Categories.AddCategoryMapping(2196, TorznabCatType.Books, "|- Шахматы. Шашки"); + caps.Categories.AddCategoryMapping(2056, TorznabCatType.Books, "|- Боевые искусства, единоборства"); + caps.Categories.AddCategoryMapping(1436, TorznabCatType.Books, "|- Экстрим (книги)"); + caps.Categories.AddCategoryMapping(2191, TorznabCatType.Books, "|- Физкультура, фитнес, бодибилдинг"); + caps.Categories.AddCategoryMapping(2477, TorznabCatType.Books, "|- Спортивная пресса"); + caps.Categories.AddCategoryMapping(1680, TorznabCatType.Books, "Гуманитарные науки"); + caps.Categories.AddCategoryMapping(1684, TorznabCatType.Books, "|- Искусствоведение. Культурология"); + caps.Categories.AddCategoryMapping(2446, TorznabCatType.Books, "|- Фольклор. Эпос. Мифология"); + caps.Categories.AddCategoryMapping(2524, TorznabCatType.Books, "|- Литературоведение"); + caps.Categories.AddCategoryMapping(2525, TorznabCatType.Books, "|- Лингвистика"); + caps.Categories.AddCategoryMapping(995, TorznabCatType.Books, "|- Философия"); + caps.Categories.AddCategoryMapping(2022, TorznabCatType.Books, "|- Политология"); + caps.Categories.AddCategoryMapping(2471, TorznabCatType.Books, "|- Социология"); + caps.Categories.AddCategoryMapping(2375, TorznabCatType.Books, "|- Публицистика, журналистика"); + caps.Categories.AddCategoryMapping(764, TorznabCatType.Books, "|- Бизнес, менеджмент"); + caps.Categories.AddCategoryMapping(1685, TorznabCatType.Books, "|- Маркетинг"); + caps.Categories.AddCategoryMapping(1688, TorznabCatType.Books, "|- Экономика"); + caps.Categories.AddCategoryMapping(2472, TorznabCatType.Books, "|- Финансы"); + caps.Categories.AddCategoryMapping(1687, TorznabCatType.Books, "|- Юридические науки. Право. Криминалистика"); + caps.Categories.AddCategoryMapping(2020, TorznabCatType.Books, "Исторические науки"); + caps.Categories.AddCategoryMapping(1349, TorznabCatType.Books, "|- Методология и философия исторической науки"); + caps.Categories.AddCategoryMapping(1967, TorznabCatType.Books, "|- Исторические источники (книги, периодика)"); + caps.Categories.AddCategoryMapping(1341, TorznabCatType.Books, "|- Исторические источники (документы)"); + caps.Categories.AddCategoryMapping(2049, TorznabCatType.Books, "|- Исторические персоны"); + caps.Categories.AddCategoryMapping(1681, TorznabCatType.Books, "|- Альтернативные исторические теории"); + caps.Categories.AddCategoryMapping(2319, TorznabCatType.Books, "|- Археология"); + caps.Categories.AddCategoryMapping(2434, TorznabCatType.Books, "|- Древний мир. Античность"); + caps.Categories.AddCategoryMapping(1683, TorznabCatType.Books, "|- Средние века"); + caps.Categories.AddCategoryMapping(2444, TorznabCatType.Books, "|- История Нового и Новейшего времени"); + caps.Categories.AddCategoryMapping(2427, TorznabCatType.Books, "|- История Европы"); + caps.Categories.AddCategoryMapping(2452, TorznabCatType.Books, "|- История Азии и Африки"); + caps.Categories.AddCategoryMapping(2445, TorznabCatType.Books, "|- История Америки, Австралии, Океании"); + caps.Categories.AddCategoryMapping(2435, TorznabCatType.Books, "|- История России"); + caps.Categories.AddCategoryMapping(667, TorznabCatType.Books, "|- История России до 1917 года"); + caps.Categories.AddCategoryMapping(2436, TorznabCatType.Books, "|- Эпоха СССР"); + caps.Categories.AddCategoryMapping(1335, TorznabCatType.Books, "|- История России после 1991 года"); + caps.Categories.AddCategoryMapping(2453, TorznabCatType.Books, "|- История стран бывшего СССР"); + caps.Categories.AddCategoryMapping(2320, TorznabCatType.Books, "|- Этнография, антропология"); + caps.Categories.AddCategoryMapping(1801, TorznabCatType.Books, "|- Международные отношения. Дипломатия"); + caps.Categories.AddCategoryMapping(2023, TorznabCatType.BooksTechnical, "Точные, естественные и инженерные науки"); + caps.Categories.AddCategoryMapping(2024, TorznabCatType.BooksTechnical, "|- Авиация / Космонавтика"); + caps.Categories.AddCategoryMapping(2026, TorznabCatType.BooksTechnical, "|- Физика"); + caps.Categories.AddCategoryMapping(2192, TorznabCatType.BooksTechnical, "|- Астрономия"); + caps.Categories.AddCategoryMapping(2027, TorznabCatType.BooksTechnical, "|- Биология / Экология"); + caps.Categories.AddCategoryMapping(295, TorznabCatType.BooksTechnical, "|- Химия / Биохимия"); + caps.Categories.AddCategoryMapping(2028, TorznabCatType.BooksTechnical, "|- Математика"); + caps.Categories.AddCategoryMapping(2029, TorznabCatType.BooksTechnical, "|- География / Геология / Геодезия"); + caps.Categories.AddCategoryMapping(1325, TorznabCatType.BooksTechnical, "|- Электроника / Радио"); + caps.Categories.AddCategoryMapping(2386, TorznabCatType.BooksTechnical, "|- Схемы и сервис-мануалы (оригинальная документация)"); + caps.Categories.AddCategoryMapping(2031, TorznabCatType.BooksTechnical, "|- Архитектура / Строительство / Инженерные сети / Ландшафтный дизайн"); + caps.Categories.AddCategoryMapping(2030, TorznabCatType.BooksTechnical, "|- Машиностроение"); + caps.Categories.AddCategoryMapping(2526, TorznabCatType.BooksTechnical, "|- Сварка / Пайка / Неразрушающий контроль"); + caps.Categories.AddCategoryMapping(2527, TorznabCatType.BooksTechnical, "|- Автоматизация / Робототехника"); + caps.Categories.AddCategoryMapping(2254, TorznabCatType.BooksTechnical, "|- Металлургия / Материаловедение"); + caps.Categories.AddCategoryMapping(2376, TorznabCatType.BooksTechnical, "|- Механика, сопротивление материалов"); + caps.Categories.AddCategoryMapping(2054, TorznabCatType.BooksTechnical, "|- Энергетика / электротехника"); + caps.Categories.AddCategoryMapping(770, TorznabCatType.BooksTechnical, "|- Нефтяная, газовая и химическая промышленность"); + caps.Categories.AddCategoryMapping(2476, TorznabCatType.BooksTechnical, "|- Сельское хозяйство и пищевая промышленность"); + caps.Categories.AddCategoryMapping(2494, TorznabCatType.BooksTechnical, "|- Железнодорожное дело"); + caps.Categories.AddCategoryMapping(1528, TorznabCatType.BooksTechnical, "|- Нормативная документация"); + caps.Categories.AddCategoryMapping(2032, TorznabCatType.BooksTechnical, "|- Журналы: научные, научно-популярные, радио и др."); + caps.Categories.AddCategoryMapping(919, TorznabCatType.Books, "Ноты и Музыкальная литература"); + caps.Categories.AddCategoryMapping(944, TorznabCatType.Books, "|- Академическая музыка (Ноты и Media CD)"); + caps.Categories.AddCategoryMapping(980, TorznabCatType.Books, "|- Другие направления (Ноты, табулатуры)"); + caps.Categories.AddCategoryMapping(946, TorznabCatType.Books, "|- Самоучители и Школы"); + caps.Categories.AddCategoryMapping(977, TorznabCatType.Books, "|- Песенники (Songbooks)"); + caps.Categories.AddCategoryMapping(2074, TorznabCatType.Books, "|- Музыкальная литература и Теория"); + caps.Categories.AddCategoryMapping(2349, TorznabCatType.Books, "|- Музыкальные журналы"); + caps.Categories.AddCategoryMapping(768, TorznabCatType.Books, "Военное дело"); + caps.Categories.AddCategoryMapping(2099, TorznabCatType.Books, "|- Милитария"); + caps.Categories.AddCategoryMapping(2021, TorznabCatType.Books, "|- Военная история"); + caps.Categories.AddCategoryMapping(2437, TorznabCatType.Books, "|- История Второй мировой войны"); + caps.Categories.AddCategoryMapping(1337, TorznabCatType.Books, "|- Биографии и мемуары военных деятелей"); + caps.Categories.AddCategoryMapping(1447, TorznabCatType.Books, "|- Военная техника"); + caps.Categories.AddCategoryMapping(2468, TorznabCatType.Books, "|- Стрелковое оружие"); + caps.Categories.AddCategoryMapping(2469, TorznabCatType.Books, "|- Учебно-методическая литература"); + caps.Categories.AddCategoryMapping(2470, TorznabCatType.Books, "|- Спецслужбы мира"); + caps.Categories.AddCategoryMapping(1686, TorznabCatType.Books, "Вера и религия"); + caps.Categories.AddCategoryMapping(2215, TorznabCatType.Books, "|- Христианство"); + caps.Categories.AddCategoryMapping(2216, TorznabCatType.Books, "|- Ислам"); + caps.Categories.AddCategoryMapping(2217, TorznabCatType.Books, "|- Религии Индии, Тибета и Восточной Азии / Иудаизм"); + caps.Categories.AddCategoryMapping(2218, TorznabCatType.Books, "|- Нетрадиционные религиозные, духовные и мистические учения"); + caps.Categories.AddCategoryMapping(2252, TorznabCatType.Books, "|- Религиоведение. История Религии"); + caps.Categories.AddCategoryMapping(2543, TorznabCatType.Books, "|- Атеизм. Научный атеизм"); + caps.Categories.AddCategoryMapping(767, TorznabCatType.Books, "Психология"); + caps.Categories.AddCategoryMapping(2515, TorznabCatType.Books, "|- Общая и прикладная психология"); + caps.Categories.AddCategoryMapping(2516, TorznabCatType.Books, "|- Психотерапия и консультирование"); + caps.Categories.AddCategoryMapping(2517, TorznabCatType.Books, "|- Психодиагностика и психокоррекция"); + caps.Categories.AddCategoryMapping(2518, TorznabCatType.Books, "|- Социальная психология и психология отношений"); + caps.Categories.AddCategoryMapping(2519, TorznabCatType.Books, "|- Тренинг и коучинг"); + caps.Categories.AddCategoryMapping(2520, TorznabCatType.Books, "|- Саморазвитие и самосовершенствование"); + caps.Categories.AddCategoryMapping(1696, TorznabCatType.Books, "|- Популярная психология"); + caps.Categories.AddCategoryMapping(2253, TorznabCatType.Books, "|- Сексология. Взаимоотношения полов (18+)"); + caps.Categories.AddCategoryMapping(2033, TorznabCatType.Books, "Коллекционирование, увлечения и хобби"); + caps.Categories.AddCategoryMapping(1412, TorznabCatType.Books, "|- Коллекционирование и вспомогательные ист. дисциплины"); + caps.Categories.AddCategoryMapping(1446, TorznabCatType.Books, "|- Вышивание"); + caps.Categories.AddCategoryMapping(753, TorznabCatType.Books, "|- Вязание"); + caps.Categories.AddCategoryMapping(2037, TorznabCatType.Books, "|- Шитье, пэчворк"); + caps.Categories.AddCategoryMapping(2224, TorznabCatType.Books, "|- Кружевоплетение"); + caps.Categories.AddCategoryMapping(2194, TorznabCatType.Books, "|- Бисероплетение. Ювелирика. Украшения из проволоки."); + caps.Categories.AddCategoryMapping(2418, TorznabCatType.Books, "|- Бумажный арт"); + caps.Categories.AddCategoryMapping(1410, TorznabCatType.Books, "|- Другие виды декоративно-прикладного искусства"); + caps.Categories.AddCategoryMapping(2034, TorznabCatType.Books, "|- Домашние питомцы и аквариумистика"); + caps.Categories.AddCategoryMapping(2433, TorznabCatType.Books, "|- Охота и рыбалка"); + caps.Categories.AddCategoryMapping(1961, TorznabCatType.Books, "|- Кулинария (книги)"); + caps.Categories.AddCategoryMapping(2432, TorznabCatType.Books, "|- Кулинария (газеты и журналы)"); + caps.Categories.AddCategoryMapping(565, TorznabCatType.Books, "|- Моделизм"); + caps.Categories.AddCategoryMapping(1523, TorznabCatType.Books, "|- Приусадебное хозяйство / Цветоводство"); + caps.Categories.AddCategoryMapping(1575, TorznabCatType.Books, "|- Ремонт, частное строительство, дизайн интерьеров"); + caps.Categories.AddCategoryMapping(1520, TorznabCatType.Books, "|- Деревообработка"); + caps.Categories.AddCategoryMapping(2424, TorznabCatType.Books, "|- Настольные игры"); + caps.Categories.AddCategoryMapping(769, TorznabCatType.Books, "|- Прочие хобби и игры"); + caps.Categories.AddCategoryMapping(2038, TorznabCatType.Books, "Художественная литература"); + caps.Categories.AddCategoryMapping(2043, TorznabCatType.Books, "|- Русская литература"); + caps.Categories.AddCategoryMapping(2042, TorznabCatType.Books, "|- Зарубежная литература (до 1900 г.)"); + caps.Categories.AddCategoryMapping(2041, TorznabCatType.Books, "|- Зарубежная литература (XX и XXI век)"); + caps.Categories.AddCategoryMapping(2044, TorznabCatType.Books, "|- Детектив, боевик"); + caps.Categories.AddCategoryMapping(2039, TorznabCatType.Books, "|- Женский роман"); + caps.Categories.AddCategoryMapping(2045, TorznabCatType.Books, "|- Отечественная фантастика / фэнтези / мистика"); + caps.Categories.AddCategoryMapping(2080, TorznabCatType.Books, "|- Зарубежная фантастика / фэнтези / мистика"); + caps.Categories.AddCategoryMapping(2047, TorznabCatType.Books, "|- Приключения"); + caps.Categories.AddCategoryMapping(2193, TorznabCatType.Books, "|- Литературные журналы"); + caps.Categories.AddCategoryMapping(1037, TorznabCatType.Books, "|- Самиздат и книги, изданные за счет авторов"); + caps.Categories.AddCategoryMapping(1418, TorznabCatType.BooksTechnical, "Компьютерная литература"); + caps.Categories.AddCategoryMapping(1422, TorznabCatType.BooksTechnical, "|- Программы от Microsoft"); + caps.Categories.AddCategoryMapping(1423, TorznabCatType.BooksTechnical, "|- Другие программы"); + caps.Categories.AddCategoryMapping(1424, TorznabCatType.BooksTechnical, "|- Mac OS; Linux, FreeBSD и прочие *NIX"); + caps.Categories.AddCategoryMapping(1445, TorznabCatType.BooksTechnical, "|- СУБД"); + caps.Categories.AddCategoryMapping(1425, TorznabCatType.BooksTechnical, "|- Веб-дизайн и программирование"); + caps.Categories.AddCategoryMapping(1426, TorznabCatType.BooksTechnical, "|- Программирование (книги)"); + caps.Categories.AddCategoryMapping(1428, TorznabCatType.BooksTechnical, "|- Графика, обработка видео"); + caps.Categories.AddCategoryMapping(1429, TorznabCatType.BooksTechnical, "|- Сети / VoIP"); + caps.Categories.AddCategoryMapping(1430, TorznabCatType.BooksTechnical, "|- Хакинг и безопасность"); + caps.Categories.AddCategoryMapping(1431, TorznabCatType.BooksTechnical, "|- Железо (книги о ПК)"); + caps.Categories.AddCategoryMapping(1433, TorznabCatType.BooksTechnical, "|- Инженерные и научные программы (книги)"); + caps.Categories.AddCategoryMapping(1432, TorznabCatType.BooksTechnical, "|- Компьютерные журналы и приложения к ним"); + caps.Categories.AddCategoryMapping(2202, TorznabCatType.BooksTechnical, "|- Дисковые приложения к игровым журналам"); + caps.Categories.AddCategoryMapping(862, TorznabCatType.BooksComics, "Комиксы, манга, ранобэ"); + caps.Categories.AddCategoryMapping(2461, TorznabCatType.BooksComics, "|- Комиксы на русском языке"); + caps.Categories.AddCategoryMapping(2462, TorznabCatType.BooksComics, "|- Комиксы издательства Marvel"); + caps.Categories.AddCategoryMapping(2463, TorznabCatType.BooksComics, "|- Комиксы издательства DC"); + caps.Categories.AddCategoryMapping(2464, TorznabCatType.BooksComics, "|- Комиксы других издательств"); + caps.Categories.AddCategoryMapping(2473, TorznabCatType.BooksComics, "|- Комиксы на других языках"); + caps.Categories.AddCategoryMapping(281, TorznabCatType.BooksComics, "|- Манга (на русском языке)"); + caps.Categories.AddCategoryMapping(2465, TorznabCatType.BooksComics, "|- Манга (на иностранных языках)"); + caps.Categories.AddCategoryMapping(2458, TorznabCatType.BooksComics, "|- Ранобэ"); + caps.Categories.AddCategoryMapping(2048, TorznabCatType.BooksOther, "Коллекции книг и библиотеки"); + caps.Categories.AddCategoryMapping(1238, TorznabCatType.BooksOther, "|- Библиотеки (зеркала сетевых библиотек/коллекций)"); + caps.Categories.AddCategoryMapping(2055, TorznabCatType.BooksOther, "|- Тематические коллекции (подборки)"); + caps.Categories.AddCategoryMapping(754, TorznabCatType.BooksOther, "|- Многопредметные коллекции (подборки)"); + caps.Categories.AddCategoryMapping(2114, TorznabCatType.BooksEBook, "Мультимедийные и интерактивные издания"); + caps.Categories.AddCategoryMapping(2438, TorznabCatType.BooksEBook, "|- Мультимедийные энциклопедии"); + caps.Categories.AddCategoryMapping(2439, TorznabCatType.BooksEBook, "|- Интерактивные обучающие и развивающие материалы"); + caps.Categories.AddCategoryMapping(2440, TorznabCatType.BooksEBook, "|- Обучающие издания для детей"); + caps.Categories.AddCategoryMapping(2441, TorznabCatType.BooksEBook, "|- Кулинария. Цветоводство. Домоводство"); + caps.Categories.AddCategoryMapping(2442, TorznabCatType.BooksEBook, "|- Культура. Искусство. История"); + caps.Categories.AddCategoryMapping(2125, TorznabCatType.Books, "Медицина и здоровье"); + caps.Categories.AddCategoryMapping(2133, TorznabCatType.Books, "|- Клиническая медицина до 1980 г."); + caps.Categories.AddCategoryMapping(2130, TorznabCatType.Books, "|- Клиническая медицина с 1980 по 2000 г."); + caps.Categories.AddCategoryMapping(2313, TorznabCatType.Books, "|- Клиническая медицина после 2000 г."); + caps.Categories.AddCategoryMapping(2528, TorznabCatType.Books, "|- Научная медицинская периодика (газеты и журналы)"); + caps.Categories.AddCategoryMapping(2129, TorznabCatType.Books, "|- Медико-биологические науки"); + caps.Categories.AddCategoryMapping(2141, TorznabCatType.Books, "|- Фармация и фармакология"); + caps.Categories.AddCategoryMapping(2314, TorznabCatType.Books, "|- Популярная медицинская периодика (газеты и журналы)"); + caps.Categories.AddCategoryMapping(2132, TorznabCatType.Books, "|- Нетрадиционная, народная медицина и популярные книги о здоровье"); + caps.Categories.AddCategoryMapping(2131, TorznabCatType.Books, "|- Ветеринария, разное"); + caps.Categories.AddCategoryMapping(2315, TorznabCatType.Books, "|- Тематические коллекции книг"); + caps.Categories.AddCategoryMapping(2362, TorznabCatType.BooksEBook, "Иностранные языки для взрослых"); + caps.Categories.AddCategoryMapping(1265, TorznabCatType.BooksEBook, "|- Английский язык (для взрослых)"); + caps.Categories.AddCategoryMapping(1266, TorznabCatType.BooksEBook, "|- Немецкий язык"); + caps.Categories.AddCategoryMapping(1267, TorznabCatType.BooksEBook, "|- Французский язык"); + caps.Categories.AddCategoryMapping(1358, TorznabCatType.BooksEBook, "|- Испанский язык"); + caps.Categories.AddCategoryMapping(2363, TorznabCatType.BooksEBook, "|- Итальянский язык"); + caps.Categories.AddCategoryMapping(734, TorznabCatType.BooksEBook, "|- Финский язык"); + caps.Categories.AddCategoryMapping(1268, TorznabCatType.BooksEBook, "|- Другие европейские языки"); + caps.Categories.AddCategoryMapping(1673, TorznabCatType.BooksEBook, "|- Арабский язык"); + caps.Categories.AddCategoryMapping(1269, TorznabCatType.BooksEBook, "|- Китайский язык"); + caps.Categories.AddCategoryMapping(1270, TorznabCatType.BooksEBook, "|- Японский язык"); + caps.Categories.AddCategoryMapping(1275, TorznabCatType.BooksEBook, "|- Другие восточные языки"); + caps.Categories.AddCategoryMapping(2364, TorznabCatType.BooksEBook, "|- Русский язык как иностранный"); + caps.Categories.AddCategoryMapping(1276, TorznabCatType.BooksEBook, "|- Мультиязычные сборники и курсы"); + caps.Categories.AddCategoryMapping(2094, TorznabCatType.BooksEBook, "|- LIM-курсы"); + caps.Categories.AddCategoryMapping(1274, TorznabCatType.BooksEBook, "|- Разное (иностранные языки)"); + caps.Categories.AddCategoryMapping(1264, TorznabCatType.BooksEBook, "Иностранные языки для детей"); + caps.Categories.AddCategoryMapping(2358, TorznabCatType.BooksEBook, "|- Английский язык (для детей)"); + caps.Categories.AddCategoryMapping(2359, TorznabCatType.BooksEBook, "|- Другие европейские языки (для детей)"); + caps.Categories.AddCategoryMapping(2360, TorznabCatType.BooksEBook, "|- Восточные языки (для детей)"); + caps.Categories.AddCategoryMapping(2361, TorznabCatType.BooksEBook, "|- Школьные учебники, ЕГЭ, ОГЭ"); + caps.Categories.AddCategoryMapping(2057, TorznabCatType.BooksEBook, "Художественная литература (ин.языки)"); + caps.Categories.AddCategoryMapping(2355, TorznabCatType.BooksEBook, "|- Художественная литература на английском языке"); + caps.Categories.AddCategoryMapping(2474, TorznabCatType.BooksEBook, "|- Художественная литература на французском языке"); + caps.Categories.AddCategoryMapping(2356, TorznabCatType.BooksEBook, "|- Художественная литература на других европейских языках"); + caps.Categories.AddCategoryMapping(2357, TorznabCatType.BooksEBook, "|- Художественная литература на восточных языках"); + caps.Categories.AddCategoryMapping(2413, TorznabCatType.AudioAudiobook, "Аудиокниги на иностранных языках"); + caps.Categories.AddCategoryMapping(1501, TorznabCatType.AudioAudiobook, "|- Аудиокниги на английском языке"); + caps.Categories.AddCategoryMapping(1580, TorznabCatType.AudioAudiobook, "|- Аудиокниги на немецком языке"); + caps.Categories.AddCategoryMapping(525, TorznabCatType.AudioAudiobook, "|- Аудиокниги на других иностранных языках"); + caps.Categories.AddCategoryMapping(610, TorznabCatType.BooksOther, "Видеоуроки и обучающие интерактивные DVD"); + caps.Categories.AddCategoryMapping(1568, TorznabCatType.BooksOther, "|- Кулинария"); + caps.Categories.AddCategoryMapping(1542, TorznabCatType.BooksOther, "|- Спорт"); + caps.Categories.AddCategoryMapping(2335, TorznabCatType.BooksOther, "|- Фитнес - Кардио-Силовые Тренировки"); + caps.Categories.AddCategoryMapping(1544, TorznabCatType.BooksOther, "|- Фитнес - Разум и Тело"); + caps.Categories.AddCategoryMapping(1546, TorznabCatType.BooksOther, "|- Бодибилдинг"); + caps.Categories.AddCategoryMapping(1549, TorznabCatType.BooksOther, "|- Оздоровительные практики"); + caps.Categories.AddCategoryMapping(1597, TorznabCatType.BooksOther, "|- Йога"); + caps.Categories.AddCategoryMapping(1552, TorznabCatType.BooksOther, "|- Видео- и фотосъёмка"); + caps.Categories.AddCategoryMapping(1550, TorznabCatType.BooksOther, "|- Уход за собой"); + caps.Categories.AddCategoryMapping(1553, TorznabCatType.BooksOther, "|- Рисование"); + caps.Categories.AddCategoryMapping(1554, TorznabCatType.BooksOther, "|- Игра на гитаре"); + caps.Categories.AddCategoryMapping(617, TorznabCatType.BooksOther, "|- Ударные инструменты"); + caps.Categories.AddCategoryMapping(1555, TorznabCatType.BooksOther, "|- Другие музыкальные инструменты"); + caps.Categories.AddCategoryMapping(2017, TorznabCatType.BooksOther, "|- Игра на бас-гитаре"); + caps.Categories.AddCategoryMapping(1257, TorznabCatType.BooksOther, "|- Бальные танцы"); + caps.Categories.AddCategoryMapping(1258, TorznabCatType.BooksOther, "|- Танец живота"); + caps.Categories.AddCategoryMapping(2208, TorznabCatType.BooksOther, "|- Уличные и клубные танцы"); + caps.Categories.AddCategoryMapping(677, TorznabCatType.BooksOther, "|- Танцы, разное"); + caps.Categories.AddCategoryMapping(1255, TorznabCatType.BooksOther, "|- Охота"); + caps.Categories.AddCategoryMapping(1479, TorznabCatType.BooksOther, "|- Рыболовство и подводная охота"); + caps.Categories.AddCategoryMapping(1261, TorznabCatType.BooksOther, "|- Фокусы и трюки"); + caps.Categories.AddCategoryMapping(614, TorznabCatType.BooksOther, "|- Образование"); + caps.Categories.AddCategoryMapping(1583, TorznabCatType.BooksOther, "|- Финансы"); + caps.Categories.AddCategoryMapping(1259, TorznabCatType.BooksOther, "|- Продажи, бизнес"); + caps.Categories.AddCategoryMapping(2065, TorznabCatType.BooksOther, "|- Беременность, роды, материнство"); + caps.Categories.AddCategoryMapping(1254, TorznabCatType.BooksOther, "|- Учебные видео для детей"); + caps.Categories.AddCategoryMapping(1260, TorznabCatType.BooksOther, "|- Психология"); + caps.Categories.AddCategoryMapping(2209, TorznabCatType.BooksOther, "|- Эзотерика, саморазвитие"); + caps.Categories.AddCategoryMapping(2210, TorznabCatType.BooksOther, "|- Пикап, знакомства"); + caps.Categories.AddCategoryMapping(1547, TorznabCatType.BooksOther, "|- Строительство, ремонт и дизайн"); + caps.Categories.AddCategoryMapping(1548, TorznabCatType.BooksOther, "|- Дерево- и металлообработка"); + caps.Categories.AddCategoryMapping(2211, TorznabCatType.BooksOther, "|- Растения и животные"); + caps.Categories.AddCategoryMapping(1596, TorznabCatType.BooksOther, "|- Хобби и рукоделие"); + caps.Categories.AddCategoryMapping(2135, TorznabCatType.BooksOther, "|- Медицина и стоматология"); + caps.Categories.AddCategoryMapping(2140, TorznabCatType.BooksOther, "|- Психотерапия и клиническая психология"); + caps.Categories.AddCategoryMapping(2136, TorznabCatType.BooksOther, "|- Массаж"); + caps.Categories.AddCategoryMapping(2138, TorznabCatType.BooksOther, "|- Здоровье"); + caps.Categories.AddCategoryMapping(615, TorznabCatType.BooksOther, "|- Разное"); + caps.Categories.AddCategoryMapping(1581, TorznabCatType.BooksOther, "Боевые искусства (Видеоуроки)"); + caps.Categories.AddCategoryMapping(1590, TorznabCatType.BooksOther, "|- Айкидо и айки-дзюцу"); + caps.Categories.AddCategoryMapping(1587, TorznabCatType.BooksOther, "|- Вин чун"); + caps.Categories.AddCategoryMapping(1594, TorznabCatType.BooksOther, "|- Джиу-джитсу"); + caps.Categories.AddCategoryMapping(1591, TorznabCatType.BooksOther, "|- Дзюдо и самбо"); + caps.Categories.AddCategoryMapping(1588, TorznabCatType.BooksOther, "|- Каратэ"); + caps.Categories.AddCategoryMapping(1585, TorznabCatType.BooksOther, "|- Работа с оружием"); + caps.Categories.AddCategoryMapping(1586, TorznabCatType.BooksOther, "|- Русский стиль"); + caps.Categories.AddCategoryMapping(2078, TorznabCatType.BooksOther, "|- Рукопашный бой"); + caps.Categories.AddCategoryMapping(1929, TorznabCatType.BooksOther, "|- Смешанные стили"); + caps.Categories.AddCategoryMapping(1593, TorznabCatType.BooksOther, "|- Ударные стили"); + caps.Categories.AddCategoryMapping(1592, TorznabCatType.BooksOther, "|- Ушу"); + caps.Categories.AddCategoryMapping(1595, TorznabCatType.BooksOther, "|- Разное"); + caps.Categories.AddCategoryMapping(1556, TorznabCatType.BooksTechnical, "Компьютерные видеоуроки и обучающие интерактивные DVD"); + caps.Categories.AddCategoryMapping(1560, TorznabCatType.BooksTechnical, "|- Компьютерные сети и безопасность"); + caps.Categories.AddCategoryMapping(1991, TorznabCatType.BooksTechnical, "|- Devops"); + caps.Categories.AddCategoryMapping(1561, TorznabCatType.BooksTechnical, "|- ОС и серверные программы Microsoft"); + caps.Categories.AddCategoryMapping(1653, TorznabCatType.BooksTechnical, "|- Офисные программы Microsoft"); + caps.Categories.AddCategoryMapping(1570, TorznabCatType.BooksTechnical, "|- ОС и программы семейства UNIX"); + caps.Categories.AddCategoryMapping(1654, TorznabCatType.BooksTechnical, "|- Adobe Photoshop"); + caps.Categories.AddCategoryMapping(1655, TorznabCatType.BooksTechnical, "|- Autodesk Maya"); + caps.Categories.AddCategoryMapping(1656, TorznabCatType.BooksTechnical, "|- Autodesk 3ds Max"); + caps.Categories.AddCategoryMapping(1930, TorznabCatType.BooksTechnical, "|- Autodesk Softimage (XSI)"); + caps.Categories.AddCategoryMapping(1931, TorznabCatType.BooksTechnical, "|- ZBrush"); + caps.Categories.AddCategoryMapping(1932, TorznabCatType.BooksTechnical, "|- Flash, Flex и ActionScript"); + caps.Categories.AddCategoryMapping(1562, TorznabCatType.BooksTechnical, "|- 2D-графика"); + caps.Categories.AddCategoryMapping(1563, TorznabCatType.BooksTechnical, "|- 3D-графика"); + caps.Categories.AddCategoryMapping(1626, TorznabCatType.BooksTechnical, "|- Инженерные и научные программы (видеоуроки)"); + caps.Categories.AddCategoryMapping(1564, TorznabCatType.BooksTechnical, "|- Web-дизайн"); + caps.Categories.AddCategoryMapping(1545, TorznabCatType.BooksTechnical, "|- WEB, SMM, SEO, интернет-маркетинг"); + caps.Categories.AddCategoryMapping(1565, TorznabCatType.BooksTechnical, "|- Программирование (видеоуроки)"); + caps.Categories.AddCategoryMapping(1559, TorznabCatType.BooksTechnical, "|- Программы для Mac OS"); + caps.Categories.AddCategoryMapping(1566, TorznabCatType.BooksTechnical, "|- Работа с видео"); + caps.Categories.AddCategoryMapping(1573, TorznabCatType.BooksTechnical, "|- Работа со звуком"); + caps.Categories.AddCategoryMapping(1567, TorznabCatType.BooksTechnical, "|- Разное (Компьютерные видеоуроки)"); + caps.Categories.AddCategoryMapping(2326, TorznabCatType.AudioAudiobook, "Радиоспектакли, история, мемуары"); + caps.Categories.AddCategoryMapping(574, TorznabCatType.AudioAudiobook, "|- [Аудио] Радиоспектакли и литературные чтения"); + caps.Categories.AddCategoryMapping(1036, TorznabCatType.AudioAudiobook, "|- [Аудио] Биографии и мемуары"); + caps.Categories.AddCategoryMapping(400, TorznabCatType.AudioAudiobook, "|- [Аудио] История, культурология, философия"); + caps.Categories.AddCategoryMapping(2389, TorznabCatType.AudioAudiobook, "Фантастика, фэнтези, мистика, ужасы, фанфики"); + caps.Categories.AddCategoryMapping(2388, TorznabCatType.AudioAudiobook, "|- [Аудио] Зарубежная фантастика, фэнтези, мистика, ужасы, фанфики"); + caps.Categories.AddCategoryMapping(2387, TorznabCatType.AudioAudiobook, "|- [Аудио] Российская фантастика, фэнтези, мистика, ужасы, фанфики"); + caps.Categories.AddCategoryMapping(661, TorznabCatType.AudioAudiobook, "|- [Аудио] Любовно-фантастический роман"); + caps.Categories.AddCategoryMapping(2348, TorznabCatType.AudioAudiobook, "|- [Аудио] Сборники/разное Фантастика, фэнтези, мистика, ужасы, фанфики"); + caps.Categories.AddCategoryMapping(2327, TorznabCatType.AudioAudiobook, "Художественная литература"); + caps.Categories.AddCategoryMapping(695, TorznabCatType.AudioAudiobook, "|- [Аудио] Поэзия"); + caps.Categories.AddCategoryMapping(399, TorznabCatType.AudioAudiobook, "|- [Аудио] Зарубежная литература"); + caps.Categories.AddCategoryMapping(402, TorznabCatType.AudioAudiobook, "|- [Аудио] Русская литература"); + caps.Categories.AddCategoryMapping(467, TorznabCatType.AudioAudiobook, "|- [Аудио] Современные любовные романы"); + caps.Categories.AddCategoryMapping(490, TorznabCatType.AudioAudiobook, "|- [Аудио] Детская литература"); + caps.Categories.AddCategoryMapping(499, TorznabCatType.AudioAudiobook, "|- [Аудио] Зарубежные детективы, приключения, триллеры, боевики"); + caps.Categories.AddCategoryMapping(2137, TorznabCatType.AudioAudiobook, "|- [Аудио] Российские детективы, приключения, триллеры, боевики"); + caps.Categories.AddCategoryMapping(2127, TorznabCatType.AudioAudiobook, "|- [Аудио] Азиатская подростковая литература, ранобэ, веб-новеллы"); + caps.Categories.AddCategoryMapping(2324, TorznabCatType.AudioAudiobook, "Религии"); + caps.Categories.AddCategoryMapping(2325, TorznabCatType.AudioAudiobook, "|- [Аудио] Православие"); + caps.Categories.AddCategoryMapping(2342, TorznabCatType.AudioAudiobook, "|- [Аудио] Ислам"); + caps.Categories.AddCategoryMapping(530, TorznabCatType.AudioAudiobook, "|- [Аудио] Другие традиционные религии"); + caps.Categories.AddCategoryMapping(2152, TorznabCatType.AudioAudiobook, "|- [Аудио] Нетрадиционные религиозно-философские учения"); + caps.Categories.AddCategoryMapping(2328, TorznabCatType.AudioAudiobook, "Прочая литература"); + caps.Categories.AddCategoryMapping(1350, TorznabCatType.AudioAudiobook, "|- [Аудио] Книги по медицине"); + caps.Categories.AddCategoryMapping(403, TorznabCatType.AudioAudiobook, "|- [Аудио] Учебная и научно-популярная литература"); + caps.Categories.AddCategoryMapping(1279, TorznabCatType.AudioAudiobook, "|- [Аудио] lossless-аудиокниги"); + caps.Categories.AddCategoryMapping(716, TorznabCatType.AudioAudiobook, "|- [Аудио] Бизнес"); + caps.Categories.AddCategoryMapping(2165, TorznabCatType.AudioAudiobook, "|- [Аудио] Разное"); + caps.Categories.AddCategoryMapping(401, TorznabCatType.AudioAudiobook, "|- [Аудио] Некондиционные раздачи"); + caps.Categories.AddCategoryMapping(1964, TorznabCatType.Books, "Ремонт и эксплуатация транспортных средств"); + caps.Categories.AddCategoryMapping(1973, TorznabCatType.Books, "|- Оригинальные каталоги по подбору запчастей"); + caps.Categories.AddCategoryMapping(1974, TorznabCatType.Books, "|- Неоригинальные каталоги по подбору запчастей"); + caps.Categories.AddCategoryMapping(1975, TorznabCatType.Books, "|- Программы по диагностике и ремонту"); + caps.Categories.AddCategoryMapping(1976, TorznabCatType.Books, "|- Тюнинг, чиптюнинг, настройка"); + caps.Categories.AddCategoryMapping(1977, TorznabCatType.Books, "|- Книги по ремонту/обслуживанию/эксплуатации ТС"); + caps.Categories.AddCategoryMapping(1203, TorznabCatType.Books, "|- Мультимедийки по ремонту/обслуживанию/эксплуатации ТС"); + caps.Categories.AddCategoryMapping(1978, TorznabCatType.Books, "|- Учет, утилиты и прочее"); + caps.Categories.AddCategoryMapping(1979, TorznabCatType.Books, "|- Виртуальная автошкола"); + caps.Categories.AddCategoryMapping(1980, TorznabCatType.Books, "|- Видеоуроки по вождению транспортных средств"); + caps.Categories.AddCategoryMapping(1981, TorznabCatType.Books, "|- Видеоуроки по ремонту транспортных средств"); + caps.Categories.AddCategoryMapping(1970, TorznabCatType.Books, "|- Журналы по авто/мото"); + caps.Categories.AddCategoryMapping(334, TorznabCatType.Books, "|- Водный транспорт"); + caps.Categories.AddCategoryMapping(1202, TorznabCatType.TVDocumentary, "Фильмы и передачи по авто/мото"); + caps.Categories.AddCategoryMapping(1985, TorznabCatType.TVDocumentary, "|- Документальные/познавательные фильмы"); + caps.Categories.AddCategoryMapping(1982, TorznabCatType.TVOther, "|- Развлекательные передачи"); + caps.Categories.AddCategoryMapping(2151, TorznabCatType.TVDocumentary, "|- Top Gear/Топ Гир"); + caps.Categories.AddCategoryMapping(1983, TorznabCatType.TVDocumentary, "|- Тест драйв/Обзоры/Автосалоны"); + caps.Categories.AddCategoryMapping(1984, TorznabCatType.TVDocumentary, "|- Тюнинг/форсаж"); + caps.Categories.AddCategoryMapping(409, TorznabCatType.Audio, "Классическая и современная академическая музыка"); + caps.Categories.AddCategoryMapping(560, TorznabCatType.AudioLossless, "|- Полные собрания сочинений и многодисковые издания (lossless)"); + caps.Categories.AddCategoryMapping(794, TorznabCatType.AudioLossless, "|- Опера (lossless)"); + caps.Categories.AddCategoryMapping(556, TorznabCatType.AudioLossless, "|- Вокальная музыка (lossless)"); + caps.Categories.AddCategoryMapping(2307, TorznabCatType.AudioLossless, "|- Хоровая музыка (lossless)"); + caps.Categories.AddCategoryMapping(557, TorznabCatType.AudioLossless, "|- Оркестровая музыка (lossless)"); + caps.Categories.AddCategoryMapping(2308, TorznabCatType.AudioLossless, "|- Концерт для инструмента с оркестром (lossless)"); + caps.Categories.AddCategoryMapping(558, TorznabCatType.AudioLossless, "|- Камерная инструментальная музыка (lossless)"); + caps.Categories.AddCategoryMapping(793, TorznabCatType.AudioLossless, "|- Сольная инструментальная музыка (lossless)"); + caps.Categories.AddCategoryMapping(1395, TorznabCatType.AudioLossless, "|- Духовные песнопения и музыка (lossless)"); + caps.Categories.AddCategoryMapping(1396, TorznabCatType.AudioMP3, "|- Духовные песнопения и музыка (lossy)"); + caps.Categories.AddCategoryMapping(436, TorznabCatType.AudioMP3, "|- Полные собрания сочинений и многодисковые издания (lossy)"); + caps.Categories.AddCategoryMapping(2309, TorznabCatType.AudioMP3, "|- Вокальная и хоровая музыка (lossy)"); + caps.Categories.AddCategoryMapping(2310, TorznabCatType.AudioMP3, "|- Оркестровая музыка (lossy)"); + caps.Categories.AddCategoryMapping(2311, TorznabCatType.AudioMP3, "|- Камерная и сольная инструментальная музыка (lossy)"); + caps.Categories.AddCategoryMapping(969, TorznabCatType.Audio, "|- Классика в современной обработке, Classical Crossover (lossy и lossless)"); + caps.Categories.AddCategoryMapping(1125, TorznabCatType.Audio, "Фольклор, Народная и Этническая музыка"); + caps.Categories.AddCategoryMapping(1130, TorznabCatType.AudioMP3, "|- Восточноевропейский фолк (lossy)"); + caps.Categories.AddCategoryMapping(1131, TorznabCatType.AudioLossless, "|- Восточноевропейский фолк (lossless)"); + caps.Categories.AddCategoryMapping(1132, TorznabCatType.AudioMP3, "|- Западноевропейский фолк (lossy)"); + caps.Categories.AddCategoryMapping(1133, TorznabCatType.AudioLossless, "|- Западноевропейский фолк (lossless)"); + caps.Categories.AddCategoryMapping(2084, TorznabCatType.Audio, "|- Klezmer и Еврейский фольклор (lossy и lossless)"); + caps.Categories.AddCategoryMapping(1128, TorznabCatType.AudioMP3, "|- Этническая музыка Сибири, Средней и Восточной Азии (lossy)"); + caps.Categories.AddCategoryMapping(1129, TorznabCatType.AudioLossless, "|- Этническая музыка Сибири, Средней и Восточной Азии (lossless)"); + caps.Categories.AddCategoryMapping(1856, TorznabCatType.AudioMP3, "|- Этническая музыка Индии (lossy)"); + caps.Categories.AddCategoryMapping(2430, TorznabCatType.AudioLossless, "|- Этническая музыка Индии (lossless)"); + caps.Categories.AddCategoryMapping(1283, TorznabCatType.AudioMP3, "|- Этническая музыка Африки и Ближнего Востока (lossy)"); + caps.Categories.AddCategoryMapping(2085, TorznabCatType.AudioLossless, "|- Этническая музыка Африки и Ближнего Востока (lossless)"); + caps.Categories.AddCategoryMapping(1282, TorznabCatType.Audio, "|- Фольклорная, Народная, Эстрадная музыка Кавказа и Закавказья (lossy и lossless)"); + caps.Categories.AddCategoryMapping(1284, TorznabCatType.AudioMP3, "|- Этническая музыка Северной и Южной Америки (lossy)"); + caps.Categories.AddCategoryMapping(1285, TorznabCatType.AudioLossless, "|- Этническая музыка Северной и Южной Америки (lossless)"); + caps.Categories.AddCategoryMapping(1138, TorznabCatType.Audio, "|- Этническая музыка Австралии, Тихого и Индийского океанов (lossy и lossless)"); + caps.Categories.AddCategoryMapping(1136, TorznabCatType.AudioMP3, "|- Country, Bluegrass (lossy)"); + caps.Categories.AddCategoryMapping(1137, TorznabCatType.AudioLossless, "|- Country, Bluegrass (lossless)"); + caps.Categories.AddCategoryMapping(1849, TorznabCatType.Audio, "New Age, Relax, Meditative & Flamenco"); + caps.Categories.AddCategoryMapping(1126, TorznabCatType.AudioMP3, "|- New Age & Meditative (lossy)"); + caps.Categories.AddCategoryMapping(1127, TorznabCatType.AudioLossless, "|- New Age & Meditative (lossless)"); + caps.Categories.AddCategoryMapping(1134, TorznabCatType.AudioMP3, "|- Фламенко и акустическая гитара (lossy)"); + caps.Categories.AddCategoryMapping(1135, TorznabCatType.AudioLossless, "|- Фламенко и акустическая гитара (lossless)"); + caps.Categories.AddCategoryMapping(2018, TorznabCatType.Audio, "|- Музыка для бальных танцев (lossy и lossless)"); + caps.Categories.AddCategoryMapping(855, TorznabCatType.Audio, "|- Звуки природы"); + caps.Categories.AddCategoryMapping(408, TorznabCatType.Audio, "Рэп, Хип-Хоп, R'n'B"); + caps.Categories.AddCategoryMapping(441, TorznabCatType.AudioMP3, "|- Отечественный Рэп, Хип-Хоп (lossy)"); + caps.Categories.AddCategoryMapping(1173, TorznabCatType.AudioMP3, "|- Отечественный R'n'B (lossy)"); + caps.Categories.AddCategoryMapping(1486, TorznabCatType.AudioLossless, "|- Отечественный Рэп, Хип-Хоп, R'n'B (lossless)"); + caps.Categories.AddCategoryMapping(1172, TorznabCatType.AudioMP3, "|- Зарубежный R'n'B (lossy)"); + caps.Categories.AddCategoryMapping(446, TorznabCatType.AudioMP3, "|- Зарубежный Рэп, Хип-Хоп (lossy)"); + caps.Categories.AddCategoryMapping(909, TorznabCatType.AudioLossless, "|- Зарубежный Рэп, Хип-Хоп (lossless)"); + caps.Categories.AddCategoryMapping(1665, TorznabCatType.AudioLossless, "|- Зарубежный R'n'B (lossless)"); + caps.Categories.AddCategoryMapping(1760, TorznabCatType.Audio, "Reggae, Ska, Dub"); + caps.Categories.AddCategoryMapping(1764, TorznabCatType.Audio, "|- Rocksteady, Early Reggae, Ska-Jazz, Trad.Ska (lossy и lossless)"); + caps.Categories.AddCategoryMapping(1767, TorznabCatType.AudioMP3, "|- 3rd Wave Ska (lossy)"); + caps.Categories.AddCategoryMapping(1769, TorznabCatType.AudioMP3, "|- Ska-Punk, Ska-Core (lossy)"); + caps.Categories.AddCategoryMapping(1765, TorznabCatType.AudioMP3, "|- Reggae (lossy)"); + caps.Categories.AddCategoryMapping(1771, TorznabCatType.AudioMP3, "|- Dub (lossy)"); + caps.Categories.AddCategoryMapping(1770, TorznabCatType.AudioMP3, "|- Dancehall, Raggamuffin (lossy)"); + caps.Categories.AddCategoryMapping(1768, TorznabCatType.AudioLossless, "|- Reggae, Dancehall, Dub (lossless)"); + caps.Categories.AddCategoryMapping(1774, TorznabCatType.AudioLossless, "|- Ska, Ska-Punk, Ska-Jazz (lossless)"); + caps.Categories.AddCategoryMapping(1772, TorznabCatType.Audio, "|- Отечественный Reggae, Dub (lossy и lossless)"); + caps.Categories.AddCategoryMapping(2233, TorznabCatType.Audio, "|- Reggae, Ska, Dub (компиляции) (lossy и lossless)"); + caps.Categories.AddCategoryMapping(416, TorznabCatType.Audio, "Саундтреки, караоке и мюзиклы"); + caps.Categories.AddCategoryMapping(2377, TorznabCatType.AudioVideo, "|- Караоке"); + caps.Categories.AddCategoryMapping(468, TorznabCatType.Audio, "|- Минусовки (lossy и lossless)"); + caps.Categories.AddCategoryMapping(691, TorznabCatType.AudioLossless, "|- Саундтреки к отечественным фильмам (lossless)"); + caps.Categories.AddCategoryMapping(469, TorznabCatType.AudioMP3, "|- Саундтреки к отечественным фильмам (lossy)"); + caps.Categories.AddCategoryMapping(786, TorznabCatType.AudioLossless, "|- Саундтреки к зарубежным фильмам (lossless)"); + caps.Categories.AddCategoryMapping(785, TorznabCatType.AudioMP3, "|- Саундтреки к зарубежным фильмам (lossy)"); + caps.Categories.AddCategoryMapping(1631, TorznabCatType.AudioLossless, "|- Саундтреки к сериалам (lossless)"); + caps.Categories.AddCategoryMapping(1499, TorznabCatType.AudioMP3, "|- Саундтреки к сериалам (lossy)"); + caps.Categories.AddCategoryMapping(715, TorznabCatType.Audio, "|- Саундтреки к мультфильмам (lossy и lossless)"); + caps.Categories.AddCategoryMapping(1388, TorznabCatType.AudioLossless, "|- Саундтреки к аниме (lossless)"); + caps.Categories.AddCategoryMapping(282, TorznabCatType.AudioMP3, "|- Саундтреки к аниме (lossy)"); + caps.Categories.AddCategoryMapping(796, TorznabCatType.AudioMP3, "|- Неофициальные саундтреки к фильмам и сериалам (lossy)"); + caps.Categories.AddCategoryMapping(784, TorznabCatType.AudioLossless, "|- Саундтреки к играм (lossless)"); + caps.Categories.AddCategoryMapping(783, TorznabCatType.AudioMP3, "|- Саундтреки к играм (lossy)"); + caps.Categories.AddCategoryMapping(2331, TorznabCatType.AudioMP3, "|- Неофициальные саундтреки к играм (lossy)"); + caps.Categories.AddCategoryMapping(2431, TorznabCatType.Audio, "|- Аранжировки музыки из игр (lossy и lossless)"); + caps.Categories.AddCategoryMapping(880, TorznabCatType.Audio, "|- Мюзикл (lossy и lossless)"); + caps.Categories.AddCategoryMapping(1215, TorznabCatType.Audio, "Шансон, Авторская и Военная песня"); + caps.Categories.AddCategoryMapping(1220, TorznabCatType.AudioLossless, "|- Отечественный шансон (lossless)"); + caps.Categories.AddCategoryMapping(1221, TorznabCatType.AudioMP3, "|- Отечественный шансон (lossy)"); + caps.Categories.AddCategoryMapping(1334, TorznabCatType.AudioMP3, "|- Сборники отечественного шансона (lossy)"); + caps.Categories.AddCategoryMapping(1216, TorznabCatType.AudioLossless, "|- Военная песня, марши (lossless)"); + caps.Categories.AddCategoryMapping(1223, TorznabCatType.AudioMP3, "|- Военная песня, марши (lossy)"); + caps.Categories.AddCategoryMapping(1224, TorznabCatType.AudioLossless, "|- Авторская песня (lossless)"); + caps.Categories.AddCategoryMapping(1225, TorznabCatType.AudioMP3, "|- Авторская песня (lossy)"); + caps.Categories.AddCategoryMapping(1226, TorznabCatType.Audio, "|- Менестрели и ролевики (lossy и lossless)"); + caps.Categories.AddCategoryMapping(1842, TorznabCatType.AudioLossless, "Label Packs (lossless)"); + caps.Categories.AddCategoryMapping(1648, TorznabCatType.AudioMP3, "Label packs, Scene packs (lossy)"); + caps.Categories.AddCategoryMapping(2495, TorznabCatType.Audio, "Отечественная поп-музыка"); + caps.Categories.AddCategoryMapping(424, TorznabCatType.AudioMP3, "|- Популярная музыка России и стран бывшего СССР (lossy)"); + caps.Categories.AddCategoryMapping(1361, TorznabCatType.AudioMP3, "|- Популярная музыка России и стран бывшего СССР (сборники) (lossy)"); + caps.Categories.AddCategoryMapping(425, TorznabCatType.AudioLossless, "|- Популярная музыка России и стран бывшего СССР (lossless)"); + caps.Categories.AddCategoryMapping(1635, TorznabCatType.AudioMP3, "|- Советская эстрада, ретро, романсы (lossy)"); + caps.Categories.AddCategoryMapping(1634, TorznabCatType.AudioLossless, "|- Советская эстрада, ретро, романсы (lossless)"); + caps.Categories.AddCategoryMapping(2497, TorznabCatType.Audio, "Зарубежная поп-музыка"); + caps.Categories.AddCategoryMapping(428, TorznabCatType.AudioMP3, "|- Зарубежная поп-музыка (lossy)"); + caps.Categories.AddCategoryMapping(1362, TorznabCatType.AudioMP3, "|- Зарубежная поп-музыка (сборники) (lossy)"); + caps.Categories.AddCategoryMapping(429, TorznabCatType.AudioLossless, "|- Зарубежная поп-музыка (lossless)"); + caps.Categories.AddCategoryMapping(735, TorznabCatType.AudioMP3, "|- Итальянская поп-музыка (lossy)"); + caps.Categories.AddCategoryMapping(1753, TorznabCatType.AudioLossless, "|- Итальянская поп-музыка (lossless)"); + caps.Categories.AddCategoryMapping(2232, TorznabCatType.AudioMP3, "|- Латиноамериканская поп-музыка (lossy)"); + caps.Categories.AddCategoryMapping(714, TorznabCatType.AudioLossless, "|- Латиноамериканская поп-музыка (lossless)"); + caps.Categories.AddCategoryMapping(1331, TorznabCatType.AudioMP3, "|- Восточноазиатская поп-музыка (lossy)"); + caps.Categories.AddCategoryMapping(1330, TorznabCatType.AudioLossless, "|- Восточноазиатская поп-музыка (lossless)"); + caps.Categories.AddCategoryMapping(1219, TorznabCatType.AudioMP3, "|- Зарубежный шансон (lossy)"); + caps.Categories.AddCategoryMapping(1452, TorznabCatType.AudioLossless, "|- Зарубежный шансон (lossless)"); + caps.Categories.AddCategoryMapping(2275, TorznabCatType.AudioMP3, "|- Easy Listening, Instrumental Pop (lossy)"); + caps.Categories.AddCategoryMapping(2270, TorznabCatType.AudioLossless, "|- Easy Listening, Instrumental Pop (lossless)"); + caps.Categories.AddCategoryMapping(1351, TorznabCatType.Audio, "|- Сборники песен для детей (lossy и lossless)"); + caps.Categories.AddCategoryMapping(2499, TorznabCatType.Audio, "Eurodance, Disco, Hi-NRG"); + caps.Categories.AddCategoryMapping(2503, TorznabCatType.AudioMP3, "|- Eurodance, Euro-House, Technopop (lossy)"); + caps.Categories.AddCategoryMapping(2504, TorznabCatType.AudioMP3, "|- Eurodance, Euro-House, Technopop (сборники) (lossy)"); + caps.Categories.AddCategoryMapping(2502, TorznabCatType.AudioLossless, "|- Eurodance, Euro-House, Technopop (lossless)"); + caps.Categories.AddCategoryMapping(2501, TorznabCatType.AudioMP3, "|- Disco, Italo-Disco, Euro-Disco, Hi-NRG (lossy)"); + caps.Categories.AddCategoryMapping(2505, TorznabCatType.AudioMP3, "|- Disco, Italo-Disco, Euro-Disco, Hi-NRG (сборники) (lossy)"); + caps.Categories.AddCategoryMapping(2500, TorznabCatType.AudioLossless, "|- Disco, Italo-Disco, Euro-Disco, Hi-NRG (lossless)"); + caps.Categories.AddCategoryMapping(2267, TorznabCatType.Audio, "Зарубежный джаз"); + caps.Categories.AddCategoryMapping(2277, TorznabCatType.AudioLossless, "|- Early Jazz, Swing, Gypsy (lossless)"); + caps.Categories.AddCategoryMapping(2278, TorznabCatType.AudioLossless, "|- Bop (lossless)"); + caps.Categories.AddCategoryMapping(2279, TorznabCatType.AudioLossless, "|- Mainstream Jazz, Cool (lossless)"); + caps.Categories.AddCategoryMapping(2280, TorznabCatType.AudioLossless, "|- Jazz Fusion (lossless)"); + caps.Categories.AddCategoryMapping(2281, TorznabCatType.AudioLossless, "|- World Fusion, Ethnic Jazz (lossless)"); + caps.Categories.AddCategoryMapping(2282, TorznabCatType.AudioLossless, "|- Avant-Garde Jazz, Free Improvisation (lossless)"); + caps.Categories.AddCategoryMapping(2353, TorznabCatType.AudioLossless, "|- Modern Creative, Third Stream (lossless)"); + caps.Categories.AddCategoryMapping(2284, TorznabCatType.AudioLossless, "|- Smooth, Jazz-Pop (lossless)"); + caps.Categories.AddCategoryMapping(2285, TorznabCatType.AudioLossless, "|- Vocal Jazz (lossless)"); + caps.Categories.AddCategoryMapping(2283, TorznabCatType.AudioLossless, "|- Funk, Soul, R&B (lossless)"); + caps.Categories.AddCategoryMapping(2286, TorznabCatType.AudioLossless, "|- Сборники зарубежного джаза (lossless)"); + caps.Categories.AddCategoryMapping(2287, TorznabCatType.AudioMP3, "|- Зарубежный джаз (lossy)"); + caps.Categories.AddCategoryMapping(2268, TorznabCatType.Audio, "Зарубежный блюз"); + caps.Categories.AddCategoryMapping(2293, TorznabCatType.AudioLossless, "|- Blues (Texas, Chicago, Modern and Others) (lossless)"); + caps.Categories.AddCategoryMapping(2292, TorznabCatType.AudioLossless, "|- Blues-rock (lossless)"); + caps.Categories.AddCategoryMapping(2290, TorznabCatType.AudioLossless, "|- Roots, Pre-War Blues, Early R&B, Gospel (lossless)"); + caps.Categories.AddCategoryMapping(2289, TorznabCatType.AudioLossless, "|- Зарубежный блюз (сборники; Tribute VA) (lossless)"); + caps.Categories.AddCategoryMapping(2288, TorznabCatType.AudioMP3, "|- Зарубежный блюз (lossy)"); + caps.Categories.AddCategoryMapping(2269, TorznabCatType.Audio, "Отечественный джаз и блюз"); + caps.Categories.AddCategoryMapping(2297, TorznabCatType.AudioLossless, "|- Отечественный джаз (lossless)"); + caps.Categories.AddCategoryMapping(2295, TorznabCatType.AudioMP3, "|- Отечественный джаз (lossy)"); + caps.Categories.AddCategoryMapping(2296, TorznabCatType.AudioLossless, "|- Отечественный блюз (lossless)"); + caps.Categories.AddCategoryMapping(2298, TorznabCatType.AudioMP3, "|- Отечественный блюз (lossy)"); + caps.Categories.AddCategoryMapping(1698, TorznabCatType.Audio, "Зарубежный Rock"); + caps.Categories.AddCategoryMapping(1702, TorznabCatType.AudioLossless, "|- Classic Rock & Hard Rock (lossless)"); + caps.Categories.AddCategoryMapping(1703, TorznabCatType.AudioMP3, "|- Classic Rock & Hard Rock (lossy)"); + caps.Categories.AddCategoryMapping(1704, TorznabCatType.AudioLossless, "|- Progressive & Art-Rock (lossless)"); + caps.Categories.AddCategoryMapping(1705, TorznabCatType.AudioMP3, "|- Progressive & Art-Rock (lossy)"); + caps.Categories.AddCategoryMapping(1706, TorznabCatType.AudioLossless, "|- Folk-Rock (lossless)"); + caps.Categories.AddCategoryMapping(1707, TorznabCatType.AudioMP3, "|- Folk-Rock (lossy)"); + caps.Categories.AddCategoryMapping(2329, TorznabCatType.AudioLossless, "|- AOR (Melodic Hard Rock, Arena rock) (lossless)"); + caps.Categories.AddCategoryMapping(2330, TorznabCatType.AudioMP3, "|- AOR (Melodic Hard Rock, Arena rock) (lossy)"); + caps.Categories.AddCategoryMapping(1708, TorznabCatType.AudioLossless, "|- Pop-Rock & Soft Rock (lossless)"); + caps.Categories.AddCategoryMapping(1709, TorznabCatType.AudioMP3, "|- Pop-Rock & Soft Rock (lossy)"); + caps.Categories.AddCategoryMapping(1710, TorznabCatType.AudioLossless, "|- Instrumental Guitar Rock (lossless)"); + caps.Categories.AddCategoryMapping(1711, TorznabCatType.AudioMP3, "|- Instrumental Guitar Rock (lossy)"); + caps.Categories.AddCategoryMapping(1712, TorznabCatType.AudioLossless, "|- Rockabilly, Psychobilly, Rock'n'Roll (lossless)"); + caps.Categories.AddCategoryMapping(1713, TorznabCatType.AudioMP3, "|- Rockabilly, Psychobilly, Rock'n'Roll (lossy)"); + caps.Categories.AddCategoryMapping(731, TorznabCatType.AudioLossless, "|- Сборники зарубежного рока (lossless)"); + caps.Categories.AddCategoryMapping(1799, TorznabCatType.AudioMP3, "|- Сборники зарубежного рока (lossy)"); + caps.Categories.AddCategoryMapping(1714, TorznabCatType.AudioLossless, "|- Восточноазиатский рок (lossless)"); + caps.Categories.AddCategoryMapping(1715, TorznabCatType.AudioMP3, "|- Восточноазиатский рок (lossy)"); + caps.Categories.AddCategoryMapping(1716, TorznabCatType.Audio, "Зарубежный Metal"); + caps.Categories.AddCategoryMapping(1796, TorznabCatType.AudioLossless, "|- Avant-garde, Experimental Metal (lossless)"); + caps.Categories.AddCategoryMapping(1797, TorznabCatType.AudioMP3, "|- Avant-garde, Experimental Metal (lossy)"); + caps.Categories.AddCategoryMapping(1719, TorznabCatType.AudioLossless, "|- Black (lossless)"); + caps.Categories.AddCategoryMapping(1778, TorznabCatType.AudioMP3, "|- Black (lossy)"); + caps.Categories.AddCategoryMapping(1779, TorznabCatType.AudioLossless, "|- Death, Doom (lossless)"); + caps.Categories.AddCategoryMapping(1780, TorznabCatType.AudioMP3, "|- Death, Doom (lossy)"); + caps.Categories.AddCategoryMapping(1720, TorznabCatType.AudioLossless, "|- Folk, Pagan, Viking (lossless)"); + caps.Categories.AddCategoryMapping(798, TorznabCatType.AudioMP3, "|- Folk, Pagan, Viking (lossy)"); + caps.Categories.AddCategoryMapping(1724, TorznabCatType.AudioLossless, "|- Gothic Metal (lossless)"); + caps.Categories.AddCategoryMapping(1725, TorznabCatType.AudioMP3, "|- Gothic Metal (lossy)"); + caps.Categories.AddCategoryMapping(1730, TorznabCatType.AudioLossless, "|- Grind, Brutal Death (lossless)"); + caps.Categories.AddCategoryMapping(1731, TorznabCatType.AudioMP3, "|- Grind, Brutal Death (lossy)"); + caps.Categories.AddCategoryMapping(1726, TorznabCatType.AudioLossless, "|- Heavy, Power, Progressive (lossless)"); + caps.Categories.AddCategoryMapping(1727, TorznabCatType.AudioMP3, "|- Heavy, Power, Progressive (lossy)"); + caps.Categories.AddCategoryMapping(1815, TorznabCatType.AudioLossless, "|- Sludge, Stoner, Post-Metal (lossless)"); + caps.Categories.AddCategoryMapping(1816, TorznabCatType.AudioMP3, "|- Sludge, Stoner, Post-Metal (lossy)"); + caps.Categories.AddCategoryMapping(1728, TorznabCatType.AudioLossless, "|- Thrash, Speed (lossless)"); + caps.Categories.AddCategoryMapping(1729, TorznabCatType.AudioMP3, "|- Thrash, Speed (lossy)"); + caps.Categories.AddCategoryMapping(2230, TorznabCatType.AudioLossless, "|- Сборники (lossless)"); + caps.Categories.AddCategoryMapping(2231, TorznabCatType.AudioMP3, "|- Сборники (lossy)"); + caps.Categories.AddCategoryMapping(1732, TorznabCatType.Audio, "Зарубежные Alternative, Punk, Independent"); + caps.Categories.AddCategoryMapping(1736, TorznabCatType.AudioLossless, "|- Alternative & Nu-metal (lossless)"); + caps.Categories.AddCategoryMapping(1737, TorznabCatType.AudioMP3, "|- Alternative & Nu-metal (lossy)"); + caps.Categories.AddCategoryMapping(1738, TorznabCatType.AudioLossless, "|- Punk (lossless)"); + caps.Categories.AddCategoryMapping(1739, TorznabCatType.AudioMP3, "|- Punk (lossy)"); + caps.Categories.AddCategoryMapping(1740, TorznabCatType.AudioLossless, "|- Hardcore (lossless)"); + caps.Categories.AddCategoryMapping(1741, TorznabCatType.AudioMP3, "|- Hardcore (lossy)"); + caps.Categories.AddCategoryMapping(1773, TorznabCatType.AudioLossless, "|- Indie Rock, Indie Pop, Dream Pop, Brit-Pop (lossless)"); + caps.Categories.AddCategoryMapping(202, TorznabCatType.AudioMP3, "|- Indie Rock, Indie Pop, Dream Pop, Brit-Pop (lossy)"); + caps.Categories.AddCategoryMapping(172, TorznabCatType.AudioLossless, "|- Post-Punk, Shoegaze, Garage Rock, Noise Rock (lossless)"); + caps.Categories.AddCategoryMapping(236, TorznabCatType.AudioMP3, "|- Post-Punk, Shoegaze, Garage Rock, Noise Rock (lossy)"); + caps.Categories.AddCategoryMapping(1742, TorznabCatType.AudioLossless, "|- Post-Rock (lossless)"); + caps.Categories.AddCategoryMapping(1743, TorznabCatType.AudioMP3, "|- Post-Rock (lossy)"); + caps.Categories.AddCategoryMapping(1744, TorznabCatType.AudioLossless, "|- Industrial & Post-industrial (lossless)"); + caps.Categories.AddCategoryMapping(1745, TorznabCatType.AudioMP3, "|- Industrial & Post-industrial (lossy)"); + caps.Categories.AddCategoryMapping(1746, TorznabCatType.AudioLossless, "|- Emocore, Post-hardcore, Metalcore (lossless)"); + caps.Categories.AddCategoryMapping(1747, TorznabCatType.AudioMP3, "|- Emocore, Post-hardcore, Metalcore (lossy)"); + caps.Categories.AddCategoryMapping(1748, TorznabCatType.AudioLossless, "|- Gothic Rock & Dark Folk (lossless)"); + caps.Categories.AddCategoryMapping(1749, TorznabCatType.AudioMP3, "|- Gothic Rock & Dark Folk (lossy)"); + caps.Categories.AddCategoryMapping(2175, TorznabCatType.AudioLossless, "|- Avant-garde, Experimental Rock (lossless)"); + caps.Categories.AddCategoryMapping(2174, TorznabCatType.AudioMP3, "|- Avant-garde, Experimental Rock (lossy)"); + caps.Categories.AddCategoryMapping(722, TorznabCatType.Audio, "Отечественный Rock, Metal"); + caps.Categories.AddCategoryMapping(737, TorznabCatType.AudioLossless, "|- Rock (lossless)"); + caps.Categories.AddCategoryMapping(738, TorznabCatType.AudioMP3, "|- Rock (lossy)"); + caps.Categories.AddCategoryMapping(464, TorznabCatType.AudioLossless, "|- Alternative, Punk, Independent (lossless)"); + caps.Categories.AddCategoryMapping(463, TorznabCatType.AudioMP3, "|- Alternative, Punk, Independent (lossy)"); + caps.Categories.AddCategoryMapping(739, TorznabCatType.AudioLossless, "|- Metal (lossless)"); + caps.Categories.AddCategoryMapping(740, TorznabCatType.AudioMP3, "|- Metal (lossy)"); + caps.Categories.AddCategoryMapping(951, TorznabCatType.AudioLossless, "|- Rock на языках народов xUSSR (lossless)"); + caps.Categories.AddCategoryMapping(952, TorznabCatType.AudioMP3, "|- Rock на языках народов xUSSR (lossy)"); + caps.Categories.AddCategoryMapping(1821, TorznabCatType.Audio, "Trance, Goa Trance, Psy-Trance, PsyChill, Ambient, Dub"); + caps.Categories.AddCategoryMapping(1844, TorznabCatType.AudioLossless, "|- Goa Trance, Psy-Trance (lossless)"); + caps.Categories.AddCategoryMapping(1822, TorznabCatType.AudioMP3, "|- Goa Trance, Psy-Trance (lossy)"); + caps.Categories.AddCategoryMapping(1894, TorznabCatType.AudioLossless, "|- PsyChill, Ambient, Dub (lossless)"); + caps.Categories.AddCategoryMapping(1895, TorznabCatType.AudioMP3, "|- PsyChill, Ambient, Dub (lossy)"); + caps.Categories.AddCategoryMapping(460, TorznabCatType.AudioMP3, "|- Goa Trance, Psy-Trance, PsyChill, Ambient, Dub (Live Sets, Mixes) (lossy)"); + caps.Categories.AddCategoryMapping(1818, TorznabCatType.AudioLossless, "|- Trance (lossless)"); + caps.Categories.AddCategoryMapping(1819, TorznabCatType.AudioMP3, "|- Trance (lossy)"); + caps.Categories.AddCategoryMapping(1847, TorznabCatType.AudioMP3, "|- Trance (Singles, EPs) (lossy)"); + caps.Categories.AddCategoryMapping(1824, TorznabCatType.AudioMP3, "|- Trance (Radioshows, Podcasts, Live Sets, Mixes) (lossy)"); + caps.Categories.AddCategoryMapping(1807, TorznabCatType.Audio, "House, Techno, Hardcore, Hardstyle, Jumpstyle"); + caps.Categories.AddCategoryMapping(1829, TorznabCatType.AudioLossless, "|- Hardcore, Hardstyle, Jumpstyle (lossless)"); + caps.Categories.AddCategoryMapping(1830, TorznabCatType.AudioMP3, "|- Hardcore, Hardstyle, Jumpstyle (lossy)"); + caps.Categories.AddCategoryMapping(1831, TorznabCatType.AudioMP3, "|- Hardcore, Hardstyle, Jumpstyle (vinyl, web)"); + caps.Categories.AddCategoryMapping(1857, TorznabCatType.AudioLossless, "|- House (lossless)"); + caps.Categories.AddCategoryMapping(1859, TorznabCatType.AudioMP3, "|- House (Radioshow, Podcast, Liveset, Mixes)"); + caps.Categories.AddCategoryMapping(1858, TorznabCatType.AudioMP3, "|- House (lossy)"); + caps.Categories.AddCategoryMapping(840, TorznabCatType.AudioMP3, "|- House (Проморелизы, сборники) (lossy)"); + caps.Categories.AddCategoryMapping(1860, TorznabCatType.AudioMP3, "|- House (Singles, EPs) (lossy)"); + caps.Categories.AddCategoryMapping(1825, TorznabCatType.AudioLossless, "|- Techno (lossless)"); + caps.Categories.AddCategoryMapping(1826, TorznabCatType.AudioMP3, "|- Techno (lossy)"); + caps.Categories.AddCategoryMapping(1827, TorznabCatType.AudioMP3, "|- Techno (Radioshows, Podcasts, Livesets, Mixes)"); + caps.Categories.AddCategoryMapping(1828, TorznabCatType.AudioMP3, "|- Techno (Singles, EPs) (lossy)"); + caps.Categories.AddCategoryMapping(1808, TorznabCatType.Audio, "Drum & Bass, Jungle, Breakbeat, Dubstep, IDM, Electro"); + caps.Categories.AddCategoryMapping(797, TorznabCatType.AudioLossless, "|- Electro, Electro-Freestyle, Nu Electro (lossless)"); + caps.Categories.AddCategoryMapping(1805, TorznabCatType.AudioMP3, "|- Electro, Electro-Freestyle, Nu Electro (lossy)"); + caps.Categories.AddCategoryMapping(1832, TorznabCatType.AudioLossless, "|- Drum & Bass, Jungle (lossless)"); + caps.Categories.AddCategoryMapping(1833, TorznabCatType.AudioMP3, "|- Drum & Bass, Jungle (lossy)"); + caps.Categories.AddCategoryMapping(1834, TorznabCatType.AudioMP3, "|- Drum & Bass, Jungle (Radioshows, Podcasts, Livesets, Mixes)"); + caps.Categories.AddCategoryMapping(1836, TorznabCatType.AudioLossless, "|- Breakbeat (lossless)"); + caps.Categories.AddCategoryMapping(1837, TorznabCatType.AudioMP3, "|- Breakbeat (lossy)"); + caps.Categories.AddCategoryMapping(1839, TorznabCatType.AudioLossless, "|- Dubstep (lossless)"); + caps.Categories.AddCategoryMapping(454, TorznabCatType.AudioMP3, "|- Dubstep (lossy)"); + caps.Categories.AddCategoryMapping(1838, TorznabCatType.AudioMP3, "|- Breakbeat, Dubstep (Radioshows, Podcasts, Livesets, Mixes)"); + caps.Categories.AddCategoryMapping(1840, TorznabCatType.AudioLossless, "|- IDM (lossless)"); + caps.Categories.AddCategoryMapping(1841, TorznabCatType.AudioMP3, "|- IDM (lossy)"); + caps.Categories.AddCategoryMapping(2229, TorznabCatType.AudioMP3, "|- IDM Discography & Collections (lossy)"); + caps.Categories.AddCategoryMapping(1809, TorznabCatType.Audio, "Chillout, Lounge, Downtempo, Trip-Hop"); + caps.Categories.AddCategoryMapping(1861, TorznabCatType.AudioLossless, "|- Chillout, Lounge, Downtempo (lossless)"); + caps.Categories.AddCategoryMapping(1862, TorznabCatType.AudioMP3, "|- Chillout, Lounge, Downtempo (lossy)"); + caps.Categories.AddCategoryMapping(1947, TorznabCatType.AudioLossless, "|- Nu Jazz, Acid Jazz, Future Jazz (lossless)"); + caps.Categories.AddCategoryMapping(1946, TorznabCatType.AudioMP3, "|- Nu Jazz, Acid Jazz, Future Jazz (lossy)"); + caps.Categories.AddCategoryMapping(1945, TorznabCatType.AudioLossless, "|- Trip Hop, Abstract Hip-Hop (lossless)"); + caps.Categories.AddCategoryMapping(1944, TorznabCatType.AudioMP3, "|- Trip Hop, Abstract Hip-Hop (lossy)"); + caps.Categories.AddCategoryMapping(1810, TorznabCatType.Audio, "Traditional Electronic, Ambient, Modern Classical, Electroacoustic, Experimental"); + caps.Categories.AddCategoryMapping(1864, TorznabCatType.AudioLossless, "|- Traditional Electronic, Ambient (lossless)"); + caps.Categories.AddCategoryMapping(1865, TorznabCatType.AudioMP3, "|- Traditional Electronic, Ambient (lossy)"); + caps.Categories.AddCategoryMapping(1871, TorznabCatType.AudioLossless, "|- Modern Classical, Electroacoustic (lossless)"); + caps.Categories.AddCategoryMapping(1867, TorznabCatType.AudioMP3, "|- Modern Classical, Electroacoustic (lossy)"); + caps.Categories.AddCategoryMapping(1869, TorznabCatType.AudioLossless, "|- Experimental (lossless)"); + caps.Categories.AddCategoryMapping(1873, TorznabCatType.AudioMP3, "|- Experimental (lossy)"); + caps.Categories.AddCategoryMapping(1811, TorznabCatType.Audio, "Industrial, Noise, EBM, Dark Electro, Aggrotech, Cyberpunk, Synthpop, New Wave"); + caps.Categories.AddCategoryMapping(1868, TorznabCatType.AudioLossless, "|- EBM, Dark Electro, Aggrotech (lossless)"); + caps.Categories.AddCategoryMapping(1875, TorznabCatType.AudioMP3, "|- EBM, Dark Electro, Aggrotech (lossy)"); + caps.Categories.AddCategoryMapping(1877, TorznabCatType.AudioLossless, "|- Industrial, Noise (lossless)"); + caps.Categories.AddCategoryMapping(1878, TorznabCatType.AudioMP3, "|- Industrial, Noise (lossy)"); + caps.Categories.AddCategoryMapping(1907, TorznabCatType.Audio, "|- Cyberpunk, 8-bit, Chiptune (lossy & lossless)"); + caps.Categories.AddCategoryMapping(1880, TorznabCatType.AudioLossless, "|- Synthpop, Futurepop, New Wave, Electropop (lossless)"); + caps.Categories.AddCategoryMapping(1881, TorznabCatType.AudioMP3, "|- Synthpop, Futurepop, New Wave, Electropop (lossy)"); + caps.Categories.AddCategoryMapping(466, TorznabCatType.AudioLossless, "|- Synthwave, Spacesynth, Dreamwave, Retrowave, Outrun (lossless)"); + caps.Categories.AddCategoryMapping(465, TorznabCatType.AudioMP3, "|- Synthwave, Spacesynth, Dreamwave, Retrowave, Outrun (lossy)"); + caps.Categories.AddCategoryMapping(1866, TorznabCatType.AudioLossless, "|- Darkwave, Neoclassical, Ethereal, Dungeon Synth (lossless)"); + caps.Categories.AddCategoryMapping(406, TorznabCatType.AudioMP3, "|- Darkwave, Neoclassical, Ethereal, Dungeon Synth (lossy)"); + caps.Categories.AddCategoryMapping(1299, TorznabCatType.Audio, "Hi-Res stereo и многоканальная музыка"); + caps.Categories.AddCategoryMapping(1884, TorznabCatType.Audio, "|- Классика и классика в современной обработке (Hi-Res stereo)"); + caps.Categories.AddCategoryMapping(1164, TorznabCatType.Audio, "|- Классика и классика в современной обработке (многоканальная музыка)"); + caps.Categories.AddCategoryMapping(2513, TorznabCatType.Audio, "|- New Age, Relax, Meditative & Flamenco (Hi-Res stereo и многоканальная музыка)"); + caps.Categories.AddCategoryMapping(1397, TorznabCatType.Audio, "|- Саундтреки (Hi-Res stereo и многоканальная музыка)"); + caps.Categories.AddCategoryMapping(2512, TorznabCatType.Audio, "|- Музыка разных жанров (Hi-Res stereo и многоканальная музыка)"); + caps.Categories.AddCategoryMapping(1885, TorznabCatType.Audio, "|- Поп-музыка (Hi-Res stereo)"); + caps.Categories.AddCategoryMapping(1163, TorznabCatType.Audio, "|- Поп-музыка (многоканальная музыка)"); + caps.Categories.AddCategoryMapping(2302, TorznabCatType.Audio, "|- Джаз и Блюз (Hi-Res stereo)"); + caps.Categories.AddCategoryMapping(2303, TorznabCatType.Audio, "|- Джаз и Блюз (многоканальная музыка)"); + caps.Categories.AddCategoryMapping(1755, TorznabCatType.Audio, "|- Рок-музыка (Hi-Res stereo)"); + caps.Categories.AddCategoryMapping(1757, TorznabCatType.Audio, "|- Рок-музыка (многоканальная музыка)"); + caps.Categories.AddCategoryMapping(1893, TorznabCatType.Audio, "|- Электронная музыка (Hi-Res stereo)"); + caps.Categories.AddCategoryMapping(1890, TorznabCatType.Audio, "|- Электронная музыка (многоканальная музыка)"); + caps.Categories.AddCategoryMapping(2219, TorznabCatType.Audio, "Оцифровки с аналоговых носителей"); + caps.Categories.AddCategoryMapping(1660, TorznabCatType.Audio, "|- Классика и классика в современной обработке (оцифровки)"); + caps.Categories.AddCategoryMapping(506, TorznabCatType.Audio, "|- Фольклор, народная и этническая музыка (оцифровки)"); + caps.Categories.AddCategoryMapping(1835, TorznabCatType.Audio, "|- Rap, Hip-Hop, R'n'B, Reggae, Ska, Dub (оцифровки)"); + caps.Categories.AddCategoryMapping(1625, TorznabCatType.Audio, "|- Саундтреки и мюзиклы (оцифровки)"); + caps.Categories.AddCategoryMapping(1217, TorznabCatType.Audio, "|- Шансон, авторские, военные песни и марши (оцифровки)"); + caps.Categories.AddCategoryMapping(974, TorznabCatType.Audio, "|- Музыка других жанров (оцифровки)"); + caps.Categories.AddCategoryMapping(1444, TorznabCatType.Audio, "|- Зарубежная поп-музыка (оцифровки)"); + caps.Categories.AddCategoryMapping(2401, TorznabCatType.Audio, "|- Советская эстрада, ретро, романсы (оцифровки)"); + caps.Categories.AddCategoryMapping(239, TorznabCatType.Audio, "|- Отечественная поп-музыка (оцифровки)"); + caps.Categories.AddCategoryMapping(450, TorznabCatType.Audio, "|- Инструментальная поп-музыка (оцифровки)"); + caps.Categories.AddCategoryMapping(2301, TorznabCatType.Audio, "|- Джаз и блюз (оцифровки)"); + caps.Categories.AddCategoryMapping(123, TorznabCatType.Audio, "|- Alternative, Punk, Independent (оцифровки)"); + caps.Categories.AddCategoryMapping(1756, TorznabCatType.Audio, "|- Зарубежная рок-музыка (оцифровки)"); + caps.Categories.AddCategoryMapping(1758, TorznabCatType.Audio, "|- Отечественная рок-музыка (оцифровки)"); + caps.Categories.AddCategoryMapping(1766, TorznabCatType.Audio, "|- Зарубежный и Отечественный Metal (оцифровки)"); + caps.Categories.AddCategoryMapping(1754, TorznabCatType.Audio, "|- Электронная музыка (оцифровки)"); + caps.Categories.AddCategoryMapping(860, TorznabCatType.Audio, "Неофициальные конверсии цифровых форматов"); + caps.Categories.AddCategoryMapping(453, TorznabCatType.Audio, "|- Конверсии Quadraphonic"); + caps.Categories.AddCategoryMapping(1170, TorznabCatType.Audio, "|- Конверсии SACD"); + caps.Categories.AddCategoryMapping(1759, TorznabCatType.Audio, "|- Конверсии Blu-Ray, ADVD и DVD-Audio"); + caps.Categories.AddCategoryMapping(1852, TorznabCatType.Audio, "|- Апмиксы-Upmixes/Даунмиксы-Downmix"); + caps.Categories.AddCategoryMapping(413, TorznabCatType.AudioVideo, "Музыкальное SD видео"); + caps.Categories.AddCategoryMapping(445, TorznabCatType.AudioVideo, "|- Классическая и современная академическая музыка (Видео)"); + caps.Categories.AddCategoryMapping(702, TorznabCatType.AudioVideo, "|- Опера, Оперетта и Мюзикл (Видео)"); + caps.Categories.AddCategoryMapping(1990, TorznabCatType.AudioVideo, "|- Балет и современная хореография (Видео)"); + caps.Categories.AddCategoryMapping(1793, TorznabCatType.AudioVideo, "|- Классика в современной обработке, Classical Crossover (Видео)"); + caps.Categories.AddCategoryMapping(1141, TorznabCatType.AudioVideo, "|- Фольклор, Народная и Этническая музыка и фламенко (Видео)"); + caps.Categories.AddCategoryMapping(1775, TorznabCatType.AudioVideo, "|- New Age, Relax, Meditative, Рэп, Хип-Хоп, R'n'B, Reggae, Ska, Dub (Видео)"); + caps.Categories.AddCategoryMapping(1227, TorznabCatType.AudioVideo, "|- Зарубежный и Отечественный Шансон, Авторская и Военная песня (Видео)"); + caps.Categories.AddCategoryMapping(475, TorznabCatType.AudioVideo, "|- Музыка других жанров, Советская эстрада, ретро, романсы (Видео)"); + caps.Categories.AddCategoryMapping(1121, TorznabCatType.AudioVideo, "|- Отечественная поп-музыка (Видео)"); + caps.Categories.AddCategoryMapping(431, TorznabCatType.AudioVideo, "|- Зарубежная Поп-музыка, Eurodance, Disco (Видео)"); + caps.Categories.AddCategoryMapping(2378, TorznabCatType.AudioVideo, "|- Восточноазиатская поп-музыка (Видео)"); + caps.Categories.AddCategoryMapping(2383, TorznabCatType.AudioVideo, "|- Разножанровые сборные концерты и сборники видеоклипов (Видео)"); + caps.Categories.AddCategoryMapping(2305, TorznabCatType.AudioVideo, "|- Джаз и Блюз (Видео)"); + caps.Categories.AddCategoryMapping(1782, TorznabCatType.AudioVideo, "|- Rock (Видео)"); + caps.Categories.AddCategoryMapping(1787, TorznabCatType.AudioVideo, "|- Metal (Видео)"); + caps.Categories.AddCategoryMapping(1789, TorznabCatType.AudioVideo, "|- Зарубежный Alternative, Punk, Independent (Видео)"); + caps.Categories.AddCategoryMapping(1791, TorznabCatType.AudioVideo, "|- Отечественный Рок, Панк, Альтернатива (Видео)"); + caps.Categories.AddCategoryMapping(1912, TorznabCatType.AudioVideo, "|- Электронная музыка (Видео)"); + caps.Categories.AddCategoryMapping(1189, TorznabCatType.AudioVideo, "|- Документальные фильмы о музыке и музыкантах (Видео)"); + caps.Categories.AddCategoryMapping(2403, TorznabCatType.AudioVideo, "Музыкальное DVD видео"); + caps.Categories.AddCategoryMapping(984, TorznabCatType.AudioVideo, "|- Классическая и современная академическая музыка (DVD Video)"); + caps.Categories.AddCategoryMapping(983, TorznabCatType.AudioVideo, "|- Опера, Оперетта и Мюзикл (DVD видео)"); + caps.Categories.AddCategoryMapping(2352, TorznabCatType.AudioVideo, "|- Балет и современная хореография (DVD Video)"); + caps.Categories.AddCategoryMapping(2384, TorznabCatType.AudioVideo, "|- Классика в современной обработке, Classical Crossover (DVD Video)"); + caps.Categories.AddCategoryMapping(1142, TorznabCatType.AudioVideo, "|- Фольклор, Народная и Этническая музыка и Flamenco (DVD Video)"); + caps.Categories.AddCategoryMapping(1107, TorznabCatType.AudioVideo, "|- New Age, Relax, Meditative, Рэп, Хип-Хоп, R'n'B, Reggae, Ska, Dub (DVD Video)"); + caps.Categories.AddCategoryMapping(1228, TorznabCatType.AudioVideo, "|- Зарубежный и Отечественный Шансон, Авторская и Военная песня (DVD Video)"); + caps.Categories.AddCategoryMapping(988, TorznabCatType.AudioVideo, "|- Музыка других жанров, Советская эстрада, ретро, романсы (DVD Video)"); + caps.Categories.AddCategoryMapping(1122, TorznabCatType.AudioVideo, "|- Отечественная поп-музыка (DVD Video)"); + caps.Categories.AddCategoryMapping(986, TorznabCatType.AudioVideo, "|- Зарубежная Поп-музыка, Eurodance, Disco (DVD Video)"); + caps.Categories.AddCategoryMapping(2379, TorznabCatType.AudioVideo, "|- Восточноазиатская поп-музыка (DVD Video)"); + caps.Categories.AddCategoryMapping(2088, TorznabCatType.AudioVideo, "|- Разножанровые сборные концерты и сборники видеоклипов (DVD Video)"); + caps.Categories.AddCategoryMapping(2304, TorznabCatType.AudioVideo, "|- Джаз и Блюз (DVD Видео)"); + caps.Categories.AddCategoryMapping(1783, TorznabCatType.AudioVideo, "|- Зарубежный Rock (DVD Video)"); + caps.Categories.AddCategoryMapping(1788, TorznabCatType.AudioVideo, "|- Зарубежный Metal (DVD Video)"); + caps.Categories.AddCategoryMapping(1790, TorznabCatType.AudioVideo, "|- Зарубежный Alternative, Punk, Independent (DVD Video)"); + caps.Categories.AddCategoryMapping(1792, TorznabCatType.AudioVideo, "|- Отечественный Рок, Метал, Панк, Альтернатива (DVD Video)"); + caps.Categories.AddCategoryMapping(1886, TorznabCatType.AudioVideo, "|- Электронная музыка (DVD Video)"); + caps.Categories.AddCategoryMapping(2509, TorznabCatType.AudioVideo, "|- Документальные фильмы о музыке и музыкантах (DVD Video)"); + caps.Categories.AddCategoryMapping(2507, TorznabCatType.AudioVideo, "Неофициальные DVD видео"); + caps.Categories.AddCategoryMapping(2263, TorznabCatType.AudioVideo, "|- Классическая музыка, Опера, Балет, Мюзикл (Неофициальные DVD Video)"); + caps.Categories.AddCategoryMapping(2511, TorznabCatType.AudioVideo, "|- Шансон, Авторская песня, Сборные концерты, МДЖ (Неофициальные DVD Video)"); + caps.Categories.AddCategoryMapping(2264, TorznabCatType.AudioVideo, "|- Зарубежная и Отечественная Поп-музыка (Неофициальные DVD Video)"); + caps.Categories.AddCategoryMapping(2262, TorznabCatType.AudioVideo, "|- Джаз и Блюз (Неофициальные DVD Video)"); + caps.Categories.AddCategoryMapping(2261, TorznabCatType.AudioVideo, "|- Зарубежная и Отечественная Рок-музыка (Неофициальные DVD Video)"); + caps.Categories.AddCategoryMapping(1887, TorznabCatType.AudioVideo, "|- Электронная музыка (Неофициальные DVD Video)"); + caps.Categories.AddCategoryMapping(2531, TorznabCatType.AudioVideo, "|- Прочие жанры (Неофициальные DVD видео)"); + caps.Categories.AddCategoryMapping(2400, TorznabCatType.AudioVideo, "Музыкальное HD видео"); + caps.Categories.AddCategoryMapping(1812, TorznabCatType.AudioVideo, "|- Классическая и современная академическая музыка (HD Video)"); + caps.Categories.AddCategoryMapping(655, TorznabCatType.AudioVideo, "|- Опера, Оперетта и Мюзикл (HD Видео)"); + caps.Categories.AddCategoryMapping(1777, TorznabCatType.AudioVideo, "|- Балет и современная хореография (HD Video)"); + caps.Categories.AddCategoryMapping(2530, TorznabCatType.AudioVideo, "|- Фольклор, Народная, Этническая музыка и Flamenco (HD Видео)"); + caps.Categories.AddCategoryMapping(2529, TorznabCatType.AudioVideo, "|- New Age, Relax, Meditative, Рэп, Хип-Хоп, R'n'B, Reggae, Ska, Dub (HD Видео)"); + caps.Categories.AddCategoryMapping(1781, TorznabCatType.AudioVideo, "|- Музыка других жанров, Разножанровые сборные концерты (HD видео)"); + caps.Categories.AddCategoryMapping(2508, TorznabCatType.AudioVideo, "|- Зарубежная поп-музыка (HD Video)"); + caps.Categories.AddCategoryMapping(2426, TorznabCatType.AudioVideo, "|- Отечественная поп-музыка (HD видео)"); + caps.Categories.AddCategoryMapping(2351, TorznabCatType.AudioVideo, "|- Восточноазиатская Поп-музыка (HD Video)"); + caps.Categories.AddCategoryMapping(2306, TorznabCatType.AudioVideo, "|- Джаз и Блюз (HD Video)"); + caps.Categories.AddCategoryMapping(1795, TorznabCatType.AudioVideo, "|- Зарубежный рок (HD Video)"); + caps.Categories.AddCategoryMapping(2271, TorznabCatType.AudioVideo, "|- Отечественный рок (HD видео)"); + caps.Categories.AddCategoryMapping(1913, TorznabCatType.AudioVideo, "|- Электронная музыка (HD Video)"); + caps.Categories.AddCategoryMapping(1784, TorznabCatType.AudioVideo, "|- UHD музыкальное видео"); + caps.Categories.AddCategoryMapping(1892, TorznabCatType.AudioVideo, "|- Документальные фильмы о музыке и музыкантах (HD Video)"); + caps.Categories.AddCategoryMapping(518, TorznabCatType.AudioVideo, "Некондиционное музыкальное видео (Видео, DVD видео, HD видео)"); + caps.Categories.AddCategoryMapping(5, TorznabCatType.PCGames, "Игры для Windows"); + caps.Categories.AddCategoryMapping(635, TorznabCatType.PCGames, "|- Горячие Новинки"); + caps.Categories.AddCategoryMapping(127, TorznabCatType.PCGames, "|- Аркады"); + caps.Categories.AddCategoryMapping(2203, TorznabCatType.PCGames, "|- Файтинги"); + caps.Categories.AddCategoryMapping(647, TorznabCatType.PCGames, "|- Экшены от первого лица"); + caps.Categories.AddCategoryMapping(646, TorznabCatType.PCGames, "|- Экшены от третьего лица"); + caps.Categories.AddCategoryMapping(50, TorznabCatType.PCGames, "|- Хорроры"); + caps.Categories.AddCategoryMapping(53, TorznabCatType.PCGames, "|- Приключения и квесты"); + caps.Categories.AddCategoryMapping(1008, TorznabCatType.PCGames, "|- Квесты в стиле \"Поиск предметов\""); + caps.Categories.AddCategoryMapping(900, TorznabCatType.PCGames, "|- Визуальные новеллы"); + caps.Categories.AddCategoryMapping(128, TorznabCatType.PCGames, "|- Для самых маленьких"); + caps.Categories.AddCategoryMapping(2204, TorznabCatType.PCGames, "|- Логические игры"); + caps.Categories.AddCategoryMapping(278, TorznabCatType.PCGames, "|- Шахматы"); + caps.Categories.AddCategoryMapping(2118, TorznabCatType.PCGames, "|- Многопользовательские игры"); + caps.Categories.AddCategoryMapping(52, TorznabCatType.PCGames, "|- Ролевые игры"); + caps.Categories.AddCategoryMapping(54, TorznabCatType.PCGames, "|- Симуляторы"); + caps.Categories.AddCategoryMapping(51, TorznabCatType.PCGames, "|- Стратегии в реальном времени"); + caps.Categories.AddCategoryMapping(2226, TorznabCatType.PCGames, "|- Пошаговые стратегии"); + caps.Categories.AddCategoryMapping(2228, TorznabCatType.PCGames, "|- IBM-PC-несовместимые компьютеры"); + caps.Categories.AddCategoryMapping(139, TorznabCatType.PCGames, "Прочее для Windows-игр"); + caps.Categories.AddCategoryMapping(2478, TorznabCatType.PCGames, "|- Официальные патчи, моды, плагины, дополнения"); + caps.Categories.AddCategoryMapping(2480, TorznabCatType.PCGames, "|- Неофициальные модификации, плагины, дополнения"); + caps.Categories.AddCategoryMapping(2481, TorznabCatType.PCGames, "|- Русификаторы"); + caps.Categories.AddCategoryMapping(2142, TorznabCatType.PCGames, "Прочее для Microsoft Flight Simulator, Prepar3D, X-Plane"); + caps.Categories.AddCategoryMapping(2060, TorznabCatType.PCGames, "|- Сценарии, меши и аэропорты для FS2004, FSX, P3D"); + caps.Categories.AddCategoryMapping(2145, TorznabCatType.PCGames, "|- Самолёты и вертолёты для FS2004, FSX, P3D"); + caps.Categories.AddCategoryMapping(2146, TorznabCatType.PCGames, "|- Миссии, трафик, звуки, паки и утилиты для FS2004, FSX, P3D"); + caps.Categories.AddCategoryMapping(2143, TorznabCatType.PCGames, "|- Сценарии, миссии, трафик, звуки, паки и утилиты для X-Plane"); + caps.Categories.AddCategoryMapping(2012, TorznabCatType.PCGames, "|- Самолёты и вертолёты для X-Plane"); + caps.Categories.AddCategoryMapping(960, TorznabCatType.PCMac, "Игры для Apple Macintosh"); + caps.Categories.AddCategoryMapping(537, TorznabCatType.PCMac, "|- Нативные игры для Mac"); + caps.Categories.AddCategoryMapping(637, TorznabCatType.PCMac, "|- Игры для Mac с Wineskin, DOSBox, Cider и другими"); + caps.Categories.AddCategoryMapping(899, TorznabCatType.PCGames, "Игры для Linux"); + caps.Categories.AddCategoryMapping(1992, TorznabCatType.PCGames, "|- Нативные игры для Linux"); + caps.Categories.AddCategoryMapping(2059, TorznabCatType.PCGames, "|- Игры для Linux с Wine, DOSBox и другими"); + caps.Categories.AddCategoryMapping(548, TorznabCatType.Console, "Игры для консолей"); + caps.Categories.AddCategoryMapping(908, TorznabCatType.Console, "|- PS"); + caps.Categories.AddCategoryMapping(357, TorznabCatType.ConsoleOther, "|- PS2"); + caps.Categories.AddCategoryMapping(886, TorznabCatType.ConsolePS3, "|- PS3"); + caps.Categories.AddCategoryMapping(546, TorznabCatType.Console, "|- Игры PS1, PS2 и PSP для PS3"); + caps.Categories.AddCategoryMapping(973, TorznabCatType.ConsolePS4, "|- PS4"); + caps.Categories.AddCategoryMapping(1352, TorznabCatType.ConsolePSP, "|- PSP"); + caps.Categories.AddCategoryMapping(1116, TorznabCatType.ConsolePSP, "|- Игры PS1 для PSP"); + caps.Categories.AddCategoryMapping(595, TorznabCatType.ConsolePSVita, "|- PS Vita"); + caps.Categories.AddCategoryMapping(887, TorznabCatType.ConsoleXBox, "|- Original Xbox"); + caps.Categories.AddCategoryMapping(510, TorznabCatType.ConsoleXBox360, "|- Xbox 360"); + caps.Categories.AddCategoryMapping(773, TorznabCatType.ConsoleWii, "|- Wii/WiiU"); + caps.Categories.AddCategoryMapping(774, TorznabCatType.ConsoleNDS, "|- NDS/3DS"); + caps.Categories.AddCategoryMapping(1605, TorznabCatType.Console, "|- Switch"); + caps.Categories.AddCategoryMapping(968, TorznabCatType.Console, "|- Dreamcast"); + caps.Categories.AddCategoryMapping(129, TorznabCatType.Console, "|- Остальные платформы"); + caps.Categories.AddCategoryMapping(2185, TorznabCatType.ConsoleOther, "Видео для консолей"); + caps.Categories.AddCategoryMapping(2487, TorznabCatType.ConsoleOther, "|- Видео для PS Vita"); + caps.Categories.AddCategoryMapping(2182, TorznabCatType.ConsoleOther, "|- Фильмы для PSP"); + caps.Categories.AddCategoryMapping(2181, TorznabCatType.ConsoleOther, "|- Сериалы для PSP"); + caps.Categories.AddCategoryMapping(2180, TorznabCatType.ConsoleOther, "|- Мультфильмы для PSP"); + caps.Categories.AddCategoryMapping(2179, TorznabCatType.ConsoleOther, "|- Дорамы для PSP"); + caps.Categories.AddCategoryMapping(2186, TorznabCatType.ConsoleOther, "|- Аниме для PSP"); + caps.Categories.AddCategoryMapping(700, TorznabCatType.ConsoleOther, "|- Видео для PSP"); + caps.Categories.AddCategoryMapping(1926, TorznabCatType.ConsoleOther, "|- Видео для PS3 и других консолей"); + caps.Categories.AddCategoryMapping(650, TorznabCatType.PCMobileOther, "Игры для мобильных устройств"); + caps.Categories.AddCategoryMapping(2149, TorznabCatType.PCMobileAndroid, "|- Игры для Android"); + caps.Categories.AddCategoryMapping(2420, TorznabCatType.ConsoleOther, "|- Игры для Oculus Quest"); + caps.Categories.AddCategoryMapping(1001, TorznabCatType.PC, "|- Игры для Java"); + caps.Categories.AddCategoryMapping(1004, TorznabCatType.PCMobileOther, "|- Игры для Symbian"); + caps.Categories.AddCategoryMapping(1002, TorznabCatType.PCMobileOther, "|- Игры для Windows Mobile"); + caps.Categories.AddCategoryMapping(240, TorznabCatType.OtherMisc, "Игровое видео"); + caps.Categories.AddCategoryMapping(2415, TorznabCatType.OtherMisc, "|- Видеопрохождения игр"); + caps.Categories.AddCategoryMapping(1012, TorznabCatType.PC, "Операционные системы от Microsoft"); + caps.Categories.AddCategoryMapping(2489, TorznabCatType.PC, "|- Оригинальные образы Windows"); + caps.Categories.AddCategoryMapping(2523, TorznabCatType.PC, "|- Сборки Windows 8 и далее"); + caps.Categories.AddCategoryMapping(2153, TorznabCatType.PC, "|- Сборки Windows XP - Windows 7"); + caps.Categories.AddCategoryMapping(1019, TorznabCatType.PC, "|- Операционные системы выпущенные до Windows XP"); + caps.Categories.AddCategoryMapping(1021, TorznabCatType.PC, "|- Серверные ОС (оригинальные + сборки)"); + caps.Categories.AddCategoryMapping(1025, TorznabCatType.PC, "|- Разное (сборки All-in-One, пакеты обновлений, утилиты, и прочее)"); + caps.Categories.AddCategoryMapping(1376, TorznabCatType.PC, "Linux, Unix и другие ОС"); + caps.Categories.AddCategoryMapping(1379, TorznabCatType.PC, "|- Операционные системы (Linux, Unix)"); + caps.Categories.AddCategoryMapping(1381, TorznabCatType.PC, "|- Программное обеспечение (Linux, Unix)"); + caps.Categories.AddCategoryMapping(1473, TorznabCatType.PC, "|- Другие ОС и ПО под них"); + caps.Categories.AddCategoryMapping(1195, TorznabCatType.PC, "Тестовые диски для настройки аудио/видео аппаратуры"); + caps.Categories.AddCategoryMapping(1013, TorznabCatType.PC, "Системные программы"); + caps.Categories.AddCategoryMapping(1028, TorznabCatType.PC, "|- Работа с жёстким диском"); + caps.Categories.AddCategoryMapping(1029, TorznabCatType.PC, "|- Резервное копирование"); + caps.Categories.AddCategoryMapping(1030, TorznabCatType.PC, "|- Архиваторы и файловые менеджеры"); + caps.Categories.AddCategoryMapping(1031, TorznabCatType.PC, "|- Программы для настройки и оптимизации ОС"); + caps.Categories.AddCategoryMapping(1032, TorznabCatType.PC, "|- Сервисное обслуживание компьютера"); + caps.Categories.AddCategoryMapping(1033, TorznabCatType.PC, "|- Работа с носителями информации"); + caps.Categories.AddCategoryMapping(1034, TorznabCatType.PC, "|- Информация и диагностика"); + caps.Categories.AddCategoryMapping(1066, TorznabCatType.PC, "|- Программы для интернет и сетей"); + caps.Categories.AddCategoryMapping(1035, TorznabCatType.PC, "|- ПО для защиты компьютера (Антивирусное ПО, Фаерволлы)"); + caps.Categories.AddCategoryMapping(1038, TorznabCatType.PC, "|- Анти-шпионы и анти-трояны"); + caps.Categories.AddCategoryMapping(1039, TorznabCatType.PC, "|- Программы для защиты информации"); + caps.Categories.AddCategoryMapping(1536, TorznabCatType.PC, "|- Драйверы и прошивки"); + caps.Categories.AddCategoryMapping(1051, TorznabCatType.PC, "|- Оригинальные диски к компьютерам и комплектующим"); + caps.Categories.AddCategoryMapping(1040, TorznabCatType.PC, "|- Серверное ПО для Windows"); + caps.Categories.AddCategoryMapping(1041, TorznabCatType.PC, "|- Изменение интерфейса ОС Windows"); + caps.Categories.AddCategoryMapping(1636, TorznabCatType.PC, "|- Скринсейверы"); + caps.Categories.AddCategoryMapping(1042, TorznabCatType.PC, "|- Разное (Системные программы под Windows)"); + caps.Categories.AddCategoryMapping(1059, TorznabCatType.PC, "|- Архив (Разрегистрированные раздачи)"); + caps.Categories.AddCategoryMapping(1014, TorznabCatType.PC, "Системы для бизнеса, офиса, научной и проектной работы"); + caps.Categories.AddCategoryMapping(2134, TorznabCatType.PC, "|- Медицина - интерактивный софт"); + caps.Categories.AddCategoryMapping(1060, TorznabCatType.PC, "|- Всё для дома: кройка, шитьё, кулинария"); + caps.Categories.AddCategoryMapping(1061, TorznabCatType.PC, "|- Офисные системы"); + caps.Categories.AddCategoryMapping(1062, TorznabCatType.PC, "|- Системы для бизнеса"); + caps.Categories.AddCategoryMapping(1067, TorznabCatType.PC, "|- Распознавание текста, звука и синтез речи"); + caps.Categories.AddCategoryMapping(1086, TorznabCatType.PC, "|- Работа с PDF и DjVu"); + caps.Categories.AddCategoryMapping(1068, TorznabCatType.PC, "|- Словари, переводчики"); + caps.Categories.AddCategoryMapping(1063, TorznabCatType.PC, "|- Системы для научной работы"); + caps.Categories.AddCategoryMapping(1087, TorznabCatType.PC, "|- САПР (общие и машиностроительные)"); + caps.Categories.AddCategoryMapping(1192, TorznabCatType.PC, "|- САПР (электроника, автоматика, ГАП)"); + caps.Categories.AddCategoryMapping(1088, TorznabCatType.PC, "|- Программы для архитекторов и строителей"); + caps.Categories.AddCategoryMapping(1193, TorznabCatType.PC, "|- Библиотеки и проекты для архитекторов и дизайнеров интерьеров"); + caps.Categories.AddCategoryMapping(1071, TorznabCatType.PC, "|- Прочие справочные системы"); + caps.Categories.AddCategoryMapping(1073, TorznabCatType.PC, "|- Разное (Системы для бизнеса, офиса, научной и проектной работы)"); + caps.Categories.AddCategoryMapping(1052, TorznabCatType.PC, "Веб-разработка и Программирование"); + caps.Categories.AddCategoryMapping(1053, TorznabCatType.PC, "|- WYSIWYG Редакторы для веб-диза"); + caps.Categories.AddCategoryMapping(1054, TorznabCatType.PC, "|- Текстовые редакторы с подсветкой"); + caps.Categories.AddCategoryMapping(1055, TorznabCatType.PC, "|- Среды программирования, компиляторы и вспомогательные программы"); + caps.Categories.AddCategoryMapping(1056, TorznabCatType.PC, "|- Компоненты для сред программирования"); + caps.Categories.AddCategoryMapping(2077, TorznabCatType.PC, "|- Системы управления базами данных"); + caps.Categories.AddCategoryMapping(1057, TorznabCatType.PC, "|- Скрипты и движки сайтов, CMS а также расширения к ним"); + caps.Categories.AddCategoryMapping(1018, TorznabCatType.PC, "|- Шаблоны для сайтов и CMS"); + caps.Categories.AddCategoryMapping(1058, TorznabCatType.PC, "|- Разное (Веб-разработка и программирование)"); + caps.Categories.AddCategoryMapping(1016, TorznabCatType.PC, "Программы для работы с мультимедиа и 3D"); + caps.Categories.AddCategoryMapping(1079, TorznabCatType.PC, "|- Программные комплекты"); + caps.Categories.AddCategoryMapping(1080, TorznabCatType.PC, "|- Плагины для программ компании Adobe"); + caps.Categories.AddCategoryMapping(1081, TorznabCatType.PC, "|- Графические редакторы"); + caps.Categories.AddCategoryMapping(1082, TorznabCatType.PC, "|- Программы для верстки, печати и работы со шрифтами"); + caps.Categories.AddCategoryMapping(1083, TorznabCatType.PC, "|- 3D моделирование, рендеринг и плагины для них"); + caps.Categories.AddCategoryMapping(1084, TorznabCatType.PC, "|- Анимация"); + caps.Categories.AddCategoryMapping(1085, TorznabCatType.PC, "|- Создание BD/HD/DVD-видео"); + caps.Categories.AddCategoryMapping(1089, TorznabCatType.PC, "|- Редакторы видео"); + caps.Categories.AddCategoryMapping(1090, TorznabCatType.PC, "|- Видео- Аудио- конверторы"); + caps.Categories.AddCategoryMapping(1065, TorznabCatType.PC, "|- Аудио- и видео-, CD- проигрыватели и каталогизаторы"); + caps.Categories.AddCategoryMapping(1064, TorznabCatType.PC, "|- Каталогизаторы и просмотрщики графики"); + caps.Categories.AddCategoryMapping(1092, TorznabCatType.PC, "|- Разное (Программы для работы с мультимедиа и 3D)"); + caps.Categories.AddCategoryMapping(1204, TorznabCatType.PC, "|- Виртуальные студии, секвенсоры и аудиоредакторы"); + caps.Categories.AddCategoryMapping(1027, TorznabCatType.PC, "|- Виртуальные инструменты и синтезаторы"); + caps.Categories.AddCategoryMapping(1199, TorznabCatType.PC, "|- Плагины для обработки звука"); + caps.Categories.AddCategoryMapping(1091, TorznabCatType.PC, "|- Разное (Программы для работы со звуком)"); + caps.Categories.AddCategoryMapping(828, TorznabCatType.OtherMisc, "Материалы для мультимедиа и дизайна"); + caps.Categories.AddCategoryMapping(1357, TorznabCatType.OtherMisc, "|- Авторские работы"); + caps.Categories.AddCategoryMapping(890, TorznabCatType.OtherMisc, "|- Официальные сборники векторных клипартов"); + caps.Categories.AddCategoryMapping(830, TorznabCatType.OtherMisc, "|- Прочие векторные клипарты"); + caps.Categories.AddCategoryMapping(1290, TorznabCatType.OtherMisc, "|- Photostocks"); + caps.Categories.AddCategoryMapping(1962, TorznabCatType.OtherMisc, "|- Дополнения для программ компоузинга и постобработки"); + caps.Categories.AddCategoryMapping(831, TorznabCatType.OtherMisc, "|- Рамки, шаблоны, текстуры и фоны"); + caps.Categories.AddCategoryMapping(829, TorznabCatType.OtherMisc, "|- Прочие растровые клипарты"); + caps.Categories.AddCategoryMapping(633, TorznabCatType.OtherMisc, "|- 3D модели, сцены и материалы"); + caps.Categories.AddCategoryMapping(1009, TorznabCatType.OtherMisc, "|- Футажи"); + caps.Categories.AddCategoryMapping(1963, TorznabCatType.OtherMisc, "|- Прочие сборники футажей"); + caps.Categories.AddCategoryMapping(1954, TorznabCatType.OtherMisc, "|- Музыкальные библиотеки"); + caps.Categories.AddCategoryMapping(1010, TorznabCatType.OtherMisc, "|- Звуковые эффекты"); + caps.Categories.AddCategoryMapping(1674, TorznabCatType.OtherMisc, "|- Библиотеки сэмплов"); + caps.Categories.AddCategoryMapping(2421, TorznabCatType.OtherMisc, "|- Библиотеки и саундбанки для сэмплеров, пресеты для синтезаторов"); + caps.Categories.AddCategoryMapping(2492, TorznabCatType.OtherMisc, "|- Multitracks"); + caps.Categories.AddCategoryMapping(839, TorznabCatType.OtherMisc, "|- Материалы для создания меню и обложек DVD"); + caps.Categories.AddCategoryMapping(1679, TorznabCatType.OtherMisc, "|- Дополнения, стили, кисти, формы, узоры для программ Adobe"); + caps.Categories.AddCategoryMapping(1011, TorznabCatType.OtherMisc, "|- Шрифты"); + caps.Categories.AddCategoryMapping(835, TorznabCatType.OtherMisc, "|- Разное (Материалы для мультимедиа и дизайна)"); + caps.Categories.AddCategoryMapping(1503, TorznabCatType.OtherMisc, "ГИС, системы навигации и карты"); + caps.Categories.AddCategoryMapping(1507, TorznabCatType.OtherMisc, "|- ГИС (Геоинформационные системы)"); + caps.Categories.AddCategoryMapping(1526, TorznabCatType.OtherMisc, "|- Карты, снабженные программной оболочкой"); + caps.Categories.AddCategoryMapping(1508, TorznabCatType.OtherMisc, "|- Атласы и карты современные (после 1950 г.)"); + caps.Categories.AddCategoryMapping(1509, TorznabCatType.OtherMisc, "|- Атласы и карты старинные (до 1950 г.)"); + caps.Categories.AddCategoryMapping(1510, TorznabCatType.OtherMisc, "|- Карты прочие (астрономические, исторические, тематические)"); + caps.Categories.AddCategoryMapping(1511, TorznabCatType.OtherMisc, "|- Встроенная автомобильная навигация"); + caps.Categories.AddCategoryMapping(1512, TorznabCatType.OtherMisc, "|- Garmin"); + caps.Categories.AddCategoryMapping(1513, TorznabCatType.OtherMisc, "|- Ozi"); + caps.Categories.AddCategoryMapping(1514, TorznabCatType.OtherMisc, "|- TomTom"); + caps.Categories.AddCategoryMapping(1515, TorznabCatType.OtherMisc, "|- Navigon / Navitel"); + caps.Categories.AddCategoryMapping(1516, TorznabCatType.OtherMisc, "|- Igo"); + caps.Categories.AddCategoryMapping(1517, TorznabCatType.OtherMisc, "|- Разное - системы навигации и карты"); + caps.Categories.AddCategoryMapping(285, TorznabCatType.PCMobileOther, "Приложения для мобильных устройств"); + caps.Categories.AddCategoryMapping(2154, TorznabCatType.PCMobileAndroid, "|- Приложения для Android"); + caps.Categories.AddCategoryMapping(1005, TorznabCatType.PCMobileOther, "|- Приложения для Java"); + caps.Categories.AddCategoryMapping(289, TorznabCatType.PCMobileOther, "|- Приложения для Symbian"); + caps.Categories.AddCategoryMapping(290, TorznabCatType.PCMobileOther, "|- Приложения для Windows Mobile"); + caps.Categories.AddCategoryMapping(288, TorznabCatType.PCMobileOther, "|- Софт для работы с телефоном"); + caps.Categories.AddCategoryMapping(292, TorznabCatType.PCMobileOther, "|- Прошивки для телефонов"); + caps.Categories.AddCategoryMapping(291, TorznabCatType.PCMobileOther, "|- Обои и темы"); + caps.Categories.AddCategoryMapping(957, TorznabCatType.PCMobileOther, "Видео для мобильных устройств"); + caps.Categories.AddCategoryMapping(287, TorznabCatType.PCMobileOther, "|- Видео для смартфонов и КПК"); + caps.Categories.AddCategoryMapping(286, TorznabCatType.PCMobileOther, "|- Видео в формате 3GP для мобильных"); + caps.Categories.AddCategoryMapping(1366, TorznabCatType.PCMac, "Apple Macintosh"); + caps.Categories.AddCategoryMapping(1368, TorznabCatType.PCMac, "|- Mac OS (для Macintosh)"); + caps.Categories.AddCategoryMapping(1383, TorznabCatType.PCMac, "|- Mac OS (для РС-Хакинтош)"); + caps.Categories.AddCategoryMapping(1394, TorznabCatType.PCMac, "|- Программы для просмотра и обработки видео (Mac OS)"); + caps.Categories.AddCategoryMapping(1370, TorznabCatType.PCMac, "|- Программы для создания и обработки графики (Mac OS)"); + caps.Categories.AddCategoryMapping(2237, TorznabCatType.PCMac, "|- Плагины для программ компании Adobe (Mac OS)"); + caps.Categories.AddCategoryMapping(1372, TorznabCatType.PCMac, "|- Аудио редакторы и конвертеры (Mac OS)"); + caps.Categories.AddCategoryMapping(1373, TorznabCatType.PCMac, "|- Системные программы (Mac OS)"); + caps.Categories.AddCategoryMapping(1375, TorznabCatType.PCMac, "|- Офисные программы (Mac OS)"); + caps.Categories.AddCategoryMapping(1371, TorznabCatType.PCMac, "|- Программы для интернета и сетей (Mac OS)"); + caps.Categories.AddCategoryMapping(1374, TorznabCatType.PCMac, "|- Другие программы (Mac OS)"); + caps.Categories.AddCategoryMapping(1933, TorznabCatType.PCMobileiOS, "iOS"); + caps.Categories.AddCategoryMapping(1935, TorznabCatType.PCMobileiOS, "|- Программы для iOS"); + caps.Categories.AddCategoryMapping(1003, TorznabCatType.PCMobileiOS, "|- Игры для iOS"); + caps.Categories.AddCategoryMapping(1937, TorznabCatType.PCMobileiOS, "|- Разное для iOS"); + caps.Categories.AddCategoryMapping(2235, TorznabCatType.PCMobileiOS, "Видео"); + caps.Categories.AddCategoryMapping(1908, TorznabCatType.PCMobileiOS, "|- Фильмы для iPod, iPhone, iPad"); + caps.Categories.AddCategoryMapping(864, TorznabCatType.PCMobileiOS, "|- Сериалы для iPod, iPhone, iPad"); + caps.Categories.AddCategoryMapping(863, TorznabCatType.PCMobileiOS, "|- Мультфильмы для iPod, iPhone, iPad"); + caps.Categories.AddCategoryMapping(2535, TorznabCatType.PCMobileiOS, "|- Аниме для iPod, iPhone, iPad"); + caps.Categories.AddCategoryMapping(2534, TorznabCatType.PCMobileiOS, "|- Музыкальное видео для iPod, iPhone, iPad"); + caps.Categories.AddCategoryMapping(2238, TorznabCatType.PCMac, "Видео HD"); + caps.Categories.AddCategoryMapping(1936, TorznabCatType.PCMac, "|- Фильмы HD для Apple TV"); + caps.Categories.AddCategoryMapping(315, TorznabCatType.PCMac, "|- Сериалы HD для Apple TV"); + caps.Categories.AddCategoryMapping(1363, TorznabCatType.PCMac, "|- Мультфильмы HD для Apple TV"); + caps.Categories.AddCategoryMapping(2082, TorznabCatType.PCMac, "|- Документальное видео HD для Apple TV"); + caps.Categories.AddCategoryMapping(2241, TorznabCatType.PCMac, "|- Музыкальное видео HD для Apple TV"); + caps.Categories.AddCategoryMapping(2236, TorznabCatType.Audio, "Аудио"); + caps.Categories.AddCategoryMapping(1909, TorznabCatType.AudioAudiobook, "|- Аудиокниги (AAC, ALAC)"); + caps.Categories.AddCategoryMapping(1927, TorznabCatType.AudioLossless, "|- Музыка lossless (ALAC)"); + caps.Categories.AddCategoryMapping(2240, TorznabCatType.Audio, "|- Музыка Lossy (AAC-iTunes)"); + caps.Categories.AddCategoryMapping(2248, TorznabCatType.Audio, "|- Музыка Lossy (AAC)"); + caps.Categories.AddCategoryMapping(2244, TorznabCatType.Audio, "|- Музыка Lossy (AAC) (Singles, EPs)"); + caps.Categories.AddCategoryMapping(10, TorznabCatType.OtherMisc, "Разное (раздачи)"); + caps.Categories.AddCategoryMapping(865, TorznabCatType.OtherMisc, "|- Психоактивные аудиопрограммы"); + caps.Categories.AddCategoryMapping(1100, TorznabCatType.OtherMisc, "|- Аватары, Иконки, Смайлы"); + caps.Categories.AddCategoryMapping(1643, TorznabCatType.OtherMisc, "|- Живопись, Графика, Скульптура, Digital Art"); + caps.Categories.AddCategoryMapping(848, TorznabCatType.OtherMisc, "|- Картинки"); + caps.Categories.AddCategoryMapping(808, TorznabCatType.OtherMisc, "|- Любительские фотографии"); + caps.Categories.AddCategoryMapping(630, TorznabCatType.OtherMisc, "|- Обои"); + caps.Categories.AddCategoryMapping(1664, TorznabCatType.OtherMisc, "|- Фото знаменитостей"); + caps.Categories.AddCategoryMapping(148, TorznabCatType.Audio, "|- Аудио"); + caps.Categories.AddCategoryMapping(965, TorznabCatType.AudioMP3, "|- Музыка (lossy)"); + caps.Categories.AddCategoryMapping(134, TorznabCatType.AudioLossless, "|- Музыка (lossless)"); + caps.Categories.AddCategoryMapping(807, TorznabCatType.TVOther, "|- Видео"); + caps.Categories.AddCategoryMapping(147, TorznabCatType.Books, "|- Публикации и учебные материалы (тексты)"); + caps.Categories.AddCategoryMapping(847, TorznabCatType.MoviesOther, "|- Трейлеры и дополнительные материалы к фильмам"); + caps.Categories.AddCategoryMapping(1167, TorznabCatType.TVOther, "|- Любительские видеоклипы"); + caps.Categories.AddCategoryMapping(321, TorznabCatType.Other, "|- Отчеты о встречах"); + + return caps; } public override async Task GetConfigurationForSetup() diff --git a/src/Jackett.Common/Indexers/SceneHD.cs b/src/Jackett.Common/Indexers/SceneHD.cs index 768676fc6..bb1b7ec7e 100644 --- a/src/Jackett.Common/Indexers/SceneHD.cs +++ b/src/Jackett.Common/Indexers/SceneHD.cs @@ -26,6 +26,8 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string SearchUrl => SiteLink + "browse.php?"; private string DetailsUrl => SiteLink + "details.php?"; private string DownloadUrl => SiteLink + "download.php?"; @@ -35,21 +37,6 @@ namespace Jackett.Common.Indexers public SceneHD(IIndexerConfigurationService configService, WebClient c, Logger l, IProtectionService ps, ICacheService cs) : base(configService: configService, - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep - }, - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId - }, - MusicSearchParams = new List - { - MusicSearchParam.Q - } - }, client: c, logger: l, p: ps, @@ -58,19 +45,40 @@ namespace Jackett.Common.Indexers "feed link. It's the last parameter in the URL.")) { webclient.AddTrustedCertificate(new Uri(SiteLink).Host, "3A4090096DD95D31306B14BFDD8F8C98F52A8EA8"); + } - AddCategoryMapping(2, TorznabCatType.MoviesUHD, "Movie/2160"); - AddCategoryMapping(1, TorznabCatType.MoviesHD, "Movie/1080"); - AddCategoryMapping(4, TorznabCatType.MoviesHD, "Movie/720"); - AddCategoryMapping(8, TorznabCatType.MoviesBluRay, "Movie/BD5/9"); - AddCategoryMapping(6, TorznabCatType.TVUHD, "TV/2160"); - AddCategoryMapping(5, TorznabCatType.TVHD, "TV/1080"); - AddCategoryMapping(7, TorznabCatType.TVHD, "TV/720"); - AddCategoryMapping(22, TorznabCatType.MoviesBluRay, "Bluray/Complete"); - AddCategoryMapping(10, TorznabCatType.XXX, "XXX"); - AddCategoryMapping(16, TorznabCatType.MoviesOther, "Subpacks"); - AddCategoryMapping(13, TorznabCatType.AudioVideo, "MVID"); - AddCategoryMapping(9, TorznabCatType.Other, "Other"); + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId + }, + MusicSearchParams = new List + { + MusicSearchParam.Q + } + }; + + caps.Categories.AddCategoryMapping(2, TorznabCatType.MoviesUHD, "Movie/2160"); + caps.Categories.AddCategoryMapping(1, TorznabCatType.MoviesHD, "Movie/1080"); + caps.Categories.AddCategoryMapping(4, TorznabCatType.MoviesHD, "Movie/720"); + caps.Categories.AddCategoryMapping(8, TorznabCatType.MoviesBluRay, "Movie/BD5/9"); + caps.Categories.AddCategoryMapping(6, TorznabCatType.TVUHD, "TV/2160"); + caps.Categories.AddCategoryMapping(5, TorznabCatType.TVHD, "TV/1080"); + caps.Categories.AddCategoryMapping(7, TorznabCatType.TVHD, "TV/720"); + caps.Categories.AddCategoryMapping(22, TorznabCatType.MoviesBluRay, "Bluray/Complete"); + caps.Categories.AddCategoryMapping(10, TorznabCatType.XXX, "XXX"); + caps.Categories.AddCategoryMapping(16, TorznabCatType.MoviesOther, "Subpacks"); + caps.Categories.AddCategoryMapping(13, TorznabCatType.AudioVideo, "MVID"); + caps.Categories.AddCategoryMapping(9, TorznabCatType.Other, "Other"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/SceneTime.cs b/src/Jackett.Common/Indexers/SceneTime.cs index f4e300ef1..0c59f5613 100644 --- a/src/Jackett.Common/Indexers/SceneTime.cs +++ b/src/Jackett.Common/Indexers/SceneTime.cs @@ -4,7 +4,6 @@ using System.Collections.Specialized; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; -using System.Text; using System.Threading.Tasks; using AngleSharp.Html.Parser; using Jackett.Common.Models; @@ -27,6 +26,8 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string SearchUrl => SiteLink + "browse.php"; private string DownloadUrl => SiteLink + "download.php/{0}/download.torrent"; @@ -34,58 +35,64 @@ namespace Jackett.Common.Indexers public SceneTime(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId - }, - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId - }, - MusicSearchParams = new List - { - MusicSearchParam.Q - }, - BookSearchParams = new List - { - BookSearchParam.Q - }, - TvSearchImdbAvailable = true - }, - configService: configService, + : base(configService: configService, client: w, logger: l, p: ps, cacheService: cs, configData: new ConfigurationDataSceneTime()) { - AddCategoryMapping(10, TorznabCatType.XXX, "Movies Adult"); - AddCategoryMapping(47, TorznabCatType.Movies, "Movie Packs"); - AddCategoryMapping(57, TorznabCatType.MoviesSD, "Movies SD"); - AddCategoryMapping(59, TorznabCatType.MoviesHD, "Movies HD"); - AddCategoryMapping(64, TorznabCatType.Movies3D, "Movies 3D"); - AddCategoryMapping(82, TorznabCatType.MoviesOther, "Movies CAM-TS"); - AddCategoryMapping(16, TorznabCatType.MoviesUHD, "Movies UHD"); - AddCategoryMapping(2, TorznabCatType.TVUHD, "TV UHD"); - AddCategoryMapping(43, TorznabCatType.TV, "TV Packs"); - AddCategoryMapping(9, TorznabCatType.TVHD, "TV HD"); - AddCategoryMapping(77, TorznabCatType.TVSD, "TV SD"); - AddCategoryMapping(6, TorznabCatType.PCGames, "Games PC ISO"); - AddCategoryMapping(48, TorznabCatType.ConsoleXBox, "Games XBOX"); - AddCategoryMapping(51, TorznabCatType.ConsoleWii, "Games Wii"); - AddCategoryMapping(55, TorznabCatType.ConsoleNDS, "Games Nintendo DS"); - AddCategoryMapping(12, TorznabCatType.ConsolePS4, "Games/PS"); - AddCategoryMapping(15, TorznabCatType.ConsoleOther, "Games Dreamcast"); - AddCategoryMapping(52, TorznabCatType.PCMac, "Mac/Linux"); - AddCategoryMapping(53, TorznabCatType.PC0day, "Apps"); - AddCategoryMapping(24, TorznabCatType.PCMobileOther, "Mobile Apps"); - AddCategoryMapping(7, TorznabCatType.Books, "Books and Magazines"); - AddCategoryMapping(65, TorznabCatType.BooksComics, "Books Comic"); - AddCategoryMapping(4, TorznabCatType.Audio, "Music"); - AddCategoryMapping(116, TorznabCatType.Audio, "Music Pack"); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId + }, + MusicSearchParams = new List + { + MusicSearchParam.Q + }, + BookSearchParams = new List + { + BookSearchParam.Q + }, + TvSearchImdbAvailable = true + }; + + caps.Categories.AddCategoryMapping(10, TorznabCatType.XXX, "Movies Adult"); + caps.Categories.AddCategoryMapping(47, TorznabCatType.Movies, "Movie Packs"); + caps.Categories.AddCategoryMapping(57, TorznabCatType.MoviesSD, "Movies SD"); + caps.Categories.AddCategoryMapping(59, TorznabCatType.MoviesHD, "Movies HD"); + caps.Categories.AddCategoryMapping(64, TorznabCatType.Movies3D, "Movies 3D"); + caps.Categories.AddCategoryMapping(82, TorznabCatType.MoviesOther, "Movies CAM-TS"); + caps.Categories.AddCategoryMapping(16, TorznabCatType.MoviesUHD, "Movies UHD"); + caps.Categories.AddCategoryMapping(2, TorznabCatType.TVUHD, "TV UHD"); + caps.Categories.AddCategoryMapping(43, TorznabCatType.TV, "TV Packs"); + caps.Categories.AddCategoryMapping(9, TorznabCatType.TVHD, "TV HD"); + caps.Categories.AddCategoryMapping(77, TorznabCatType.TVSD, "TV SD"); + caps.Categories.AddCategoryMapping(6, TorznabCatType.PCGames, "Games PC ISO"); + caps.Categories.AddCategoryMapping(48, TorznabCatType.ConsoleXBox, "Games XBOX"); + caps.Categories.AddCategoryMapping(51, TorznabCatType.ConsoleWii, "Games Wii"); + caps.Categories.AddCategoryMapping(55, TorznabCatType.ConsoleNDS, "Games Nintendo DS"); + caps.Categories.AddCategoryMapping(12, TorznabCatType.ConsolePS4, "Games/PS"); + caps.Categories.AddCategoryMapping(15, TorznabCatType.ConsoleOther, "Games Dreamcast"); + caps.Categories.AddCategoryMapping(52, TorznabCatType.PCMac, "Mac/Linux"); + caps.Categories.AddCategoryMapping(53, TorznabCatType.PC0day, "Apps"); + caps.Categories.AddCategoryMapping(24, TorznabCatType.PCMobileOther, "Mobile Apps"); + caps.Categories.AddCategoryMapping(7, TorznabCatType.Books, "Books and Magazines"); + caps.Categories.AddCategoryMapping(65, TorznabCatType.BooksComics, "Books Comic"); + caps.Categories.AddCategoryMapping(4, TorznabCatType.Audio, "Music"); + caps.Categories.AddCategoryMapping(116, TorznabCatType.Audio, "Music Pack"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/SecretCinema.cs b/src/Jackett.Common/Indexers/SecretCinema.cs index 0cd0b92a1..f644800bf 100644 --- a/src/Jackett.Common/Indexers/SecretCinema.cs +++ b/src/Jackett.Common/Indexers/SecretCinema.cs @@ -21,31 +21,39 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + public SecretCinema(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, - ICacheService cs) - : base( - caps: new TorznabCapabilities - { - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId - }, - MusicSearchParams = new List - { - MusicSearchParam.Q, MusicSearchParam.Album, MusicSearchParam.Artist, MusicSearchParam.Label, MusicSearchParam.Year - } - }, - configService: configService, + ICacheService cs) + : base(configService: configService, client: wc, logger: l, p: ps, cs: cs, supportsFreeleechTokens: false) // ratioless tracker { - AddCategoryMapping(1, TorznabCatType.Movies, "Movies"); - AddCategoryMapping(2, TorznabCatType.Audio, "Music"); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId + }, + MusicSearchParams = new List + { + MusicSearchParam.Q, MusicSearchParam.Album, MusicSearchParam.Artist, MusicSearchParam.Label, MusicSearchParam.Year + } + }; + + caps.Categories.AddCategoryMapping(1, TorznabCatType.Movies, "Movies"); + caps.Categories.AddCategoryMapping(2, TorznabCatType.Audio, "Music"); // cat=3 exists but it's required a refactor in Gazelle abstract to make it work - //AddCategoryMapping(3, TorznabCatType.Books, "E-Books"); + //caps.Categories.AddCategoryMapping(3, TorznabCatType.Books, "E-Books"); + + return caps; } protected override async Task> PerformQuery(TorznabQuery query) diff --git a/src/Jackett.Common/Indexers/Sharewood.cs b/src/Jackett.Common/Indexers/Sharewood.cs index 25bcab13a..392aeb276 100644 --- a/src/Jackett.Common/Indexers/Sharewood.cs +++ b/src/Jackett.Common/Indexers/Sharewood.cs @@ -4,7 +4,6 @@ using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Net; -using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using Jackett.Common.Models; @@ -30,6 +29,8 @@ namespace Jackett.Common.Indexers public override string Language => "fr-FR"; public override string Type => "semi-private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private readonly Dictionary _apiHeaders = new Dictionary { {"Accept", "application/json"}, @@ -39,96 +40,17 @@ namespace Jackett.Common.Indexers private string SearchUrl => SiteLink + "api/" + configData.Passkey.Value; private new ConfigurationDataPasskey configData => (ConfigurationDataPasskey)base.configData; - public ShareWood(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, - ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep - }, - MovieSearchParams = new List - { - MovieSearchParam.Q - }, - MusicSearchParams = new List - { - MusicSearchParam.Q - }, - BookSearchParams = new List - { - BookSearchParam.Q - }, - SupportsRawSearch = true - }, - configService: configService, - client: wc, - logger: l, - p: ps, - cacheService: cs, - configData: new ConfigurationDataPasskey() - ) + public ShareWood(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) + : base(configService: configService, + client: wc, + logger: l, + p: ps, + cacheService: cs, + configData: new ConfigurationDataPasskey()) { // requestDelay for API Limit (1 request per 2 seconds) webclient.requestDelay = 2.1; - //CATEGORIES - //AddCategoryMapping(1, TorznabCatType.Movies, "Vidéos"); - //AddCategoryMapping(1, TorznabCatType.TV, "Vidéos"); - //AddCategoryMapping(2, TorznabCatType.Audio, "Audio"); - //AddCategoryMapping(3, TorznabCatType.PC, "Application"); - //AddCategoryMapping(4, TorznabCatType.Books, "Ebooks"); - //AddCategoryMapping(5, TorznabCatType.PCGames, "Jeu-Vidéo"); - //AddCategoryMapping(6, TorznabCatType.OtherMisc, "Formation"); - //AddCategoryMapping(7, TorznabCatType.XXX, "XXX"); - - //SUBCATEGORIES - AddCategoryMapping(9, TorznabCatType.Movies, "Films"); - AddCategoryMapping(10, TorznabCatType.TV, "Série"); - AddCategoryMapping(11, TorznabCatType.MoviesOther, "Film Animation"); - AddCategoryMapping(12, TorznabCatType.TVAnime, "Série Animation"); - AddCategoryMapping(13, TorznabCatType.TVDocumentary, "Documentaire"); - AddCategoryMapping(14, TorznabCatType.TVOther, "Emission TV"); - AddCategoryMapping(15, TorznabCatType.TVOther, "Spectacle/Concert"); - AddCategoryMapping(16, TorznabCatType.TVSport, "Sport"); - AddCategoryMapping(17, TorznabCatType.AudioOther, "Karaoké Vidéo"); - AddCategoryMapping(18, TorznabCatType.AudioOther, "Karaoké"); - AddCategoryMapping(20, TorznabCatType.Audio, "Musique"); - AddCategoryMapping(21, TorznabCatType.AudioOther, "Podcast"); - AddCategoryMapping(22, TorznabCatType.Audio, "Sample"); - AddCategoryMapping(23, TorznabCatType.AudioAudiobook, "Ebook Audio"); - AddCategoryMapping(24, TorznabCatType.Books, "BD"); - AddCategoryMapping(25, TorznabCatType.BooksComics, "Comic"); - AddCategoryMapping(26, TorznabCatType.BooksOther, "Manga"); - AddCategoryMapping(27, TorznabCatType.Books, "Livre"); - AddCategoryMapping(28, TorznabCatType.BooksMags, "Presse"); - AddCategoryMapping(29, TorznabCatType.Audio, "Application Linux"); - AddCategoryMapping(30, TorznabCatType.PC, "Application Window"); - AddCategoryMapping(31, TorznabCatType.PCMac, "Application Mac"); - AddCategoryMapping(34, TorznabCatType.PCMobileiOS, "Application Smartphone/Tablette"); - AddCategoryMapping(34, TorznabCatType.PCMobileAndroid, "Application Smartphone/Tablette"); - AddCategoryMapping(35, TorznabCatType.Other, "GPS"); - AddCategoryMapping(36, TorznabCatType.Audio, "Jeux Linux"); - AddCategoryMapping(37, TorznabCatType.PCGames, "Jeux Windows"); - AddCategoryMapping(39, TorznabCatType.ConsoleNDS, "Jeux Nintendo"); - AddCategoryMapping(39, TorznabCatType.ConsoleWii, "Jeux Nintendo"); - AddCategoryMapping(39, TorznabCatType.ConsoleWiiware, "Jeux Nintendo"); - AddCategoryMapping(39, TorznabCatType.Console3DS, "Jeux Nintendo"); - AddCategoryMapping(39, TorznabCatType.ConsoleWiiU, "Jeux Nintendo"); - AddCategoryMapping(41, TorznabCatType.PCMobileAndroid, "PC/Mobile-Android"); - AddCategoryMapping(42, TorznabCatType.PCGames, "Jeux Microsoft"); - AddCategoryMapping(44, TorznabCatType.XXX, "XXX Films"); - AddCategoryMapping(45, TorznabCatType.XXXOther, "XXX Hentai"); - AddCategoryMapping(47, TorznabCatType.XXXImageSet, "XXX Images"); - AddCategoryMapping(48, TorznabCatType.XXXOther, "XXX Jeu-Vidéo"); - AddCategoryMapping(50, TorznabCatType.OtherMisc, "Formation Logiciels"); - AddCategoryMapping(49, TorznabCatType.OtherMisc, "Formations Vidéos"); - AddCategoryMapping(51, TorznabCatType.XXXOther, "XXX Ebooks"); - AddCategoryMapping(52, TorznabCatType.AudioVideo, "Vidéos-Clips"); - AddCategoryMapping(51, TorznabCatType.XXXOther, "XXX Ebooks"); - AddCategoryMapping(51, TorznabCatType.XXXOther, "XXX Ebooks"); - var FreeLeechOnly = new BoolConfigurationItem("Search freeleech only"); configData.AddDynamic("freeleechonly", FreeLeechOnly); @@ -155,6 +77,88 @@ namespace Jackett.Common.Indexers EnableConfigurableRetryAttempts(); } + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep + }, + MovieSearchParams = new List + { + MovieSearchParam.Q + }, + MusicSearchParams = new List + { + MusicSearchParam.Q + }, + BookSearchParams = new List + { + BookSearchParam.Q + }, + SupportsRawSearch = true + }; + + //CATEGORIES + //caps.Categories.AddCategoryMapping(1, TorznabCatType.Movies, "Vidéos"); + //caps.Categories.AddCategoryMapping(1, TorznabCatType.TV, "Vidéos"); + //caps.Categories.AddCategoryMapping(2, TorznabCatType.Audio, "Audio"); + //caps.Categories.AddCategoryMapping(3, TorznabCatType.PC, "Application"); + //caps.Categories.AddCategoryMapping(4, TorznabCatType.Books, "Ebooks"); + //caps.Categories.AddCategoryMapping(5, TorznabCatType.PCGames, "Jeu-Vidéo"); + //caps.Categories.AddCategoryMapping(6, TorznabCatType.OtherMisc, "Formation"); + //caps.Categories.AddCategoryMapping(7, TorznabCatType.XXX, "XXX"); + + //SUBCATEGORIES + caps.Categories.AddCategoryMapping(9, TorznabCatType.Movies, "Films"); + caps.Categories.AddCategoryMapping(10, TorznabCatType.TV, "Série"); + caps.Categories.AddCategoryMapping(11, TorznabCatType.MoviesOther, "Film Animation"); + caps.Categories.AddCategoryMapping(12, TorznabCatType.TVAnime, "Série Animation"); + caps.Categories.AddCategoryMapping(13, TorznabCatType.TVDocumentary, "Documentaire"); + caps.Categories.AddCategoryMapping(14, TorznabCatType.TVOther, "Emission TV"); + caps.Categories.AddCategoryMapping(15, TorznabCatType.TVOther, "Spectacle/Concert"); + caps.Categories.AddCategoryMapping(16, TorznabCatType.TVSport, "Sport"); + caps.Categories.AddCategoryMapping(17, TorznabCatType.AudioOther, "Karaoké Vidéo"); + caps.Categories.AddCategoryMapping(18, TorznabCatType.AudioOther, "Karaoké"); + caps.Categories.AddCategoryMapping(20, TorznabCatType.Audio, "Musique"); + caps.Categories.AddCategoryMapping(21, TorznabCatType.AudioOther, "Podcast"); + caps.Categories.AddCategoryMapping(22, TorznabCatType.Audio, "Sample"); + caps.Categories.AddCategoryMapping(23, TorznabCatType.AudioAudiobook, "Ebook Audio"); + caps.Categories.AddCategoryMapping(24, TorznabCatType.Books, "BD"); + caps.Categories.AddCategoryMapping(25, TorznabCatType.BooksComics, "Comic"); + caps.Categories.AddCategoryMapping(26, TorznabCatType.BooksOther, "Manga"); + caps.Categories.AddCategoryMapping(27, TorznabCatType.Books, "Livre"); + caps.Categories.AddCategoryMapping(28, TorznabCatType.BooksMags, "Presse"); + caps.Categories.AddCategoryMapping(29, TorznabCatType.Audio, "Application Linux"); + caps.Categories.AddCategoryMapping(30, TorznabCatType.PC, "Application Window"); + caps.Categories.AddCategoryMapping(31, TorznabCatType.PCMac, "Application Mac"); + caps.Categories.AddCategoryMapping(34, TorznabCatType.PCMobileiOS, "Application Smartphone/Tablette"); + caps.Categories.AddCategoryMapping(34, TorznabCatType.PCMobileAndroid, "Application Smartphone/Tablette"); + caps.Categories.AddCategoryMapping(35, TorznabCatType.Other, "GPS"); + caps.Categories.AddCategoryMapping(36, TorznabCatType.Audio, "Jeux Linux"); + caps.Categories.AddCategoryMapping(37, TorznabCatType.PCGames, "Jeux Windows"); + caps.Categories.AddCategoryMapping(39, TorznabCatType.ConsoleNDS, "Jeux Nintendo"); + caps.Categories.AddCategoryMapping(39, TorznabCatType.ConsoleWii, "Jeux Nintendo"); + caps.Categories.AddCategoryMapping(39, TorznabCatType.ConsoleWiiware, "Jeux Nintendo"); + caps.Categories.AddCategoryMapping(39, TorznabCatType.Console3DS, "Jeux Nintendo"); + caps.Categories.AddCategoryMapping(39, TorznabCatType.ConsoleWiiU, "Jeux Nintendo"); + caps.Categories.AddCategoryMapping(41, TorznabCatType.PCMobileAndroid, "PC/Mobile-Android"); + caps.Categories.AddCategoryMapping(42, TorznabCatType.PCGames, "Jeux Microsoft"); + caps.Categories.AddCategoryMapping(44, TorznabCatType.XXX, "XXX Films"); + caps.Categories.AddCategoryMapping(45, TorznabCatType.XXXOther, "XXX Hentai"); + caps.Categories.AddCategoryMapping(47, TorznabCatType.XXXImageSet, "XXX Images"); + caps.Categories.AddCategoryMapping(48, TorznabCatType.XXXOther, "XXX Jeu-Vidéo"); + caps.Categories.AddCategoryMapping(50, TorznabCatType.OtherMisc, "Formation Logiciels"); + caps.Categories.AddCategoryMapping(49, TorznabCatType.OtherMisc, "Formations Vidéos"); + caps.Categories.AddCategoryMapping(51, TorznabCatType.XXXOther, "XXX Ebooks"); + caps.Categories.AddCategoryMapping(52, TorznabCatType.AudioVideo, "Vidéos-Clips"); + caps.Categories.AddCategoryMapping(51, TorznabCatType.XXXOther, "XXX Ebooks"); + caps.Categories.AddCategoryMapping(51, TorznabCatType.XXXOther, "XXX Ebooks"); + + return caps; + } + private string MultiRename(string term, string replacement) { replacement = " " + replacement + " "; diff --git a/src/Jackett.Common/Indexers/Shazbat.cs b/src/Jackett.Common/Indexers/Shazbat.cs index a6fa5ae09..2c87d0e67 100644 --- a/src/Jackett.Common/Indexers/Shazbat.cs +++ b/src/Jackett.Common/Indexers/Shazbat.cs @@ -2,7 +2,6 @@ using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Linq; -using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using AngleSharp.Dom; @@ -27,6 +26,8 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string LoginUrl => SiteLink + "login"; private string SearchUrl => SiteLink + "search"; private string TorrentsUrl => SiteLink + "torrents"; @@ -37,15 +38,7 @@ namespace Jackett.Common.Indexers public Shazbat(IIndexerConfigurationService configService, WebClient c, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep - } - }, - configService: configService, + : base(configService: configService, client: c, logger: l, p: ps, @@ -53,10 +46,23 @@ namespace Jackett.Common.Indexers configData: new ConfigurationDataShazbat()) { webclient.requestDelay = 5.1; + } - AddCategoryMapping(1, TorznabCatType.TV); - AddCategoryMapping(2, TorznabCatType.TVSD); - AddCategoryMapping(3, TorznabCatType.TVHD); + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep + } + }; + + caps.Categories.AddCategoryMapping(1, TorznabCatType.TV); + caps.Categories.AddCategoryMapping(2, TorznabCatType.TVSD); + caps.Categories.AddCategoryMapping(3, TorznabCatType.TVHD); + + return caps; } private int ShowPagesFetchLimit => int.TryParse(configData.ShowPagesFetchLimit.Value, out var limit) && limit > 0 && limit <= 5 ? limit : 2; diff --git a/src/Jackett.Common/Indexers/SpeedApp.cs b/src/Jackett.Common/Indexers/SpeedApp.cs index 5f3d4e4f1..71f1d1921 100644 --- a/src/Jackett.Common/Indexers/SpeedApp.cs +++ b/src/Jackett.Common/Indexers/SpeedApp.cs @@ -1,6 +1,5 @@ using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; -using System.Text; using Jackett.Common.Indexers.Abstract; using Jackett.Common.Models; using Jackett.Common.Services.Interfaces; @@ -30,28 +29,12 @@ namespace Jackett.Common.Indexers public override string Language => "ro-RO"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + public SpeedApp(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) : base(configService: configService, - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId - }, - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId - }, - MusicSearchParams = new List - { - MusicSearchParam.Q - }, - BookSearchParams = new List - { - BookSearchParam.Q - } - }, + client: wc, logger: l, p: ps, @@ -59,50 +42,75 @@ namespace Jackett.Common.Indexers { // requestDelay for API Limit (1 request per 2 seconds) webclient.requestDelay = 2.1; + } - AddCategoryMapping(38, TorznabCatType.Movies, "Movie Packs"); - AddCategoryMapping(10, TorznabCatType.MoviesSD, "Movies: SD"); - AddCategoryMapping(35, TorznabCatType.MoviesSD, "Movies: SD Ro"); - AddCategoryMapping(8, TorznabCatType.MoviesHD, "Movies: HD"); - AddCategoryMapping(29, TorznabCatType.MoviesHD, "Movies: HD Ro"); - AddCategoryMapping(7, TorznabCatType.MoviesDVD, "Movies: DVD"); - AddCategoryMapping(2, TorznabCatType.MoviesDVD, "Movies: DVD Ro"); - AddCategoryMapping(17, TorznabCatType.MoviesBluRay, "Movies: BluRay"); - AddCategoryMapping(24, TorznabCatType.MoviesBluRay, "Movies: BluRay Ro"); - AddCategoryMapping(59, TorznabCatType.Movies, "Movies: Ro"); - AddCategoryMapping(57, TorznabCatType.MoviesUHD, "Movies: 4K (2160p) Ro"); - AddCategoryMapping(61, TorznabCatType.MoviesUHD, "Movies: 4K (2160p)"); - AddCategoryMapping(41, TorznabCatType.TV, "TV Packs"); - AddCategoryMapping(66, TorznabCatType.TV, "TV Packs Ro"); - AddCategoryMapping(45, TorznabCatType.TVSD, "TV Episodes"); - AddCategoryMapping(46, TorznabCatType.TVSD, "TV Episodes Ro"); - AddCategoryMapping(43, TorznabCatType.TVHD, "TV Episodes HD"); - AddCategoryMapping(44, TorznabCatType.TVHD, "TV Episodes HD Ro"); - AddCategoryMapping(60, TorznabCatType.TV, "TV Ro"); - AddCategoryMapping(11, TorznabCatType.PCGames, "Games: PC-ISO"); - AddCategoryMapping(52, TorznabCatType.Console, "Games: Console"); - AddCategoryMapping(1, TorznabCatType.PC0day, "Applications"); - AddCategoryMapping(14, TorznabCatType.PC, "Applications: Linux"); - AddCategoryMapping(37, TorznabCatType.PCMac, "Applications: Mac"); - AddCategoryMapping(19, TorznabCatType.PCMobileOther, "Applications: Mobile"); - AddCategoryMapping(62, TorznabCatType.TV, "TV Cartoons"); - AddCategoryMapping(3, TorznabCatType.TVAnime, "TV Anime / Hentai"); - AddCategoryMapping(6, TorznabCatType.BooksEBook, "E-books"); - AddCategoryMapping(5, TorznabCatType.Audio, "Music"); - AddCategoryMapping(64, TorznabCatType.AudioVideo, "Music Video"); - AddCategoryMapping(18, TorznabCatType.Other, "Images"); - AddCategoryMapping(22, TorznabCatType.TVSport, "TV Sports"); - AddCategoryMapping(58, TorznabCatType.TVSport, "TV Sports Ro"); - AddCategoryMapping(9, TorznabCatType.TVDocumentary, "TV Documentary"); - AddCategoryMapping(63, TorznabCatType.TVDocumentary, "TV Documentary Ro"); - AddCategoryMapping(65, TorznabCatType.Other, "Tutorial"); - AddCategoryMapping(67, TorznabCatType.OtherMisc, "Miscellaneous"); - AddCategoryMapping(15, TorznabCatType.XXX, "XXX Movies"); - AddCategoryMapping(47, TorznabCatType.XXX, "XXX DVD"); - AddCategoryMapping(48, TorznabCatType.XXX, "XXX HD"); - AddCategoryMapping(49, TorznabCatType.XXXImageSet, "XXX Images"); - AddCategoryMapping(50, TorznabCatType.XXX, "XXX Packs"); - AddCategoryMapping(51, TorznabCatType.XXX, "XXX SD"); + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId + }, + MusicSearchParams = new List + { + MusicSearchParam.Q + }, + BookSearchParams = new List + { + BookSearchParam.Q + } + }; + + caps.Categories.AddCategoryMapping(38, TorznabCatType.Movies, "Movie Packs"); + caps.Categories.AddCategoryMapping(10, TorznabCatType.MoviesSD, "Movies: SD"); + caps.Categories.AddCategoryMapping(35, TorznabCatType.MoviesSD, "Movies: SD Ro"); + caps.Categories.AddCategoryMapping(8, TorznabCatType.MoviesHD, "Movies: HD"); + caps.Categories.AddCategoryMapping(29, TorznabCatType.MoviesHD, "Movies: HD Ro"); + caps.Categories.AddCategoryMapping(7, TorznabCatType.MoviesDVD, "Movies: DVD"); + caps.Categories.AddCategoryMapping(2, TorznabCatType.MoviesDVD, "Movies: DVD Ro"); + caps.Categories.AddCategoryMapping(17, TorznabCatType.MoviesBluRay, "Movies: BluRay"); + caps.Categories.AddCategoryMapping(24, TorznabCatType.MoviesBluRay, "Movies: BluRay Ro"); + caps.Categories.AddCategoryMapping(59, TorznabCatType.Movies, "Movies: Ro"); + caps.Categories.AddCategoryMapping(57, TorznabCatType.MoviesUHD, "Movies: 4K (2160p) Ro"); + caps.Categories.AddCategoryMapping(61, TorznabCatType.MoviesUHD, "Movies: 4K (2160p)"); + caps.Categories.AddCategoryMapping(41, TorznabCatType.TV, "TV Packs"); + caps.Categories.AddCategoryMapping(66, TorznabCatType.TV, "TV Packs Ro"); + caps.Categories.AddCategoryMapping(45, TorznabCatType.TVSD, "TV Episodes"); + caps.Categories.AddCategoryMapping(46, TorznabCatType.TVSD, "TV Episodes Ro"); + caps.Categories.AddCategoryMapping(43, TorznabCatType.TVHD, "TV Episodes HD"); + caps.Categories.AddCategoryMapping(44, TorznabCatType.TVHD, "TV Episodes HD Ro"); + caps.Categories.AddCategoryMapping(60, TorznabCatType.TV, "TV Ro"); + caps.Categories.AddCategoryMapping(11, TorznabCatType.PCGames, "Games: PC-ISO"); + caps.Categories.AddCategoryMapping(52, TorznabCatType.Console, "Games: Console"); + caps.Categories.AddCategoryMapping(1, TorznabCatType.PC0day, "Applications"); + caps.Categories.AddCategoryMapping(14, TorznabCatType.PC, "Applications: Linux"); + caps.Categories.AddCategoryMapping(37, TorznabCatType.PCMac, "Applications: Mac"); + caps.Categories.AddCategoryMapping(19, TorznabCatType.PCMobileOther, "Applications: Mobile"); + caps.Categories.AddCategoryMapping(62, TorznabCatType.TV, "TV Cartoons"); + caps.Categories.AddCategoryMapping(3, TorznabCatType.TVAnime, "TV Anime / Hentai"); + caps.Categories.AddCategoryMapping(6, TorznabCatType.BooksEBook, "E-books"); + caps.Categories.AddCategoryMapping(5, TorznabCatType.Audio, "Music"); + caps.Categories.AddCategoryMapping(64, TorznabCatType.AudioVideo, "Music Video"); + caps.Categories.AddCategoryMapping(18, TorznabCatType.Other, "Images"); + caps.Categories.AddCategoryMapping(22, TorznabCatType.TVSport, "TV Sports"); + caps.Categories.AddCategoryMapping(58, TorznabCatType.TVSport, "TV Sports Ro"); + caps.Categories.AddCategoryMapping(9, TorznabCatType.TVDocumentary, "TV Documentary"); + caps.Categories.AddCategoryMapping(63, TorznabCatType.TVDocumentary, "TV Documentary Ro"); + caps.Categories.AddCategoryMapping(65, TorznabCatType.Other, "Tutorial"); + caps.Categories.AddCategoryMapping(67, TorznabCatType.OtherMisc, "Miscellaneous"); + caps.Categories.AddCategoryMapping(15, TorznabCatType.XXX, "XXX Movies"); + caps.Categories.AddCategoryMapping(47, TorznabCatType.XXX, "XXX DVD"); + caps.Categories.AddCategoryMapping(48, TorznabCatType.XXX, "XXX HD"); + caps.Categories.AddCategoryMapping(49, TorznabCatType.XXXImageSet, "XXX Images"); + caps.Categories.AddCategoryMapping(50, TorznabCatType.XXX, "XXX Packs"); + caps.Categories.AddCategoryMapping(51, TorznabCatType.XXX, "XXX SD"); + + return caps; } } } diff --git a/src/Jackett.Common/Indexers/SpeedCD.cs b/src/Jackett.Common/Indexers/SpeedCD.cs index 7da31ced9..6ff7cbf24 100644 --- a/src/Jackett.Common/Indexers/SpeedCD.cs +++ b/src/Jackett.Common/Indexers/SpeedCD.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; -using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using AngleSharp.Html.Parser; @@ -36,6 +35,8 @@ namespace Jackett.Common.Indexers public override bool SupportsPagination => true; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string LoginUrl1 => SiteLink + "checkpoint/API"; private string LoginUrl2 => SiteLink + "checkpoint/"; private string SearchUrl => SiteLink + "browse/"; @@ -44,27 +45,7 @@ namespace Jackett.Common.Indexers public SpeedCD(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId - }, - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId - }, - MusicSearchParams = new List - { - MusicSearchParam.Q - }, - BookSearchParams = new List - { - BookSearchParam.Q - } - }, - configService: configService, + : base(configService: configService, client: wc, logger: l, p: ps, @@ -74,38 +55,64 @@ namespace Jackett.Common.Indexers in your Speed.Cd profile. Eg. Geo Locking, your seedbox may be in a different country to the one where you login via your web browser.

For best results, change the 'Torrents per page' setting to 100 in 'Profile Settings > Torrents'.")) { - AddCategoryMapping(1, TorznabCatType.MoviesOther, "Movies/XviD"); - AddCategoryMapping(42, TorznabCatType.Movies, "Movies/Packs"); - AddCategoryMapping(32, TorznabCatType.Movies, "Movies/Kids"); - AddCategoryMapping(43, TorznabCatType.MoviesHD, "Movies/HD"); - AddCategoryMapping(47, TorznabCatType.Movies, "Movies/DiVERSiTY"); - AddCategoryMapping(28, TorznabCatType.MoviesBluRay, "Movies/B-Ray"); - AddCategoryMapping(48, TorznabCatType.Movies3D, "Movies/3D"); - AddCategoryMapping(40, TorznabCatType.MoviesDVD, "Movies/DVD-R"); - AddCategoryMapping(56, TorznabCatType.Movies, "Movies/Anime"); - AddCategoryMapping(50, TorznabCatType.TVSport, "TV/Sports"); - AddCategoryMapping(52, TorznabCatType.TVHD, "TV/B-Ray"); - AddCategoryMapping(53, TorznabCatType.TVSD, "TV/DVD-R"); - AddCategoryMapping(41, TorznabCatType.TV, "TV/Packs"); - AddCategoryMapping(55, TorznabCatType.TV, "TV/Kids"); - AddCategoryMapping(57, TorznabCatType.TV, "TV/DiVERSiTY"); - AddCategoryMapping(49, TorznabCatType.TVHD, "TV/HD"); - AddCategoryMapping(2, TorznabCatType.TVSD, "TV/Episodes"); - AddCategoryMapping(30, TorznabCatType.TVAnime, "TV/Anime"); - AddCategoryMapping(25, TorznabCatType.PCISO, "Games/PC ISO"); - AddCategoryMapping(39, TorznabCatType.ConsoleWii, "Games/Wii"); - AddCategoryMapping(45, TorznabCatType.ConsolePS3, "Games/PS3"); - AddCategoryMapping(35, TorznabCatType.Console, "Games/Nintendo"); - AddCategoryMapping(33, TorznabCatType.ConsoleXBox360, "Games/XboX360"); - AddCategoryMapping(46, TorznabCatType.PCMobileOther, "Mobile"); - AddCategoryMapping(24, TorznabCatType.PC0day, "Apps/0DAY"); - AddCategoryMapping(51, TorznabCatType.PCMac, "Mac"); - AddCategoryMapping(54, TorznabCatType.Books, "Educational"); - AddCategoryMapping(27, TorznabCatType.Books, "Books-Mags"); - AddCategoryMapping(26, TorznabCatType.Audio, "Music/Audio"); - AddCategoryMapping(3, TorznabCatType.Audio, "Music/Flac"); - AddCategoryMapping(44, TorznabCatType.Audio, "Music/Pack"); - AddCategoryMapping(29, TorznabCatType.AudioVideo, "Music/Video"); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId + }, + MusicSearchParams = new List + { + MusicSearchParam.Q + }, + BookSearchParams = new List + { + BookSearchParam.Q + } + }; + + caps.Categories.AddCategoryMapping(1, TorznabCatType.MoviesOther, "Movies/XviD"); + caps.Categories.AddCategoryMapping(42, TorznabCatType.Movies, "Movies/Packs"); + caps.Categories.AddCategoryMapping(32, TorznabCatType.Movies, "Movies/Kids"); + caps.Categories.AddCategoryMapping(43, TorznabCatType.MoviesHD, "Movies/HD"); + caps.Categories.AddCategoryMapping(47, TorznabCatType.Movies, "Movies/DiVERSiTY"); + caps.Categories.AddCategoryMapping(28, TorznabCatType.MoviesBluRay, "Movies/B-Ray"); + caps.Categories.AddCategoryMapping(48, TorznabCatType.Movies3D, "Movies/3D"); + caps.Categories.AddCategoryMapping(40, TorznabCatType.MoviesDVD, "Movies/DVD-R"); + caps.Categories.AddCategoryMapping(56, TorznabCatType.Movies, "Movies/Anime"); + caps.Categories.AddCategoryMapping(50, TorznabCatType.TVSport, "TV/Sports"); + caps.Categories.AddCategoryMapping(52, TorznabCatType.TVHD, "TV/B-Ray"); + caps.Categories.AddCategoryMapping(53, TorznabCatType.TVSD, "TV/DVD-R"); + caps.Categories.AddCategoryMapping(41, TorznabCatType.TV, "TV/Packs"); + caps.Categories.AddCategoryMapping(55, TorznabCatType.TV, "TV/Kids"); + caps.Categories.AddCategoryMapping(57, TorznabCatType.TV, "TV/DiVERSiTY"); + caps.Categories.AddCategoryMapping(49, TorznabCatType.TVHD, "TV/HD"); + caps.Categories.AddCategoryMapping(2, TorznabCatType.TVSD, "TV/Episodes"); + caps.Categories.AddCategoryMapping(30, TorznabCatType.TVAnime, "TV/Anime"); + caps.Categories.AddCategoryMapping(25, TorznabCatType.PCISO, "Games/PC ISO"); + caps.Categories.AddCategoryMapping(39, TorznabCatType.ConsoleWii, "Games/Wii"); + caps.Categories.AddCategoryMapping(45, TorznabCatType.ConsolePS3, "Games/PS3"); + caps.Categories.AddCategoryMapping(35, TorznabCatType.Console, "Games/Nintendo"); + caps.Categories.AddCategoryMapping(33, TorznabCatType.ConsoleXBox360, "Games/XboX360"); + caps.Categories.AddCategoryMapping(46, TorznabCatType.PCMobileOther, "Mobile"); + caps.Categories.AddCategoryMapping(24, TorznabCatType.PC0day, "Apps/0DAY"); + caps.Categories.AddCategoryMapping(51, TorznabCatType.PCMac, "Mac"); + caps.Categories.AddCategoryMapping(54, TorznabCatType.Books, "Educational"); + caps.Categories.AddCategoryMapping(27, TorznabCatType.Books, "Books-Mags"); + caps.Categories.AddCategoryMapping(26, TorznabCatType.Audio, "Music/Audio"); + caps.Categories.AddCategoryMapping(3, TorznabCatType.Audio, "Music/Flac"); + caps.Categories.AddCategoryMapping(44, TorznabCatType.Audio, "Music/Pack"); + caps.Categories.AddCategoryMapping(29, TorznabCatType.AudioVideo, "Music/Video"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/SubsPlease.cs b/src/Jackett.Common/Indexers/SubsPlease.cs index ab4b64f37..ede2cd3ca 100644 --- a/src/Jackett.Common/Indexers/SubsPlease.cs +++ b/src/Jackett.Common/Indexers/SubsPlease.cs @@ -43,26 +43,34 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "public"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string ApiEndpoint => SiteLink + "api/?"; public SubsPlease(IIndexerConfigurationService configService, Utils.Clients.WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep - } - }, - configService: configService, + : base(configService: configService, client: wc, logger: l, p: ps, cacheService: cs, configData: new ConfigurationData()) { + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep + } + }; + // Configure the category mappings - AddCategoryMapping(1, TorznabCatType.TVAnime, "Anime"); + caps.Categories.AddCategoryMapping(1, TorznabCatType.TVAnime, "Anime"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/TVStore.cs b/src/Jackett.Common/Indexers/TVStore.cs index 523b005ab..96b04582e 100644 --- a/src/Jackett.Common/Indexers/TVStore.cs +++ b/src/Jackett.Common/Indexers/TVStore.cs @@ -28,6 +28,8 @@ namespace Jackett.Common.Indexers public override string Language => "hu-HU"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private readonly Dictionary _imdbLookup = new Dictionary(); // _imdbLookup[internalId] = imdbId private readonly Dictionary @@ -39,30 +41,35 @@ namespace Jackett.Common.Indexers private readonly Regex _seriesInfoSearchRegex = new Regex( @"S(?\d{1,3})(?:E(?\d{1,3}))?$", RegexOptions.IgnoreCase); - public TVStore(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, - ICacheService cs) : - base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId - }, - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId - } - }, - configService: configService, + public TVStore(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) : + base(configService: configService, client: wc, logger: l, p: ps, cacheService: cs, configData: new ConfigurationDataTVstore()) { - AddCategoryMapping(1, TorznabCatType.TV); - AddCategoryMapping(2, TorznabCatType.TVHD); - AddCategoryMapping(3, TorznabCatType.TVSD); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId + } + }; + + caps.Categories.AddCategoryMapping(1, TorznabCatType.TV); + caps.Categories.AddCategoryMapping(2, TorznabCatType.TVHD); + caps.Categories.AddCategoryMapping(3, TorznabCatType.TVSD); + + return caps; } private string LoginUrl => SiteLink + "takelogin.php"; diff --git a/src/Jackett.Common/Indexers/Toloka.cs b/src/Jackett.Common/Indexers/Toloka.cs index 9bb30771a..0f72a0876 100644 --- a/src/Jackett.Common/Indexers/Toloka.cs +++ b/src/Jackett.Common/Indexers/Toloka.cs @@ -26,6 +26,8 @@ namespace Jackett.Common.Indexers public override string Language => "uk-UA"; public override string Type => "semi-private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private new ConfigurationDataToloka configData { get => (ConfigurationDataToloka)base.configData; @@ -37,164 +39,170 @@ namespace Jackett.Common.Indexers private string SearchUrl => SiteLink + "tracker.php"; public Toloka(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep - }, - MovieSearchParams = new List - { - MovieSearchParam.Q - }, - MusicSearchParams = new List - { - MusicSearchParam.Q - }, - BookSearchParams = new List - { - BookSearchParam.Q - } - }, - configService: configService, + : base(configService: configService, client: wc, logger: l, p: ps, cacheService: cs, configData: new ConfigurationDataToloka()) { - AddCategoryMapping(117, TorznabCatType.Movies, "Українське кіно"); - AddCategoryMapping(84, TorznabCatType.Movies, "|-Мультфільми і казки"); - AddCategoryMapping(42, TorznabCatType.Movies, "|-Художні фільми"); - AddCategoryMapping(124, TorznabCatType.TV, "|-Телесеріали"); - AddCategoryMapping(125, TorznabCatType.TV, "|-Мультсеріали"); - AddCategoryMapping(129, TorznabCatType.Movies, "|-АртХаус"); - AddCategoryMapping(219, TorznabCatType.Movies, "|-Аматорське відео"); - AddCategoryMapping(118, TorznabCatType.Movies, "Українське озвучення"); - AddCategoryMapping(16, TorznabCatType.Movies, "|-Фільми"); - AddCategoryMapping(32, TorznabCatType.TV, "|-Телесеріали"); - AddCategoryMapping(19, TorznabCatType.Movies, "|-Мультфільми"); - AddCategoryMapping(44, TorznabCatType.TV, "|-Мультсеріали"); - AddCategoryMapping(127, TorznabCatType.TVAnime, "|-Аніме"); - AddCategoryMapping(55, TorznabCatType.Movies, "|-АртХаус"); - AddCategoryMapping(94, TorznabCatType.MoviesOther, "|-Трейлери"); - AddCategoryMapping(144, TorznabCatType.Movies, "|-Короткометражні"); + } - AddCategoryMapping(190, TorznabCatType.Movies, "Українські субтитри"); - AddCategoryMapping(70, TorznabCatType.Movies, "|-Фільми"); - AddCategoryMapping(192, TorznabCatType.TV, "|-Телесеріали"); - AddCategoryMapping(193, TorznabCatType.Movies, "|-Мультфільми"); - AddCategoryMapping(195, TorznabCatType.TV, "|-Мультсеріали"); - AddCategoryMapping(194, TorznabCatType.TVAnime, "|-Аніме"); - AddCategoryMapping(196, TorznabCatType.Movies, "|-АртХаус"); - AddCategoryMapping(197, TorznabCatType.Movies, "|-Короткометражні"); + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep + }, + MovieSearchParams = new List + { + MovieSearchParam.Q + }, + MusicSearchParams = new List + { + MusicSearchParam.Q + }, + BookSearchParams = new List + { + BookSearchParam.Q + } + }; - AddCategoryMapping(225, TorznabCatType.TVDocumentary, "Документальні фільми українською"); - AddCategoryMapping(21, TorznabCatType.TVDocumentary, "|-Українські наукові документальні фільми"); - AddCategoryMapping(131, TorznabCatType.TVDocumentary, "|-Українські історичні документальні фільми"); - AddCategoryMapping(226, TorznabCatType.TVDocumentary, "|-BBC"); - AddCategoryMapping(227, TorznabCatType.TVDocumentary, "|-Discovery"); - AddCategoryMapping(228, TorznabCatType.TVDocumentary, "|-National Geographic"); - AddCategoryMapping(229, TorznabCatType.TVDocumentary, "|-History Channel"); - AddCategoryMapping(230, TorznabCatType.TVDocumentary, "|-Інші іноземні документальні фільми"); + caps.Categories.AddCategoryMapping(117, TorznabCatType.Movies, "Українське кіно"); + caps.Categories.AddCategoryMapping(84, TorznabCatType.Movies, "|-Мультфільми і казки"); + caps.Categories.AddCategoryMapping(42, TorznabCatType.Movies, "|-Художні фільми"); + caps.Categories.AddCategoryMapping(124, TorznabCatType.TV, "|-Телесеріали"); + caps.Categories.AddCategoryMapping(125, TorznabCatType.TV, "|-Мультсеріали"); + caps.Categories.AddCategoryMapping(129, TorznabCatType.Movies, "|-АртХаус"); + caps.Categories.AddCategoryMapping(219, TorznabCatType.Movies, "|-Аматорське відео"); + caps.Categories.AddCategoryMapping(118, TorznabCatType.Movies, "Українське озвучення"); + caps.Categories.AddCategoryMapping(16, TorznabCatType.Movies, "|-Фільми"); + caps.Categories.AddCategoryMapping(32, TorznabCatType.TV, "|-Телесеріали"); + caps.Categories.AddCategoryMapping(19, TorznabCatType.Movies, "|-Мультфільми"); + caps.Categories.AddCategoryMapping(44, TorznabCatType.TV, "|-Мультсеріали"); + caps.Categories.AddCategoryMapping(127, TorznabCatType.TVAnime, "|-Аніме"); + caps.Categories.AddCategoryMapping(55, TorznabCatType.Movies, "|-АртХаус"); + caps.Categories.AddCategoryMapping(94, TorznabCatType.MoviesOther, "|-Трейлери"); + caps.Categories.AddCategoryMapping(144, TorznabCatType.Movies, "|-Короткометражні"); - AddCategoryMapping(119, TorznabCatType.TVOther, "Телепередачі українською"); - AddCategoryMapping(18, TorznabCatType.TVOther, "|-Музичне відео"); - AddCategoryMapping(132, TorznabCatType.TVOther, "|-Телевізійні шоу та програми"); + caps.Categories.AddCategoryMapping(190, TorznabCatType.Movies, "Українські субтитри"); + caps.Categories.AddCategoryMapping(70, TorznabCatType.Movies, "|-Фільми"); + caps.Categories.AddCategoryMapping(192, TorznabCatType.TV, "|-Телесеріали"); + caps.Categories.AddCategoryMapping(193, TorznabCatType.Movies, "|-Мультфільми"); + caps.Categories.AddCategoryMapping(195, TorznabCatType.TV, "|-Мультсеріали"); + caps.Categories.AddCategoryMapping(194, TorznabCatType.TVAnime, "|-Аніме"); + caps.Categories.AddCategoryMapping(196, TorznabCatType.Movies, "|-АртХаус"); + caps.Categories.AddCategoryMapping(197, TorznabCatType.Movies, "|-Короткометражні"); - AddCategoryMapping(157, TorznabCatType.TVSport, "Український спорт"); - AddCategoryMapping(235, TorznabCatType.TVSport, "|-Олімпіада"); - AddCategoryMapping(170, TorznabCatType.TVSport, "|-Чемпіонати Європи з футболу"); - AddCategoryMapping(162, TorznabCatType.TVSport, "|-Чемпіонати світу з футболу"); - AddCategoryMapping(166, TorznabCatType.TVSport, "|-Чемпіонат та Кубок України з футболу"); - AddCategoryMapping(167, TorznabCatType.TVSport, "|-Єврокубки"); - AddCategoryMapping(168, TorznabCatType.TVSport, "|-Збірна України"); - AddCategoryMapping(169, TorznabCatType.TVSport, "|-Закордонні чемпіонати"); - AddCategoryMapping(54, TorznabCatType.TVSport, "|-Футбольне відео"); - AddCategoryMapping(158, TorznabCatType.TVSport, "|-Баскетбол, хоккей, волейбол, гандбол, футзал"); - AddCategoryMapping(159, TorznabCatType.TVSport, "|-Бокс, реслінг, бойові мистецтва"); - AddCategoryMapping(160, TorznabCatType.TVSport, "|-Авто, мото"); - AddCategoryMapping(161, TorznabCatType.TVSport, "|-Інший спорт, активний відпочинок"); + caps.Categories.AddCategoryMapping(225, TorznabCatType.TVDocumentary, "Документальні фільми українською"); + caps.Categories.AddCategoryMapping(21, TorznabCatType.TVDocumentary, "|-Українські наукові документальні фільми"); + caps.Categories.AddCategoryMapping(131, TorznabCatType.TVDocumentary, "|-Українські історичні документальні фільми"); + caps.Categories.AddCategoryMapping(226, TorznabCatType.TVDocumentary, "|-BBC"); + caps.Categories.AddCategoryMapping(227, TorznabCatType.TVDocumentary, "|-Discovery"); + caps.Categories.AddCategoryMapping(228, TorznabCatType.TVDocumentary, "|-National Geographic"); + caps.Categories.AddCategoryMapping(229, TorznabCatType.TVDocumentary, "|-History Channel"); + caps.Categories.AddCategoryMapping(230, TorznabCatType.TVDocumentary, "|-Інші іноземні документальні фільми"); - // AddCategoryMapping(136, TorznabCatType.Other, "HD українською"); - AddCategoryMapping(96, TorznabCatType.MoviesHD, "|-Фільми в HD"); - AddCategoryMapping(173, TorznabCatType.TVHD, "|-Серіали в HD"); - AddCategoryMapping(139, TorznabCatType.MoviesHD, "|-Мультфільми в HD"); - AddCategoryMapping(174, TorznabCatType.TVHD, "|-Мультсеріали в HD"); - AddCategoryMapping(140, TorznabCatType.TVDocumentary, "|-Документальні фільми в HD"); - AddCategoryMapping(120, TorznabCatType.MoviesDVD, "DVD українською"); - AddCategoryMapping(66, TorznabCatType.MoviesDVD, "|-Художні фільми та серіали в DVD"); - AddCategoryMapping(137, TorznabCatType.MoviesDVD, "|-Мультфільми та мультсеріали в DVD"); - AddCategoryMapping(137, TorznabCatType.TV, "|-Мультфільми та мультсеріали в DVD"); - AddCategoryMapping(138, TorznabCatType.MoviesDVD, "|-Документальні фільми в DVD"); + caps.Categories.AddCategoryMapping(119, TorznabCatType.TVOther, "Телепередачі українською"); + caps.Categories.AddCategoryMapping(18, TorznabCatType.TVOther, "|-Музичне відео"); + caps.Categories.AddCategoryMapping(132, TorznabCatType.TVOther, "|-Телевізійні шоу та програми"); - AddCategoryMapping(237, TorznabCatType.Movies, "Відео для мобільних (iOS, Android, Windows Phone)"); + caps.Categories.AddCategoryMapping(157, TorznabCatType.TVSport, "Український спорт"); + caps.Categories.AddCategoryMapping(235, TorznabCatType.TVSport, "|-Олімпіада"); + caps.Categories.AddCategoryMapping(170, TorznabCatType.TVSport, "|-Чемпіонати Європи з футболу"); + caps.Categories.AddCategoryMapping(162, TorznabCatType.TVSport, "|-Чемпіонати світу з футболу"); + caps.Categories.AddCategoryMapping(166, TorznabCatType.TVSport, "|-Чемпіонат та Кубок України з футболу"); + caps.Categories.AddCategoryMapping(167, TorznabCatType.TVSport, "|-Єврокубки"); + caps.Categories.AddCategoryMapping(168, TorznabCatType.TVSport, "|-Збірна України"); + caps.Categories.AddCategoryMapping(169, TorznabCatType.TVSport, "|-Закордонні чемпіонати"); + caps.Categories.AddCategoryMapping(54, TorznabCatType.TVSport, "|-Футбольне відео"); + caps.Categories.AddCategoryMapping(158, TorznabCatType.TVSport, "|-Баскетбол, хоккей, волейбол, гандбол, футзал"); + caps.Categories.AddCategoryMapping(159, TorznabCatType.TVSport, "|-Бокс, реслінг, бойові мистецтва"); + caps.Categories.AddCategoryMapping(160, TorznabCatType.TVSport, "|-Авто, мото"); + caps.Categories.AddCategoryMapping(161, TorznabCatType.TVSport, "|-Інший спорт, активний відпочинок"); - AddCategoryMapping(33, TorznabCatType.AudioVideo, "Звукові доріжки та субтитри"); + // caps.Categories.AddCategoryMapping(136, TorznabCatType.Other, "HD українською"); + caps.Categories.AddCategoryMapping(96, TorznabCatType.MoviesHD, "|-Фільми в HD"); + caps.Categories.AddCategoryMapping(173, TorznabCatType.TVHD, "|-Серіали в HD"); + caps.Categories.AddCategoryMapping(139, TorznabCatType.MoviesHD, "|-Мультфільми в HD"); + caps.Categories.AddCategoryMapping(174, TorznabCatType.TVHD, "|-Мультсеріали в HD"); + caps.Categories.AddCategoryMapping(140, TorznabCatType.TVDocumentary, "|-Документальні фільми в HD"); + caps.Categories.AddCategoryMapping(120, TorznabCatType.MoviesDVD, "DVD українською"); + caps.Categories.AddCategoryMapping(66, TorznabCatType.MoviesDVD, "|-Художні фільми та серіали в DVD"); + caps.Categories.AddCategoryMapping(137, TorznabCatType.MoviesDVD, "|-Мультфільми та мультсеріали в DVD"); + caps.Categories.AddCategoryMapping(137, TorznabCatType.TV, "|-Мультфільми та мультсеріали в DVD"); + caps.Categories.AddCategoryMapping(138, TorznabCatType.MoviesDVD, "|-Документальні фільми в DVD"); - AddCategoryMapping(8, TorznabCatType.Audio, "Українська музика (lossy)"); - AddCategoryMapping(23, TorznabCatType.Audio, "|-Поп, Естрада"); - AddCategoryMapping(24, TorznabCatType.Audio, "|-Джаз, Блюз"); - AddCategoryMapping(43, TorznabCatType.Audio, "|-Етно, Фольклор, Народна, Бардівська"); - AddCategoryMapping(35, TorznabCatType.Audio, "|-Інструментальна, Класична та неокласична"); - AddCategoryMapping(37, TorznabCatType.Audio, "|-Рок, Метал, Альтернатива, Панк, СКА"); - AddCategoryMapping(36, TorznabCatType.Audio, "|-Реп, Хіп-хоп, РнБ"); - AddCategoryMapping(38, TorznabCatType.Audio, "|-Електронна музика"); - AddCategoryMapping(56, TorznabCatType.Audio, "|-Невидане"); + caps.Categories.AddCategoryMapping(237, TorznabCatType.Movies, "Відео для мобільних (iOS, Android, Windows Phone)"); - AddCategoryMapping(98, TorznabCatType.AudioLossless, "Українська музика (lossless)"); - AddCategoryMapping(100, TorznabCatType.AudioLossless, "|-Поп, Естрада"); - AddCategoryMapping(101, TorznabCatType.AudioLossless, "|-Джаз, Блюз"); - AddCategoryMapping(102, TorznabCatType.AudioLossless, "|-Етно, Фольклор, Народна, Бардівська"); - AddCategoryMapping(103, TorznabCatType.AudioLossless, "|-Інструментальна, Класична та неокласична"); - AddCategoryMapping(104, TorznabCatType.AudioLossless, "|-Рок, Метал, Альтернатива, Панк, СКА"); - AddCategoryMapping(105, TorznabCatType.AudioLossless, "|-Реп, Хіп-хоп, РнБ"); - AddCategoryMapping(106, TorznabCatType.AudioLossless, "|-Електронна музика"); + caps.Categories.AddCategoryMapping(33, TorznabCatType.AudioVideo, "Звукові доріжки та субтитри"); - AddCategoryMapping(11, TorznabCatType.Books, "Друкована література"); - AddCategoryMapping(134, TorznabCatType.Books, "|-Українська художня література (до 1991 р.)"); - AddCategoryMapping(177, TorznabCatType.Books, "|-Українська художня література (після 1991 р.)"); - AddCategoryMapping(178, TorznabCatType.Books, "|-Зарубіжна художня література"); - AddCategoryMapping(179, TorznabCatType.Books, "|-Наукова література (гуманітарні дисципліни)"); - AddCategoryMapping(180, TorznabCatType.Books, "|-Наукова література (природничі дисципліни)"); - AddCategoryMapping(183, TorznabCatType.Books, "|-Навчальна та довідкова"); - AddCategoryMapping(181, TorznabCatType.BooksMags, "|-Періодика"); - AddCategoryMapping(182, TorznabCatType.Books, "|-Батькам та малятам"); - AddCategoryMapping(184, TorznabCatType.BooksComics, "|-Графіка (комікси, манґа, BD та інше)"); + caps.Categories.AddCategoryMapping(8, TorznabCatType.Audio, "Українська музика (lossy)"); + caps.Categories.AddCategoryMapping(23, TorznabCatType.Audio, "|-Поп, Естрада"); + caps.Categories.AddCategoryMapping(24, TorznabCatType.Audio, "|-Джаз, Блюз"); + caps.Categories.AddCategoryMapping(43, TorznabCatType.Audio, "|-Етно, Фольклор, Народна, Бардівська"); + caps.Categories.AddCategoryMapping(35, TorznabCatType.Audio, "|-Інструментальна, Класична та неокласична"); + caps.Categories.AddCategoryMapping(37, TorznabCatType.Audio, "|-Рок, Метал, Альтернатива, Панк, СКА"); + caps.Categories.AddCategoryMapping(36, TorznabCatType.Audio, "|-Реп, Хіп-хоп, РнБ"); + caps.Categories.AddCategoryMapping(38, TorznabCatType.Audio, "|-Електронна музика"); + caps.Categories.AddCategoryMapping(56, TorznabCatType.Audio, "|-Невидане"); - AddCategoryMapping(185, TorznabCatType.AudioAudiobook, "Аудіокниги українською"); - AddCategoryMapping(135, TorznabCatType.AudioAudiobook, "|-Українська художня література"); - AddCategoryMapping(186, TorznabCatType.AudioAudiobook, "|-Зарубіжна художня література"); - AddCategoryMapping(187, TorznabCatType.AudioAudiobook, "|-Історія, біографістика, спогади"); - AddCategoryMapping(189, TorznabCatType.AudioAudiobook, "|-Сирий матеріал"); + caps.Categories.AddCategoryMapping(98, TorznabCatType.AudioLossless, "Українська музика (lossless)"); + caps.Categories.AddCategoryMapping(100, TorznabCatType.AudioLossless, "|-Поп, Естрада"); + caps.Categories.AddCategoryMapping(101, TorznabCatType.AudioLossless, "|-Джаз, Блюз"); + caps.Categories.AddCategoryMapping(102, TorznabCatType.AudioLossless, "|-Етно, Фольклор, Народна, Бардівська"); + caps.Categories.AddCategoryMapping(103, TorznabCatType.AudioLossless, "|-Інструментальна, Класична та неокласична"); + caps.Categories.AddCategoryMapping(104, TorznabCatType.AudioLossless, "|-Рок, Метал, Альтернатива, Панк, СКА"); + caps.Categories.AddCategoryMapping(105, TorznabCatType.AudioLossless, "|-Реп, Хіп-хоп, РнБ"); + caps.Categories.AddCategoryMapping(106, TorznabCatType.AudioLossless, "|-Електронна музика"); - AddCategoryMapping(9, TorznabCatType.PC, "Windows"); - AddCategoryMapping(25, TorznabCatType.PC, "|-Windows"); - AddCategoryMapping(199, TorznabCatType.PC, "|-Офіс"); - AddCategoryMapping(200, TorznabCatType.PC, "|-Антивіруси та безпека"); - AddCategoryMapping(201, TorznabCatType.PC, "|-Мультимедія"); - AddCategoryMapping(202, TorznabCatType.PC, "|-Утиліти, обслуговування, мережа"); - AddCategoryMapping(239, TorznabCatType.PC, "Linux, Mac OS"); - AddCategoryMapping(26, TorznabCatType.PC, "|-Linux"); - AddCategoryMapping(27, TorznabCatType.PCMac, "|-Mac OS"); - // AddCategoryMapping(240, TorznabCatType.PC, "Інші OS"); - AddCategoryMapping(211, TorznabCatType.PCMobileAndroid, "|-Android"); - AddCategoryMapping(122, TorznabCatType.PCMobileiOS, "|-iOS"); - AddCategoryMapping(40, TorznabCatType.PCMobileOther, "|-Інші мобільні платформи"); + caps.Categories.AddCategoryMapping(11, TorznabCatType.Books, "Друкована література"); + caps.Categories.AddCategoryMapping(134, TorznabCatType.Books, "|-Українська художня література (до 1991 р.)"); + caps.Categories.AddCategoryMapping(177, TorznabCatType.Books, "|-Українська художня література (після 1991 р.)"); + caps.Categories.AddCategoryMapping(178, TorznabCatType.Books, "|-Зарубіжна художня література"); + caps.Categories.AddCategoryMapping(179, TorznabCatType.Books, "|-Наукова література (гуманітарні дисципліни)"); + caps.Categories.AddCategoryMapping(180, TorznabCatType.Books, "|-Наукова література (природничі дисципліни)"); + caps.Categories.AddCategoryMapping(183, TorznabCatType.Books, "|-Навчальна та довідкова"); + caps.Categories.AddCategoryMapping(181, TorznabCatType.BooksMags, "|-Періодика"); + caps.Categories.AddCategoryMapping(182, TorznabCatType.Books, "|-Батькам та малятам"); + caps.Categories.AddCategoryMapping(184, TorznabCatType.BooksComics, "|-Графіка (комікси, манґа, BD та інше)"); - // AddCategoryMapping(241, TorznabCatType.Other, "Інше"); - // AddCategoryMapping(203, TorznabCatType.Other, "|-Інфодиски, електронні підручники, відеоуроки"); - // AddCategoryMapping(12, TorznabCatType.Other, "|-Шпалери, фотографії та зображення"); - // AddCategoryMapping(249, TorznabCatType.Other, "|-Веб-скрипти"); - AddCategoryMapping(10, TorznabCatType.PCGames, "Ігри українською"); - AddCategoryMapping(28, TorznabCatType.PCGames, "|-PC ігри"); - AddCategoryMapping(259, TorznabCatType.PCGames, "|-Mac ігри"); - AddCategoryMapping(29, TorznabCatType.PCGames, "|-Українізації, доповнення, патчі..."); - AddCategoryMapping(30, TorznabCatType.PCGames, "|-Мобільні та консольні ігри"); - AddCategoryMapping(41, TorznabCatType.PCMobileiOS, "|-iOS"); - AddCategoryMapping(212, TorznabCatType.PCMobileAndroid, "|-Android"); - AddCategoryMapping(205, TorznabCatType.PCGames, "Переклад ігор українською"); + caps.Categories.AddCategoryMapping(185, TorznabCatType.AudioAudiobook, "Аудіокниги українською"); + caps.Categories.AddCategoryMapping(135, TorznabCatType.AudioAudiobook, "|-Українська художня література"); + caps.Categories.AddCategoryMapping(186, TorznabCatType.AudioAudiobook, "|-Зарубіжна художня література"); + caps.Categories.AddCategoryMapping(187, TorznabCatType.AudioAudiobook, "|-Історія, біографістика, спогади"); + caps.Categories.AddCategoryMapping(189, TorznabCatType.AudioAudiobook, "|-Сирий матеріал"); + + caps.Categories.AddCategoryMapping(9, TorznabCatType.PC, "Windows"); + caps.Categories.AddCategoryMapping(25, TorznabCatType.PC, "|-Windows"); + caps.Categories.AddCategoryMapping(199, TorznabCatType.PC, "|-Офіс"); + caps.Categories.AddCategoryMapping(200, TorznabCatType.PC, "|-Антивіруси та безпека"); + caps.Categories.AddCategoryMapping(201, TorznabCatType.PC, "|-Мультимедія"); + caps.Categories.AddCategoryMapping(202, TorznabCatType.PC, "|-Утиліти, обслуговування, мережа"); + caps.Categories.AddCategoryMapping(239, TorznabCatType.PC, "Linux, Mac OS"); + caps.Categories.AddCategoryMapping(26, TorznabCatType.PC, "|-Linux"); + caps.Categories.AddCategoryMapping(27, TorznabCatType.PCMac, "|-Mac OS"); + // caps.Categories.AddCategoryMapping(240, TorznabCatType.PC, "Інші OS"); + caps.Categories.AddCategoryMapping(211, TorznabCatType.PCMobileAndroid, "|-Android"); + caps.Categories.AddCategoryMapping(122, TorznabCatType.PCMobileiOS, "|-iOS"); + caps.Categories.AddCategoryMapping(40, TorznabCatType.PCMobileOther, "|-Інші мобільні платформи"); + + // caps.Categories.AddCategoryMapping(241, TorznabCatType.Other, "Інше"); + // caps.Categories.AddCategoryMapping(203, TorznabCatType.Other, "|-Інфодиски, електронні підручники, відеоуроки"); + // caps.Categories.AddCategoryMapping(12, TorznabCatType.Other, "|-Шпалери, фотографії та зображення"); + // caps.Categories.AddCategoryMapping(249, TorznabCatType.Other, "|-Веб-скрипти"); + caps.Categories.AddCategoryMapping(10, TorznabCatType.PCGames, "Ігри українською"); + caps.Categories.AddCategoryMapping(28, TorznabCatType.PCGames, "|-PC ігри"); + caps.Categories.AddCategoryMapping(259, TorznabCatType.PCGames, "|-Mac ігри"); + caps.Categories.AddCategoryMapping(29, TorznabCatType.PCGames, "|-Українізації, доповнення, патчі..."); + caps.Categories.AddCategoryMapping(30, TorznabCatType.PCGames, "|-Мобільні та консольні ігри"); + caps.Categories.AddCategoryMapping(41, TorznabCatType.PCMobileiOS, "|-iOS"); + caps.Categories.AddCategoryMapping(212, TorznabCatType.PCMobileAndroid, "|-Android"); + caps.Categories.AddCategoryMapping(205, TorznabCatType.PCGames, "Переклад ігор українською"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/TorrentBytes.cs b/src/Jackett.Common/Indexers/TorrentBytes.cs index cc6d2b0e9..a520d195f 100644 --- a/src/Jackett.Common/Indexers/TorrentBytes.cs +++ b/src/Jackett.Common/Indexers/TorrentBytes.cs @@ -27,70 +27,77 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string LoginUrl => SiteLink + "takelogin.php"; private string SearchUrl => SiteLink + "browse.php"; private new ConfigurationDataBasicLogin configData => (ConfigurationDataBasicLogin)base.configData; - public TorrentBytes(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, - ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId - }, - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId - }, - MusicSearchParams = new List - { - MusicSearchParam.Q - } - }, - configService: configService, + public TorrentBytes(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) + : base(configService: configService, client: wc, logger: l, p: ps, cacheService: cs, configData: new ConfigurationDataBasicLogin("For best results, change the 'Torrents per page' setting to 100 in your profile on the TorrentBytes webpage.")) { - AddCategoryMapping(23, TorznabCatType.TVAnime, "Anime"); - AddCategoryMapping(52, TorznabCatType.PCMac, "Apple/All"); - AddCategoryMapping(22, TorznabCatType.PC, "Apps/misc"); - AddCategoryMapping(1, TorznabCatType.PC, "Apps/PC"); - AddCategoryMapping(28, TorznabCatType.TVForeign, "Foreign Titles"); - AddCategoryMapping(50, TorznabCatType.Console, "Games/Consoles"); - AddCategoryMapping(42, TorznabCatType.PCGames, "Games/Pack"); - AddCategoryMapping(4, TorznabCatType.PCGames, "Games/PC"); - AddCategoryMapping(51, TorznabCatType.PC, "Linux/All"); - AddCategoryMapping(31, TorznabCatType.OtherMisc, "Misc"); - AddCategoryMapping(20, TorznabCatType.MoviesDVD, "Movies/DVD-R"); - AddCategoryMapping(12, TorznabCatType.MoviesBluRay, "Movies/Full Blu-ray"); - AddCategoryMapping(5, TorznabCatType.MoviesHD, "Movies/HD"); - AddCategoryMapping(40, TorznabCatType.Movies, "Movies/Pack"); - AddCategoryMapping(19, TorznabCatType.MoviesSD, "Movies/SD"); - AddCategoryMapping(49, TorznabCatType.MoviesUHD, "Movies/UHD"); - AddCategoryMapping(25, TorznabCatType.Audio, "Music/DVDR"); - AddCategoryMapping(48, TorznabCatType.AudioLossless, "Music/Flac"); - AddCategoryMapping(6, TorznabCatType.AudioMP3, "Music/MP3"); - AddCategoryMapping(43, TorznabCatType.Audio, "Music/Pack"); - AddCategoryMapping(34, TorznabCatType.AudioVideo, "Music/Videos"); - AddCategoryMapping(45, TorznabCatType.MoviesBluRay, "NonScene/BRrip"); - AddCategoryMapping(46, TorznabCatType.MoviesHD, "NonScene/x264"); - AddCategoryMapping(44, TorznabCatType.MoviesSD, "NonScene/Xvid"); - AddCategoryMapping(37, TorznabCatType.TVHD, "TV/BRrip"); - AddCategoryMapping(38, TorznabCatType.TVHD, "TV/HD"); - AddCategoryMapping(41, TorznabCatType.TV, "TV/Pack"); - AddCategoryMapping(33, TorznabCatType.TVSD, "TV/SD"); - AddCategoryMapping(32, TorznabCatType.TVUHD, "TV/UHD"); - AddCategoryMapping(39, TorznabCatType.XXXx264, "XXX/HD"); - AddCategoryMapping(24, TorznabCatType.XXXImageSet, "XXX/IMGSET"); - AddCategoryMapping(21, TorznabCatType.XXXPack, "XXX/Pack"); - AddCategoryMapping(9, TorznabCatType.XXXXviD, "XXX/SD"); - AddCategoryMapping(29, TorznabCatType.XXX, "XXX/Web"); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId + }, + MusicSearchParams = new List + { + MusicSearchParam.Q + } + }; + + caps.Categories.AddCategoryMapping(23, TorznabCatType.TVAnime, "Anime"); + caps.Categories.AddCategoryMapping(52, TorznabCatType.PCMac, "Apple/All"); + caps.Categories.AddCategoryMapping(22, TorznabCatType.PC, "Apps/misc"); + caps.Categories.AddCategoryMapping(1, TorznabCatType.PC, "Apps/PC"); + caps.Categories.AddCategoryMapping(28, TorznabCatType.TVForeign, "Foreign Titles"); + caps.Categories.AddCategoryMapping(50, TorznabCatType.Console, "Games/Consoles"); + caps.Categories.AddCategoryMapping(42, TorznabCatType.PCGames, "Games/Pack"); + caps.Categories.AddCategoryMapping(4, TorznabCatType.PCGames, "Games/PC"); + caps.Categories.AddCategoryMapping(51, TorznabCatType.PC, "Linux/All"); + caps.Categories.AddCategoryMapping(31, TorznabCatType.OtherMisc, "Misc"); + caps.Categories.AddCategoryMapping(20, TorznabCatType.MoviesDVD, "Movies/DVD-R"); + caps.Categories.AddCategoryMapping(12, TorznabCatType.MoviesBluRay, "Movies/Full Blu-ray"); + caps.Categories.AddCategoryMapping(5, TorznabCatType.MoviesHD, "Movies/HD"); + caps.Categories.AddCategoryMapping(40, TorznabCatType.Movies, "Movies/Pack"); + caps.Categories.AddCategoryMapping(19, TorznabCatType.MoviesSD, "Movies/SD"); + caps.Categories.AddCategoryMapping(49, TorznabCatType.MoviesUHD, "Movies/UHD"); + caps.Categories.AddCategoryMapping(25, TorznabCatType.Audio, "Music/DVDR"); + caps.Categories.AddCategoryMapping(48, TorznabCatType.AudioLossless, "Music/Flac"); + caps.Categories.AddCategoryMapping(6, TorznabCatType.AudioMP3, "Music/MP3"); + caps.Categories.AddCategoryMapping(43, TorznabCatType.Audio, "Music/Pack"); + caps.Categories.AddCategoryMapping(34, TorznabCatType.AudioVideo, "Music/Videos"); + caps.Categories.AddCategoryMapping(45, TorznabCatType.MoviesBluRay, "NonScene/BRrip"); + caps.Categories.AddCategoryMapping(46, TorznabCatType.MoviesHD, "NonScene/x264"); + caps.Categories.AddCategoryMapping(44, TorznabCatType.MoviesSD, "NonScene/Xvid"); + caps.Categories.AddCategoryMapping(37, TorznabCatType.TVHD, "TV/BRrip"); + caps.Categories.AddCategoryMapping(38, TorznabCatType.TVHD, "TV/HD"); + caps.Categories.AddCategoryMapping(41, TorznabCatType.TV, "TV/Pack"); + caps.Categories.AddCategoryMapping(33, TorznabCatType.TVSD, "TV/SD"); + caps.Categories.AddCategoryMapping(32, TorznabCatType.TVUHD, "TV/UHD"); + caps.Categories.AddCategoryMapping(39, TorznabCatType.XXXx264, "XXX/HD"); + caps.Categories.AddCategoryMapping(24, TorznabCatType.XXXImageSet, "XXX/IMGSET"); + caps.Categories.AddCategoryMapping(21, TorznabCatType.XXXPack, "XXX/Pack"); + caps.Categories.AddCategoryMapping(9, TorznabCatType.XXXXviD, "XXX/SD"); + caps.Categories.AddCategoryMapping(29, TorznabCatType.XXX, "XXX/Web"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/TorrentDay.cs b/src/Jackett.Common/Indexers/TorrentDay.cs index 18b545c08..a09e06ee3 100644 --- a/src/Jackett.Common/Indexers/TorrentDay.cs +++ b/src/Jackett.Common/Indexers/TorrentDay.cs @@ -2,7 +2,6 @@ using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Linq; -using System.Text; using System.Threading.Tasks; using Jackett.Common.Helpers; using Jackett.Common.Models; @@ -54,33 +53,15 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string SearchUrl => SiteLink + "t.json"; private new ConfigurationDataCookie configData => (ConfigurationDataCookie)base.configData; public TorrentDay(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId, TvSearchParam.Genre - }, - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.Genre - }, - MusicSearchParams = new List - { - MusicSearchParam.Q - }, - BookSearchParams = new List - { - BookSearchParam.Q - } - }, - configService: configService, + : base(configService: configService, client: wc, logger: l, p: ps, @@ -91,58 +72,83 @@ namespace Jackett.Common.Indexers wc.EmulateBrowser = false; configData.AddDynamic("freeleech", new BoolConfigurationItem("Search freeleech only") { Value = false }); + } - AddCategoryMapping(96, TorznabCatType.MoviesUHD, "Movie/4K"); - AddCategoryMapping(25, TorznabCatType.MoviesSD, "Movies/480p"); - AddCategoryMapping(11, TorznabCatType.MoviesBluRay, "Movies/Bluray"); - AddCategoryMapping(5, TorznabCatType.MoviesBluRay, "Movies/Bluray-Full"); - AddCategoryMapping(3, TorznabCatType.MoviesDVD, "Movies/DVD-R"); - AddCategoryMapping(21, TorznabCatType.MoviesSD, "Movies/MP4"); - AddCategoryMapping(22, TorznabCatType.MoviesForeign, "Movies/Non-English"); - AddCategoryMapping(13, TorznabCatType.Movies, "Movies/Packs"); - AddCategoryMapping(44, TorznabCatType.MoviesSD, "Movies/SD/x264"); - AddCategoryMapping(48, TorznabCatType.Movies, "Movies/x265"); - AddCategoryMapping(1, TorznabCatType.MoviesSD, "Movies/XviD"); + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId, TvSearchParam.Genre + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.Genre + }, + MusicSearchParams = new List + { + MusicSearchParam.Q + }, + BookSearchParams = new List + { + BookSearchParam.Q + } + }; - AddCategoryMapping(24, TorznabCatType.TVSD, "TV/480p"); - AddCategoryMapping(32, TorznabCatType.TVHD, "TV/Bluray"); - AddCategoryMapping(31, TorznabCatType.TVSD, "TV/DVD-R"); - AddCategoryMapping(33, TorznabCatType.TVSD, "TV/DVD-Rip"); - AddCategoryMapping(46, TorznabCatType.TVSD, "TV/Mobile"); - AddCategoryMapping(82, TorznabCatType.TVForeign, "TV/Non-English"); - AddCategoryMapping(14, TorznabCatType.TV, "TV/Packs"); - AddCategoryMapping(26, TorznabCatType.TVSD, "TV/SD/x264"); - AddCategoryMapping(7, TorznabCatType.TVHD, "TV/x264"); - AddCategoryMapping(34, TorznabCatType.TVUHD, "TV/x265"); - AddCategoryMapping(2, TorznabCatType.TVSD, "TV/XviD"); + caps.Categories.AddCategoryMapping(96, TorznabCatType.MoviesUHD, "Movie/4K"); + caps.Categories.AddCategoryMapping(25, TorznabCatType.MoviesSD, "Movies/480p"); + caps.Categories.AddCategoryMapping(11, TorznabCatType.MoviesBluRay, "Movies/Bluray"); + caps.Categories.AddCategoryMapping(5, TorznabCatType.MoviesBluRay, "Movies/Bluray-Full"); + caps.Categories.AddCategoryMapping(3, TorznabCatType.MoviesDVD, "Movies/DVD-R"); + caps.Categories.AddCategoryMapping(21, TorznabCatType.MoviesSD, "Movies/MP4"); + caps.Categories.AddCategoryMapping(22, TorznabCatType.MoviesForeign, "Movies/Non-English"); + caps.Categories.AddCategoryMapping(13, TorznabCatType.Movies, "Movies/Packs"); + caps.Categories.AddCategoryMapping(44, TorznabCatType.MoviesSD, "Movies/SD/x264"); + caps.Categories.AddCategoryMapping(48, TorznabCatType.Movies, "Movies/x265"); + caps.Categories.AddCategoryMapping(1, TorznabCatType.MoviesSD, "Movies/XviD"); - AddCategoryMapping(4, TorznabCatType.PCGames, "PC/Games"); - AddCategoryMapping(18, TorznabCatType.ConsolePS3, "PS"); - AddCategoryMapping(8, TorznabCatType.ConsolePSP, "PSP"); - AddCategoryMapping(10, TorznabCatType.ConsoleNDS, "Nintendo"); - AddCategoryMapping(9, TorznabCatType.ConsoleXBox, "Xbox"); + caps.Categories.AddCategoryMapping(24, TorznabCatType.TVSD, "TV/480p"); + caps.Categories.AddCategoryMapping(32, TorznabCatType.TVHD, "TV/Bluray"); + caps.Categories.AddCategoryMapping(31, TorznabCatType.TVSD, "TV/DVD-R"); + caps.Categories.AddCategoryMapping(33, TorznabCatType.TVSD, "TV/DVD-Rip"); + caps.Categories.AddCategoryMapping(46, TorznabCatType.TVSD, "TV/Mobile"); + caps.Categories.AddCategoryMapping(82, TorznabCatType.TVForeign, "TV/Non-English"); + caps.Categories.AddCategoryMapping(14, TorznabCatType.TV, "TV/Packs"); + caps.Categories.AddCategoryMapping(26, TorznabCatType.TVSD, "TV/SD/x264"); + caps.Categories.AddCategoryMapping(7, TorznabCatType.TVHD, "TV/x264"); + caps.Categories.AddCategoryMapping(34, TorznabCatType.TVUHD, "TV/x265"); + caps.Categories.AddCategoryMapping(2, TorznabCatType.TVSD, "TV/XviD"); - AddCategoryMapping(17, TorznabCatType.AudioMP3, "Music/Audio"); - AddCategoryMapping(27, TorznabCatType.Audio, "Music/Flac"); - AddCategoryMapping(23, TorznabCatType.AudioForeign, "Music/Non-English"); - AddCategoryMapping(41, TorznabCatType.Audio, "Music/Packs"); - AddCategoryMapping(16, TorznabCatType.AudioVideo, "Music/Video"); + caps.Categories.AddCategoryMapping(4, TorznabCatType.PCGames, "PC/Games"); + caps.Categories.AddCategoryMapping(18, TorznabCatType.ConsolePS3, "PS"); + caps.Categories.AddCategoryMapping(8, TorznabCatType.ConsolePSP, "PSP"); + caps.Categories.AddCategoryMapping(10, TorznabCatType.ConsoleNDS, "Nintendo"); + caps.Categories.AddCategoryMapping(9, TorznabCatType.ConsoleXBox, "Xbox"); - AddCategoryMapping(29, TorznabCatType.TVAnime, "Anime"); - AddCategoryMapping(42, TorznabCatType.AudioAudiobook, "Audio Books"); - AddCategoryMapping(20, TorznabCatType.Books, "Books"); - AddCategoryMapping(102, TorznabCatType.BooksForeign, "Books/Non-English"); - AddCategoryMapping(30, TorznabCatType.TVDocumentary, "Documentary"); - AddCategoryMapping(95, TorznabCatType.TVDocumentary, "Educational"); - AddCategoryMapping(47, TorznabCatType.Other, "Fonts"); - AddCategoryMapping(43, TorznabCatType.PCMac, "Mac"); - AddCategoryMapping(45, TorznabCatType.AudioOther, "Podcast"); - AddCategoryMapping(28, TorznabCatType.PC, "Softwa/Packs"); - AddCategoryMapping(12, TorznabCatType.PC, "Software"); + caps.Categories.AddCategoryMapping(17, TorznabCatType.AudioMP3, "Music/Audio"); + caps.Categories.AddCategoryMapping(27, TorznabCatType.Audio, "Music/Flac"); + caps.Categories.AddCategoryMapping(23, TorznabCatType.AudioForeign, "Music/Non-English"); + caps.Categories.AddCategoryMapping(41, TorznabCatType.Audio, "Music/Packs"); + caps.Categories.AddCategoryMapping(16, TorznabCatType.AudioVideo, "Music/Video"); - AddCategoryMapping(19, TorznabCatType.XXX, "XXX/0Day"); - AddCategoryMapping(6, TorznabCatType.XXX, "XXX/Movies"); - AddCategoryMapping(15, TorznabCatType.XXXPack, "XXX/Packs"); + caps.Categories.AddCategoryMapping(29, TorznabCatType.TVAnime, "Anime"); + caps.Categories.AddCategoryMapping(42, TorznabCatType.AudioAudiobook, "Audio Books"); + caps.Categories.AddCategoryMapping(20, TorznabCatType.Books, "Books"); + caps.Categories.AddCategoryMapping(102, TorznabCatType.BooksForeign, "Books/Non-English"); + caps.Categories.AddCategoryMapping(30, TorznabCatType.TVDocumentary, "Documentary"); + caps.Categories.AddCategoryMapping(95, TorznabCatType.TVDocumentary, "Educational"); + caps.Categories.AddCategoryMapping(47, TorznabCatType.Other, "Fonts"); + caps.Categories.AddCategoryMapping(43, TorznabCatType.PCMac, "Mac"); + caps.Categories.AddCategoryMapping(45, TorznabCatType.AudioOther, "Podcast"); + caps.Categories.AddCategoryMapping(28, TorznabCatType.PC, "Softwa/Packs"); + caps.Categories.AddCategoryMapping(12, TorznabCatType.PC, "Software"); + + caps.Categories.AddCategoryMapping(19, TorznabCatType.XXX, "XXX/0Day"); + caps.Categories.AddCategoryMapping(6, TorznabCatType.XXX, "XXX/Movies"); + caps.Categories.AddCategoryMapping(15, TorznabCatType.XXXPack, "XXX/Packs"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/TorrentHeaven.cs b/src/Jackett.Common/Indexers/TorrentHeaven.cs index 12db6db41..002a94842 100644 --- a/src/Jackett.Common/Indexers/TorrentHeaven.cs +++ b/src/Jackett.Common/Indexers/TorrentHeaven.cs @@ -32,34 +32,15 @@ namespace Jackett.Common.Indexers public override string Language => "de-DE"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private new ConfigurationDataCaptchaLogin configData => (ConfigurationDataCaptchaLogin)base.configData; private string IndexUrl => SiteLink + "index.php"; private string LoginCompleteUrl => SiteLink + "index.php?strWebValue=account&strWebAction=login_complete&ancestry=verify"; - public TorrentHeaven(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, - ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep - }, - MovieSearchParams = new List - { - MovieSearchParam.Q - }, - MusicSearchParams = new List - { - MusicSearchParam.Q - }, - BookSearchParams = new List - { - BookSearchParam.Q - } - }, - configService: configService, + public TorrentHeaven(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) + : base(configService: configService, client: wc, logger: l, p: ps, @@ -68,50 +49,75 @@ namespace Jackett.Common.Indexers { // incomplete CA chain wc.AddTrustedCertificate(new Uri(SiteLink).Host, "8612e46b2abd418b6398dbf2382ebcf44b10f378"); + } - AddCategoryMapping(1, TorznabCatType.PCGames, "GAMES/PC"); - AddCategoryMapping(3, TorznabCatType.Console, "GAMES/Sonstige"); - AddCategoryMapping(59, TorznabCatType.ConsolePS4, "GAMES/PlayStation"); - AddCategoryMapping(60, TorznabCatType.ConsolePSP, "GAMES/PSP"); - AddCategoryMapping(63, TorznabCatType.ConsoleWii, "GAMES/Wii"); - AddCategoryMapping(67, TorznabCatType.ConsoleXBox360, "GAMES/XBOX 360"); - AddCategoryMapping(68, TorznabCatType.PCMobileOther, "GAMES/PDA / Handy"); - AddCategoryMapping(72, TorznabCatType.ConsoleNDS, "GAMES/NDS"); - AddCategoryMapping(7, TorznabCatType.MoviesDVD, "MOVIES/DVD"); - AddCategoryMapping(8, TorznabCatType.MoviesSD, "MOVIES/SD"); - AddCategoryMapping(37, TorznabCatType.MoviesDVD, "MOVIES/DVD Spezial"); - AddCategoryMapping(41, TorznabCatType.MoviesForeign, "MOVIES/International"); - AddCategoryMapping(101, TorznabCatType.MoviesHD, "MOVIES/720p"); - AddCategoryMapping(102, TorznabCatType.MoviesHD, "MOVIES/1080p"); - AddCategoryMapping(103, TorznabCatType.MoviesHD, "MOVIES/AVCHD"); - AddCategoryMapping(104, TorznabCatType.MoviesBluRay, "MOVIES/Bluray"); - AddCategoryMapping(106, TorznabCatType.Movies3D, "MOVIES/3D"); - AddCategoryMapping(109, TorznabCatType.MoviesUHD, "MOVIES/4K"); - AddCategoryMapping(14, TorznabCatType.Audio, "AUDIO/Musik"); - AddCategoryMapping(15, TorznabCatType.AudioAudiobook, "AUDIO/Hörbücher"); - AddCategoryMapping(16, TorznabCatType.AudioAudiobook, "AUDIO/Hörspiele"); - AddCategoryMapping(36, TorznabCatType.AudioLossless, "AUDIO/Flac"); - AddCategoryMapping(42, TorznabCatType.AudioOther, "AUDIO/Soundtracks"); - AddCategoryMapping(58, TorznabCatType.AudioVideo, "AUDIO/Musikvideos"); - AddCategoryMapping(18, TorznabCatType.TVSD, "TV/Serien SD"); - AddCategoryMapping(19, TorznabCatType.TVHD, "TV/Serien HD 720p"); - AddCategoryMapping(20, TorznabCatType.TVHD, "TV/Serien HD 1080p"); - AddCategoryMapping(49, TorznabCatType.TVSD, "TV/Serien DVD"); - AddCategoryMapping(51, TorznabCatType.TVDocumentary, "TV/Doku SD"); - AddCategoryMapping(52, TorznabCatType.TVDocumentary, "TV/Doku HD"); - AddCategoryMapping(53, TorznabCatType.TV, "TV/Serien Complete Packs"); - AddCategoryMapping(54, TorznabCatType.TVSport, "TV/Sport"); - AddCategoryMapping(66, TorznabCatType.TVForeign, "TV/International"); - AddCategoryMapping(110, TorznabCatType.TVUHD, "TV/Serien - 4K"); - AddCategoryMapping(22, TorznabCatType.Books, "MISC/EBooks"); - AddCategoryMapping(24, TorznabCatType.Other, "MISC/Sonstiges"); - AddCategoryMapping(25, TorznabCatType.Other, "MISC/Tonspuren"); - AddCategoryMapping(108, TorznabCatType.TVAnime, "MISC/Anime"); - AddCategoryMapping(28, TorznabCatType.PC, "APPLICATIONS/PC"); - AddCategoryMapping(29, TorznabCatType.PCMobileOther, "APPLICATIONS/Mobile"); - AddCategoryMapping(30, TorznabCatType.PC, "APPLICATIONS/Sonstige"); - AddCategoryMapping(70, TorznabCatType.PC, "APPLICATIONS/Linux"); - AddCategoryMapping(71, TorznabCatType.PCMac, "APPLICATIONS/Mac"); + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep + }, + MovieSearchParams = new List + { + MovieSearchParam.Q + }, + MusicSearchParams = new List + { + MusicSearchParam.Q + }, + BookSearchParams = new List + { + BookSearchParam.Q + } + }; + + caps.Categories.AddCategoryMapping(1, TorznabCatType.PCGames, "GAMES/PC"); + caps.Categories.AddCategoryMapping(3, TorznabCatType.Console, "GAMES/Sonstige"); + caps.Categories.AddCategoryMapping(59, TorznabCatType.ConsolePS4, "GAMES/PlayStation"); + caps.Categories.AddCategoryMapping(60, TorznabCatType.ConsolePSP, "GAMES/PSP"); + caps.Categories.AddCategoryMapping(63, TorznabCatType.ConsoleWii, "GAMES/Wii"); + caps.Categories.AddCategoryMapping(67, TorznabCatType.ConsoleXBox360, "GAMES/XBOX 360"); + caps.Categories.AddCategoryMapping(68, TorznabCatType.PCMobileOther, "GAMES/PDA / Handy"); + caps.Categories.AddCategoryMapping(72, TorznabCatType.ConsoleNDS, "GAMES/NDS"); + caps.Categories.AddCategoryMapping(7, TorznabCatType.MoviesDVD, "MOVIES/DVD"); + caps.Categories.AddCategoryMapping(8, TorznabCatType.MoviesSD, "MOVIES/SD"); + caps.Categories.AddCategoryMapping(37, TorznabCatType.MoviesDVD, "MOVIES/DVD Spezial"); + caps.Categories.AddCategoryMapping(41, TorznabCatType.MoviesForeign, "MOVIES/International"); + caps.Categories.AddCategoryMapping(101, TorznabCatType.MoviesHD, "MOVIES/720p"); + caps.Categories.AddCategoryMapping(102, TorznabCatType.MoviesHD, "MOVIES/1080p"); + caps.Categories.AddCategoryMapping(103, TorznabCatType.MoviesHD, "MOVIES/AVCHD"); + caps.Categories.AddCategoryMapping(104, TorznabCatType.MoviesBluRay, "MOVIES/Bluray"); + caps.Categories.AddCategoryMapping(106, TorznabCatType.Movies3D, "MOVIES/3D"); + caps.Categories.AddCategoryMapping(109, TorznabCatType.MoviesUHD, "MOVIES/4K"); + caps.Categories.AddCategoryMapping(14, TorznabCatType.Audio, "AUDIO/Musik"); + caps.Categories.AddCategoryMapping(15, TorznabCatType.AudioAudiobook, "AUDIO/Hörbücher"); + caps.Categories.AddCategoryMapping(16, TorznabCatType.AudioAudiobook, "AUDIO/Hörspiele"); + caps.Categories.AddCategoryMapping(36, TorznabCatType.AudioLossless, "AUDIO/Flac"); + caps.Categories.AddCategoryMapping(42, TorznabCatType.AudioOther, "AUDIO/Soundtracks"); + caps.Categories.AddCategoryMapping(58, TorznabCatType.AudioVideo, "AUDIO/Musikvideos"); + caps.Categories.AddCategoryMapping(18, TorznabCatType.TVSD, "TV/Serien SD"); + caps.Categories.AddCategoryMapping(19, TorznabCatType.TVHD, "TV/Serien HD 720p"); + caps.Categories.AddCategoryMapping(20, TorznabCatType.TVHD, "TV/Serien HD 1080p"); + caps.Categories.AddCategoryMapping(49, TorznabCatType.TVSD, "TV/Serien DVD"); + caps.Categories.AddCategoryMapping(51, TorznabCatType.TVDocumentary, "TV/Doku SD"); + caps.Categories.AddCategoryMapping(52, TorznabCatType.TVDocumentary, "TV/Doku HD"); + caps.Categories.AddCategoryMapping(53, TorznabCatType.TV, "TV/Serien Complete Packs"); + caps.Categories.AddCategoryMapping(54, TorznabCatType.TVSport, "TV/Sport"); + caps.Categories.AddCategoryMapping(66, TorznabCatType.TVForeign, "TV/International"); + caps.Categories.AddCategoryMapping(110, TorznabCatType.TVUHD, "TV/Serien - 4K"); + caps.Categories.AddCategoryMapping(22, TorznabCatType.Books, "MISC/EBooks"); + caps.Categories.AddCategoryMapping(24, TorznabCatType.Other, "MISC/Sonstiges"); + caps.Categories.AddCategoryMapping(25, TorznabCatType.Other, "MISC/Tonspuren"); + caps.Categories.AddCategoryMapping(108, TorznabCatType.TVAnime, "MISC/Anime"); + caps.Categories.AddCategoryMapping(28, TorznabCatType.PC, "APPLICATIONS/PC"); + caps.Categories.AddCategoryMapping(29, TorznabCatType.PCMobileOther, "APPLICATIONS/Mobile"); + caps.Categories.AddCategoryMapping(30, TorznabCatType.PC, "APPLICATIONS/Sonstige"); + caps.Categories.AddCategoryMapping(70, TorznabCatType.PC, "APPLICATIONS/Linux"); + caps.Categories.AddCategoryMapping(71, TorznabCatType.PCMac, "APPLICATIONS/Mac"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Indexers/TorrentNetwork.cs b/src/Jackett.Common/Indexers/TorrentNetwork.cs index 4ba5fd20a..ccdd778e4 100644 --- a/src/Jackett.Common/Indexers/TorrentNetwork.cs +++ b/src/Jackett.Common/Indexers/TorrentNetwork.cs @@ -27,6 +27,8 @@ namespace Jackett.Common.Indexers public override string Language => "de-DE"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string APIUrl => SiteLink + "api/"; private string passkey; @@ -41,29 +43,8 @@ namespace Jackett.Common.Indexers set => base.configData = value; } - public TorrentNetwork(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, - ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.Genre - }, - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.Genre - }, - MusicSearchParams = new List - { - MusicSearchParam.Q, MusicSearchParam.Genre - }, - BookSearchParams = new List - { - BookSearchParam.Q, BookSearchParam.Genre - } - }, - configService: configService, + public TorrentNetwork(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) + : base(configService: configService, client: wc, logger: l, p: ps, @@ -72,55 +53,80 @@ namespace Jackett.Common.Indexers { configData.AddDynamic("token", new HiddenStringConfigurationItem("token")); configData.AddDynamic("passkey", new HiddenStringConfigurationItem("passkey")); + } - AddCategoryMapping(24, TorznabCatType.MoviesSD, "Movies GER/SD"); - AddCategoryMapping(18, TorznabCatType.MoviesHD, "Movies GER/720p"); - AddCategoryMapping(17, TorznabCatType.MoviesHD, "Movies GER/1080p"); - AddCategoryMapping(20, TorznabCatType.MoviesUHD, "Movies GER/2160p"); - AddCategoryMapping(45, TorznabCatType.MoviesOther, "Movies GER/Remux"); - AddCategoryMapping(19, TorznabCatType.MoviesBluRay, "Movies GER/BluRay"); - AddCategoryMapping(34, TorznabCatType.TVAnime, "Movies GER/Anime"); - AddCategoryMapping(36, TorznabCatType.Movies3D, "Movies GER/3D"); + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.Genre + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.Genre + }, + MusicSearchParams = new List + { + MusicSearchParam.Q, MusicSearchParam.Genre + }, + BookSearchParams = new List + { + BookSearchParam.Q, BookSearchParam.Genre + } + }; - AddCategoryMapping(22, TorznabCatType.MoviesSD, "Movies ENG/SD"); - AddCategoryMapping(35, TorznabCatType.MoviesHD, "Movies ENG/720p"); - AddCategoryMapping(43, TorznabCatType.MoviesHD, "Movies ENG/1080p"); - AddCategoryMapping(48, TorznabCatType.MoviesUHD, "Movies ENG/2160p"); - AddCategoryMapping(46, TorznabCatType.MoviesOther, "Movies ENG/Remux"); - AddCategoryMapping(38, TorznabCatType.MoviesBluRay, "Movies ENG/BluRay"); - AddCategoryMapping(39, TorznabCatType.TVAnime, "Movies ENG/Anime"); + caps.Categories.AddCategoryMapping(24, TorznabCatType.MoviesSD, "Movies GER/SD"); + caps.Categories.AddCategoryMapping(18, TorznabCatType.MoviesHD, "Movies GER/720p"); + caps.Categories.AddCategoryMapping(17, TorznabCatType.MoviesHD, "Movies GER/1080p"); + caps.Categories.AddCategoryMapping(20, TorznabCatType.MoviesUHD, "Movies GER/2160p"); + caps.Categories.AddCategoryMapping(45, TorznabCatType.MoviesOther, "Movies GER/Remux"); + caps.Categories.AddCategoryMapping(19, TorznabCatType.MoviesBluRay, "Movies GER/BluRay"); + caps.Categories.AddCategoryMapping(34, TorznabCatType.TVAnime, "Movies GER/Anime"); + caps.Categories.AddCategoryMapping(36, TorznabCatType.Movies3D, "Movies GER/3D"); - AddCategoryMapping(27, TorznabCatType.TVSD, "Series GER/SD"); - AddCategoryMapping(28, TorznabCatType.TVHD, "Series GER/HD"); - AddCategoryMapping(2, TorznabCatType.TVAnime, "Series GER/Anime"); - AddCategoryMapping(16, TorznabCatType.TV, "Series GER/Pack"); - AddCategoryMapping(6, TorznabCatType.TVDocumentary, "Docu/SD"); - AddCategoryMapping(7, TorznabCatType.TVDocumentary, "Docu/HD"); + caps.Categories.AddCategoryMapping(22, TorznabCatType.MoviesSD, "Movies ENG/SD"); + caps.Categories.AddCategoryMapping(35, TorznabCatType.MoviesHD, "Movies ENG/720p"); + caps.Categories.AddCategoryMapping(43, TorznabCatType.MoviesHD, "Movies ENG/1080p"); + caps.Categories.AddCategoryMapping(48, TorznabCatType.MoviesUHD, "Movies ENG/2160p"); + caps.Categories.AddCategoryMapping(46, TorznabCatType.MoviesOther, "Movies ENG/Remux"); + caps.Categories.AddCategoryMapping(38, TorznabCatType.MoviesBluRay, "Movies ENG/BluRay"); + caps.Categories.AddCategoryMapping(39, TorznabCatType.TVAnime, "Movies ENG/Anime"); - AddCategoryMapping(29, TorznabCatType.TVSD, "Series ENG/SD"); - AddCategoryMapping(40, TorznabCatType.TVHD, "Series ENG/HD"); - AddCategoryMapping(41, TorznabCatType.TVAnime, "Series ENG/Anime"); - AddCategoryMapping(42, TorznabCatType.TV, "Series ENG/Pack"); - AddCategoryMapping(31, TorznabCatType.TVSport, "Sport"); + caps.Categories.AddCategoryMapping(27, TorznabCatType.TVSD, "Series GER/SD"); + caps.Categories.AddCategoryMapping(28, TorznabCatType.TVHD, "Series GER/HD"); + caps.Categories.AddCategoryMapping(2, TorznabCatType.TVAnime, "Series GER/Anime"); + caps.Categories.AddCategoryMapping(16, TorznabCatType.TV, "Series GER/Pack"); + caps.Categories.AddCategoryMapping(6, TorznabCatType.TVDocumentary, "Docu/SD"); + caps.Categories.AddCategoryMapping(7, TorznabCatType.TVDocumentary, "Docu/HD"); - AddCategoryMapping(10, TorznabCatType.PCGames, "Games/Win"); - AddCategoryMapping(12, TorznabCatType.ConsoleWii, "Games/Wii"); - AddCategoryMapping(13, TorznabCatType.ConsolePS4, "Games/PSX"); - AddCategoryMapping(14, TorznabCatType.ConsoleXBox, "Games/XBOX"); + caps.Categories.AddCategoryMapping(29, TorznabCatType.TVSD, "Series ENG/SD"); + caps.Categories.AddCategoryMapping(40, TorznabCatType.TVHD, "Series ENG/HD"); + caps.Categories.AddCategoryMapping(41, TorznabCatType.TVAnime, "Series ENG/Anime"); + caps.Categories.AddCategoryMapping(42, TorznabCatType.TV, "Series ENG/Pack"); + caps.Categories.AddCategoryMapping(31, TorznabCatType.TVSport, "Sport"); - AddCategoryMapping(4, TorznabCatType.PCMac, "Apps/Mac"); - AddCategoryMapping(5, TorznabCatType.PC0day, "Apps/Win"); + caps.Categories.AddCategoryMapping(10, TorznabCatType.PCGames, "Games/Win"); + caps.Categories.AddCategoryMapping(12, TorznabCatType.ConsoleWii, "Games/Wii"); + caps.Categories.AddCategoryMapping(13, TorznabCatType.ConsolePS4, "Games/PSX"); + caps.Categories.AddCategoryMapping(14, TorznabCatType.ConsoleXBox, "Games/XBOX"); - AddCategoryMapping(1, TorznabCatType.AudioAudiobook, "Misc/aBook"); - AddCategoryMapping(8, TorznabCatType.Books, "Misc/eBook"); - AddCategoryMapping(30, TorznabCatType.Other, "Misc/Sonstiges"); + caps.Categories.AddCategoryMapping(4, TorznabCatType.PCMac, "Apps/Mac"); + caps.Categories.AddCategoryMapping(5, TorznabCatType.PC0day, "Apps/Win"); - AddCategoryMapping(44, TorznabCatType.AudioLossless, "Musik/Flac"); - AddCategoryMapping(25, TorznabCatType.AudioMP3, "Musik/MP3"); - AddCategoryMapping(26, TorznabCatType.AudioVideo, "Musik/Video"); + caps.Categories.AddCategoryMapping(1, TorznabCatType.AudioAudiobook, "Misc/aBook"); + caps.Categories.AddCategoryMapping(8, TorznabCatType.Books, "Misc/eBook"); + caps.Categories.AddCategoryMapping(30, TorznabCatType.Other, "Misc/Sonstiges"); - AddCategoryMapping(32, TorznabCatType.XXX, "XXX/XXX"); - AddCategoryMapping(33, TorznabCatType.XXX, "XXX/XXX|HD"); + caps.Categories.AddCategoryMapping(44, TorznabCatType.AudioLossless, "Musik/Flac"); + caps.Categories.AddCategoryMapping(25, TorznabCatType.AudioMP3, "Musik/MP3"); + caps.Categories.AddCategoryMapping(26, TorznabCatType.AudioVideo, "Musik/Video"); + + caps.Categories.AddCategoryMapping(32, TorznabCatType.XXX, "XXX/XXX"); + caps.Categories.AddCategoryMapping(33, TorznabCatType.XXX, "XXX/XXX|HD"); + + return caps; } public override void LoadValuesFromJson(JToken jsonConfig, bool useProtectionService = false) diff --git a/src/Jackett.Common/Indexers/TorrentSyndikat.cs b/src/Jackett.Common/Indexers/TorrentSyndikat.cs index 9511e5584..fcf47dc86 100644 --- a/src/Jackett.Common/Indexers/TorrentSyndikat.cs +++ b/src/Jackett.Common/Indexers/TorrentSyndikat.cs @@ -28,6 +28,8 @@ namespace Jackett.Common.Indexers public override string Language => "de-DE"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string ApiBase => SiteLink + "api_9djWe8Tb2NE3p6opyqnh/v1"; private bool ProductsOnly => ((BoolConfigurationItem)configData.GetDynamic("productsOnly")).Value; @@ -41,78 +43,13 @@ namespace Jackett.Common.Indexers public TorrentSyndikat(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep - }, - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId - }, - MusicSearchParams = new List - { - MusicSearchParam.Q - }, - BookSearchParams = new List - { - BookSearchParam.Q - } - }, - configService: configService, + : base(configService: configService, client: w, logger: l, p: ps, cacheService: cs, configData: new ConfigurationDataAPIKey()) { - AddCategoryMapping(2, TorznabCatType.PC, "Apps / Windows"); - AddCategoryMapping(13, TorznabCatType.PC, "Apps / Linux"); - AddCategoryMapping(4, TorznabCatType.PCMac, "Apps / MacOS"); - AddCategoryMapping(6, TorznabCatType.PC, "Apps / Misc"); - - AddCategoryMapping(50, TorznabCatType.PCGames, "Spiele / Windows"); - AddCategoryMapping(51, TorznabCatType.PCGames, "Spiele / MacOS"); - AddCategoryMapping(52, TorznabCatType.PCGames, "Spiele / Linux"); - AddCategoryMapping(8, TorznabCatType.ConsoleOther, "Spiele / Playstation"); - AddCategoryMapping(7, TorznabCatType.ConsoleOther, "Spiele / Nintendo"); - AddCategoryMapping(32, TorznabCatType.ConsoleOther, "Spiele / XBOX"); - - AddCategoryMapping(42, TorznabCatType.MoviesUHD, "Filme / 2160p"); - AddCategoryMapping(9, TorznabCatType.MoviesHD, "Filme / 1080p"); - AddCategoryMapping(20, TorznabCatType.MoviesHD, "Filme / 720p"); - AddCategoryMapping(10, TorznabCatType.MoviesSD, "Filme / SD"); - - AddCategoryMapping(43, TorznabCatType.TVUHD, "Serien / 2160p"); - AddCategoryMapping(53, TorznabCatType.TVHD, "Serien / 1080p"); - AddCategoryMapping(54, TorznabCatType.TVHD, "Serien / 720p"); - AddCategoryMapping(15, TorznabCatType.TVSD, "Serien / SD"); - AddCategoryMapping(30, TorznabCatType.TVSport, "Serien / Sport"); - - AddCategoryMapping(44, TorznabCatType.TVUHD, "Serienpacks / 2160p"); - AddCategoryMapping(55, TorznabCatType.TVHD, "Serienpacks / 1080p"); - AddCategoryMapping(56, TorznabCatType.TVHD, "Serienpacks / 720p"); - AddCategoryMapping(27, TorznabCatType.TVSD, "Serienpacks / SD"); - - AddCategoryMapping(24, TorznabCatType.AudioLossless, "Audio / Musik / FLAC"); - AddCategoryMapping(25, TorznabCatType.AudioMP3, "Audio / Musik / MP3"); - AddCategoryMapping(35, TorznabCatType.AudioOther, "Audio / Other"); - AddCategoryMapping(18, TorznabCatType.AudioAudiobook, "Audio / aBooks"); - AddCategoryMapping(33, TorznabCatType.AudioVideo, "Audio / Videos"); - - AddCategoryMapping(17, TorznabCatType.Books, "Misc / eBooks"); - AddCategoryMapping(5, TorznabCatType.PCMobileOther, "Misc / Mobile"); - AddCategoryMapping(39, TorznabCatType.Other, "Misc / Bildung"); - - AddCategoryMapping(36, TorznabCatType.TVForeign, "Englisch / Serien"); - AddCategoryMapping(57, TorznabCatType.TVForeign, "Englisch / Serienpacks"); - AddCategoryMapping(37, TorznabCatType.MoviesForeign, "Englisch / Filme"); - AddCategoryMapping(47, TorznabCatType.Books, "Englisch / eBooks"); - AddCategoryMapping(48, TorznabCatType.Other, "Englisch / Bildung"); - AddCategoryMapping(49, TorznabCatType.TVSport, "Englisch / Sport"); - ConfigData.AddDynamic("keyInfo", new DisplayInfoConfigurationItem(String.Empty, "Generate a new key here, set download and browse scopes.")); ConfigData.AddDynamic("productsOnly", new BoolConfigurationItem("Products only")); ConfigData.AddDynamic("productsOnlyInfo", new DisplayInfoConfigurationItem(String.Empty, "Limit search to torrents linked to a product.")); @@ -128,6 +65,76 @@ namespace Jackett.Common.Indexers ConfigData.AddDynamic("releaseTypeInfo", new DisplayInfoConfigurationItem(String.Empty, "Limit search to specific release types.")); } + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId + }, + MusicSearchParams = new List + { + MusicSearchParam.Q + }, + BookSearchParams = new List + { + BookSearchParam.Q + } + }; + + caps.Categories.AddCategoryMapping(2, TorznabCatType.PC, "Apps / Windows"); + caps.Categories.AddCategoryMapping(13, TorznabCatType.PC, "Apps / Linux"); + caps.Categories.AddCategoryMapping(4, TorznabCatType.PCMac, "Apps / MacOS"); + caps.Categories.AddCategoryMapping(6, TorznabCatType.PC, "Apps / Misc"); + + caps.Categories.AddCategoryMapping(50, TorznabCatType.PCGames, "Spiele / Windows"); + caps.Categories.AddCategoryMapping(51, TorznabCatType.PCGames, "Spiele / MacOS"); + caps.Categories.AddCategoryMapping(52, TorznabCatType.PCGames, "Spiele / Linux"); + caps.Categories.AddCategoryMapping(8, TorznabCatType.ConsoleOther, "Spiele / Playstation"); + caps.Categories.AddCategoryMapping(7, TorznabCatType.ConsoleOther, "Spiele / Nintendo"); + caps.Categories.AddCategoryMapping(32, TorznabCatType.ConsoleOther, "Spiele / XBOX"); + + caps.Categories.AddCategoryMapping(42, TorznabCatType.MoviesUHD, "Filme / 2160p"); + caps.Categories.AddCategoryMapping(9, TorznabCatType.MoviesHD, "Filme / 1080p"); + caps.Categories.AddCategoryMapping(20, TorznabCatType.MoviesHD, "Filme / 720p"); + caps.Categories.AddCategoryMapping(10, TorznabCatType.MoviesSD, "Filme / SD"); + + caps.Categories.AddCategoryMapping(43, TorznabCatType.TVUHD, "Serien / 2160p"); + caps.Categories.AddCategoryMapping(53, TorznabCatType.TVHD, "Serien / 1080p"); + caps.Categories.AddCategoryMapping(54, TorznabCatType.TVHD, "Serien / 720p"); + caps.Categories.AddCategoryMapping(15, TorznabCatType.TVSD, "Serien / SD"); + caps.Categories.AddCategoryMapping(30, TorznabCatType.TVSport, "Serien / Sport"); + + caps.Categories.AddCategoryMapping(44, TorznabCatType.TVUHD, "Serienpacks / 2160p"); + caps.Categories.AddCategoryMapping(55, TorznabCatType.TVHD, "Serienpacks / 1080p"); + caps.Categories.AddCategoryMapping(56, TorznabCatType.TVHD, "Serienpacks / 720p"); + caps.Categories.AddCategoryMapping(27, TorznabCatType.TVSD, "Serienpacks / SD"); + + caps.Categories.AddCategoryMapping(24, TorznabCatType.AudioLossless, "Audio / Musik / FLAC"); + caps.Categories.AddCategoryMapping(25, TorznabCatType.AudioMP3, "Audio / Musik / MP3"); + caps.Categories.AddCategoryMapping(35, TorznabCatType.AudioOther, "Audio / Other"); + caps.Categories.AddCategoryMapping(18, TorznabCatType.AudioAudiobook, "Audio / aBooks"); + caps.Categories.AddCategoryMapping(33, TorznabCatType.AudioVideo, "Audio / Videos"); + + caps.Categories.AddCategoryMapping(17, TorznabCatType.Books, "Misc / eBooks"); + caps.Categories.AddCategoryMapping(5, TorznabCatType.PCMobileOther, "Misc / Mobile"); + caps.Categories.AddCategoryMapping(39, TorznabCatType.Other, "Misc / Bildung"); + + caps.Categories.AddCategoryMapping(36, TorznabCatType.TVForeign, "Englisch / Serien"); + caps.Categories.AddCategoryMapping(57, TorznabCatType.TVForeign, "Englisch / Serienpacks"); + caps.Categories.AddCategoryMapping(37, TorznabCatType.MoviesForeign, "Englisch / Filme"); + caps.Categories.AddCategoryMapping(47, TorznabCatType.Books, "Englisch / eBooks"); + caps.Categories.AddCategoryMapping(48, TorznabCatType.Other, "Englisch / Bildung"); + caps.Categories.AddCategoryMapping(49, TorznabCatType.TVSport, "Englisch / Sport"); + + return caps; + } + public override async Task ApplyConfiguration(JToken configJson) { LoadValuesFromJson(configJson); diff --git a/src/Jackett.Common/Indexers/TorrentsCSV.cs b/src/Jackett.Common/Indexers/TorrentsCSV.cs index 0dffe2689..5a958d745 100644 --- a/src/Jackett.Common/Indexers/TorrentsCSV.cs +++ b/src/Jackett.Common/Indexers/TorrentsCSV.cs @@ -25,35 +25,43 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "public"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string SearchEndpoint => SiteLink + "service/search"; private new ConfigurationData configData => base.configData; - public TorrentsCSV(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, - ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep - }, - MovieSearchParams = new List - { - MovieSearchParam.Q - } - }, - configService: configService, + public TorrentsCSV(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) + : base(configService: configService, client: wc, logger: l, p: ps, cacheService: cs, configData: new ConfigurationData()) { - // torrents.csv doesn't return categories - AddCategoryMapping(1, TorznabCatType.Other); } + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep + }, + MovieSearchParams = new List + { + MovieSearchParam.Q + } + }; + + // torrents.csv doesn't return categories + caps.Categories.AddCategoryMapping(1, TorznabCatType.Other); + + return caps; + } + + public override async Task ApplyConfiguration(JToken configJson) { LoadValuesFromJson(configJson); diff --git a/src/Jackett.Common/Indexers/Uniotaku.cs b/src/Jackett.Common/Indexers/Uniotaku.cs index be1ea1c83..20ef2a26b 100644 --- a/src/Jackett.Common/Indexers/Uniotaku.cs +++ b/src/Jackett.Common/Indexers/Uniotaku.cs @@ -25,46 +25,54 @@ namespace Jackett.Common.Indexers public override string Language => "pt-BR"; public override string Type => "semi-private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + public Uniotaku(IIndexerConfigurationService configService, Utils.Clients.WebClient wc, Logger l, IProtectionService ps, ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep - }, - MovieSearchParams = new List - { - MovieSearchParam.Q - }, - MusicSearchParams = new List - { - MusicSearchParam.Q - }, - BookSearchParams = new List - { - BookSearchParam.Q - } - }, - configService: configService, + : base(configService: configService, client: wc, logger: l, p: ps, cacheService: cs, configData: new ConfigurationDataUniotaku()) { - AddCategoryMapping(28, TorznabCatType.TVAnime, "Anime"); - AddCategoryMapping(47, TorznabCatType.MoviesOther, "Filme"); - AddCategoryMapping(48, TorznabCatType.TVAnime, "OVA"); - AddCategoryMapping(49, TorznabCatType.BooksComics, "Mangá"); - AddCategoryMapping(50, TorznabCatType.TVOther, "Dorama"); - AddCategoryMapping(51, TorznabCatType.Audio, "OST"); - AddCategoryMapping(52, TorznabCatType.TVAnime, "Anime Completo"); - AddCategoryMapping(53, TorznabCatType.BooksComics, "Mangá Completo"); - AddCategoryMapping(54, TorznabCatType.TVOther, "Dorama Completo"); - AddCategoryMapping(55, TorznabCatType.XXX, "Hentai"); - AddCategoryMapping(56, TorznabCatType.XXXOther, "H Doujinshi"); - AddCategoryMapping(57, TorznabCatType.TVOther, "Tokusatsu"); + } + + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep + }, + MovieSearchParams = new List + { + MovieSearchParam.Q + }, + MusicSearchParams = new List + { + MusicSearchParam.Q + }, + BookSearchParams = new List + { + BookSearchParam.Q + } + }; + + caps.Categories.AddCategoryMapping(28, TorznabCatType.TVAnime, "Anime"); + caps.Categories.AddCategoryMapping(47, TorznabCatType.MoviesOther, "Filme"); + caps.Categories.AddCategoryMapping(48, TorznabCatType.TVAnime, "OVA"); + caps.Categories.AddCategoryMapping(49, TorznabCatType.BooksComics, "Mangá"); + caps.Categories.AddCategoryMapping(50, TorznabCatType.TVOther, "Dorama"); + caps.Categories.AddCategoryMapping(51, TorznabCatType.Audio, "OST"); + caps.Categories.AddCategoryMapping(52, TorznabCatType.TVAnime, "Anime Completo"); + caps.Categories.AddCategoryMapping(53, TorznabCatType.BooksComics, "Mangá Completo"); + caps.Categories.AddCategoryMapping(54, TorznabCatType.TVOther, "Dorama Completo"); + caps.Categories.AddCategoryMapping(55, TorznabCatType.XXX, "Hentai"); + caps.Categories.AddCategoryMapping(56, TorznabCatType.XXXOther, "H Doujinshi"); + caps.Categories.AddCategoryMapping(57, TorznabCatType.TVOther, "Tokusatsu"); + + return caps; } private new ConfigurationDataUniotaku configData => (ConfigurationDataUniotaku)base.configData; diff --git a/src/Jackett.Common/Indexers/XSpeeds.cs b/src/Jackett.Common/Indexers/XSpeeds.cs index 6fe3991eb..556438a6b 100644 --- a/src/Jackett.Common/Indexers/XSpeeds.cs +++ b/src/Jackett.Common/Indexers/XSpeeds.cs @@ -2,7 +2,6 @@ using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Globalization; -using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using AngleSharp.Html.Parser; @@ -27,6 +26,8 @@ namespace Jackett.Common.Indexers public override string Language => "en-US"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string LandingUrl => SiteLink + "login.php"; private string LoginUrl => SiteLink + "takelogin.php"; private string GetRSSKeyUrl => SiteLink + "getrss.php"; @@ -36,112 +37,14 @@ namespace Jackett.Common.Indexers private new ConfigurationDataBasicLoginWithRSSAndDisplay configData => (ConfigurationDataBasicLoginWithRSSAndDisplay)base.configData; - public XSpeeds(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, - ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId - }, - MovieSearchParams = new List - { - MovieSearchParam.Q, MovieSearchParam.ImdbId - }, - BookSearchParams = new List - { - BookSearchParam.Q - } - }, - configService: configService, + public XSpeeds(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) + : base(configService: configService, client: wc, logger: l, p: ps, cacheService: cs, configData: new ConfigurationDataBasicLoginWithRSSAndDisplay()) { - AddCategoryMapping(92, TorznabCatType.MoviesUHD, "4K Movies"); - AddCategoryMapping(91, TorznabCatType.TVUHD, "4K TV"); - AddCategoryMapping(94, TorznabCatType.TVUHD, "4K TV Boxsets"); - AddCategoryMapping(70, TorznabCatType.TVAnime, "Anime"); - AddCategoryMapping(80, TorznabCatType.AudioAudiobook, "Audiobooks"); - AddCategoryMapping(66, TorznabCatType.MoviesBluRay, "Blu-Ray"); - AddCategoryMapping(48, TorznabCatType.Books, "Books Magazines"); - AddCategoryMapping(68, TorznabCatType.MoviesOther, "Cams/TS"); - AddCategoryMapping(65, TorznabCatType.TVDocumentary, "Documentaries"); - AddCategoryMapping(10, TorznabCatType.MoviesDVD, "DVDR"); - AddCategoryMapping(72, TorznabCatType.MoviesForeign, "Foreign"); - AddCategoryMapping(74, TorznabCatType.TVOther, "Kids"); - AddCategoryMapping(95, TorznabCatType.PCMac, "Mac Games"); - AddCategoryMapping(44, TorznabCatType.TVSport, "MMA"); - AddCategoryMapping(11, TorznabCatType.Movies, "Movie Boxsets"); - AddCategoryMapping(12, TorznabCatType.Movies, "Movies"); - AddCategoryMapping(100, TorznabCatType.MoviesHD, "Movies HEVC"); - AddCategoryMapping(13, TorznabCatType.Audio, "Music"); - AddCategoryMapping(15, TorznabCatType.AudioVideo, "Music Videos"); - AddCategoryMapping(32, TorznabCatType.ConsoleNDS, "NDS Games"); - AddCategoryMapping(9, TorznabCatType.Other, "Other"); - AddCategoryMapping(6, TorznabCatType.PCGames, "PC Games"); - AddCategoryMapping(45, TorznabCatType.Other, "Pictures"); - AddCategoryMapping(31, TorznabCatType.ConsolePS4, "Playstation"); - AddCategoryMapping(71, TorznabCatType.TV, "PPV"); - AddCategoryMapping(54, TorznabCatType.TV, "Soaps"); - AddCategoryMapping(20, TorznabCatType.TVSport, "Sports"); - AddCategoryMapping(102, TorznabCatType.TVSport, "Sports FIFA World Cup"); - AddCategoryMapping(86, TorznabCatType.TVSport, "Sports MotorSports"); - AddCategoryMapping(89, TorznabCatType.TVSport, "Sports Olympics"); - AddCategoryMapping(88, TorznabCatType.TVSport, "Sports UK Football"); - AddCategoryMapping(83, TorznabCatType.Movies, "TOTM"); - AddCategoryMapping(21, TorznabCatType.TVSD, "TV Boxsets"); - AddCategoryMapping(76, TorznabCatType.TVHD, "TV HD Boxsets"); - AddCategoryMapping(97, TorznabCatType.TVHD, "TV HECV Boxsets"); - AddCategoryMapping(47, TorznabCatType.TVHD, "TV HD"); - AddCategoryMapping(96, TorznabCatType.TVHD, "TV HD HEVC"); - AddCategoryMapping(16, TorznabCatType.TVSD, "TV SD"); - AddCategoryMapping(7, TorznabCatType.ConsoleWii, "Wii Games"); - AddCategoryMapping(43, TorznabCatType.TVSport, "Wrestling"); - AddCategoryMapping(8, TorznabCatType.ConsoleXBox, "Xbox Games"); - - // RSS Textual categories - AddCategoryMapping("4K Movies", TorznabCatType.MoviesUHD); - AddCategoryMapping("4K TV", TorznabCatType.TVUHD); - AddCategoryMapping("4K TV Boxsets", TorznabCatType.TVUHD); - AddCategoryMapping("Anime", TorznabCatType.TVAnime); - AddCategoryMapping("Audiobooks", TorznabCatType.AudioAudiobook); - AddCategoryMapping("Blu-Ray", TorznabCatType.MoviesBluRay); - AddCategoryMapping("Books Magazines", TorznabCatType.Books); - AddCategoryMapping("Cams/TS", TorznabCatType.MoviesOther); - AddCategoryMapping("Documentaries", TorznabCatType.TVDocumentary); - AddCategoryMapping("DVDR", TorznabCatType.MoviesDVD); - AddCategoryMapping("Foreign", TorznabCatType.MoviesForeign); - AddCategoryMapping("Kids", TorznabCatType.TVOther); - AddCategoryMapping("MMA", TorznabCatType.TVSport); - AddCategoryMapping("Movie Boxsets", TorznabCatType.Movies); - AddCategoryMapping("Movies", TorznabCatType.Movies); - AddCategoryMapping("Music", TorznabCatType.Audio); - AddCategoryMapping("Music Videos", TorznabCatType.AudioVideo); - AddCategoryMapping("NDS Games", TorznabCatType.ConsoleNDS); - AddCategoryMapping("Other", TorznabCatType.Other); - AddCategoryMapping("PC Games", TorznabCatType.PCGames); - AddCategoryMapping("Pictures", TorznabCatType.Other); - AddCategoryMapping("Playstation", TorznabCatType.ConsolePS4); - AddCategoryMapping("PPV", TorznabCatType.TV); - AddCategoryMapping("Soaps", TorznabCatType.TV); - AddCategoryMapping("Sports", TorznabCatType.TVSport); - AddCategoryMapping("FIFA World Cup", TorznabCatType.TVSport); - AddCategoryMapping("MotorSports", TorznabCatType.TVSport); - AddCategoryMapping("Olympics", TorznabCatType.TVSport); - AddCategoryMapping("UK Football", TorznabCatType.TVSport); - AddCategoryMapping("TOTM", TorznabCatType.Movies); - AddCategoryMapping("TV Boxsets", TorznabCatType.TVSD); - AddCategoryMapping("HD Boxsets", TorznabCatType.TVHD); - AddCategoryMapping("TV-HD", TorznabCatType.TVHD); - AddCategoryMapping("TV-SD", TorznabCatType.TVSD); - AddCategoryMapping("Wii Games", TorznabCatType.ConsoleWii); - AddCategoryMapping("Wrestling", TorznabCatType.TVSport); - AddCategoryMapping("Xbox Games", TorznabCatType.ConsoleXBox); - // Configure the sort selects var sortBySelect = new SingleSelectConfigurationItem( "Sort by", @@ -166,6 +69,108 @@ namespace Jackett.Common.Indexers configData.AddDynamic("orderrequestedfromsite", orderSelect); } + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId + }, + BookSearchParams = new List + { + BookSearchParam.Q + } + }; + + caps.Categories.AddCategoryMapping(92, TorznabCatType.MoviesUHD, "4K Movies"); + caps.Categories.AddCategoryMapping(91, TorznabCatType.TVUHD, "4K TV"); + caps.Categories.AddCategoryMapping(94, TorznabCatType.TVUHD, "4K TV Boxsets"); + caps.Categories.AddCategoryMapping(70, TorznabCatType.TVAnime, "Anime"); + caps.Categories.AddCategoryMapping(80, TorznabCatType.AudioAudiobook, "Audiobooks"); + caps.Categories.AddCategoryMapping(66, TorznabCatType.MoviesBluRay, "Blu-Ray"); + caps.Categories.AddCategoryMapping(48, TorznabCatType.Books, "Books Magazines"); + caps.Categories.AddCategoryMapping(68, TorznabCatType.MoviesOther, "Cams/TS"); + caps.Categories.AddCategoryMapping(65, TorznabCatType.TVDocumentary, "Documentaries"); + caps.Categories.AddCategoryMapping(10, TorznabCatType.MoviesDVD, "DVDR"); + caps.Categories.AddCategoryMapping(72, TorznabCatType.MoviesForeign, "Foreign"); + caps.Categories.AddCategoryMapping(74, TorznabCatType.TVOther, "Kids"); + caps.Categories.AddCategoryMapping(95, TorznabCatType.PCMac, "Mac Games"); + caps.Categories.AddCategoryMapping(44, TorznabCatType.TVSport, "MMA"); + caps.Categories.AddCategoryMapping(11, TorznabCatType.Movies, "Movie Boxsets"); + caps.Categories.AddCategoryMapping(12, TorznabCatType.Movies, "Movies"); + caps.Categories.AddCategoryMapping(100, TorznabCatType.MoviesHD, "Movies HEVC"); + caps.Categories.AddCategoryMapping(13, TorznabCatType.Audio, "Music"); + caps.Categories.AddCategoryMapping(15, TorznabCatType.AudioVideo, "Music Videos"); + caps.Categories.AddCategoryMapping(32, TorznabCatType.ConsoleNDS, "NDS Games"); + caps.Categories.AddCategoryMapping(9, TorznabCatType.Other, "Other"); + caps.Categories.AddCategoryMapping(6, TorznabCatType.PCGames, "PC Games"); + caps.Categories.AddCategoryMapping(45, TorznabCatType.Other, "Pictures"); + caps.Categories.AddCategoryMapping(31, TorznabCatType.ConsolePS4, "Playstation"); + caps.Categories.AddCategoryMapping(71, TorznabCatType.TV, "PPV"); + caps.Categories.AddCategoryMapping(54, TorznabCatType.TV, "Soaps"); + caps.Categories.AddCategoryMapping(20, TorznabCatType.TVSport, "Sports"); + caps.Categories.AddCategoryMapping(102, TorznabCatType.TVSport, "Sports FIFA World Cup"); + caps.Categories.AddCategoryMapping(86, TorznabCatType.TVSport, "Sports MotorSports"); + caps.Categories.AddCategoryMapping(89, TorznabCatType.TVSport, "Sports Olympics"); + caps.Categories.AddCategoryMapping(88, TorznabCatType.TVSport, "Sports UK Football"); + caps.Categories.AddCategoryMapping(83, TorznabCatType.Movies, "TOTM"); + caps.Categories.AddCategoryMapping(21, TorznabCatType.TVSD, "TV Boxsets"); + caps.Categories.AddCategoryMapping(76, TorznabCatType.TVHD, "TV HD Boxsets"); + caps.Categories.AddCategoryMapping(97, TorznabCatType.TVHD, "TV HECV Boxsets"); + caps.Categories.AddCategoryMapping(47, TorznabCatType.TVHD, "TV HD"); + caps.Categories.AddCategoryMapping(96, TorznabCatType.TVHD, "TV HD HEVC"); + caps.Categories.AddCategoryMapping(16, TorznabCatType.TVSD, "TV SD"); + caps.Categories.AddCategoryMapping(7, TorznabCatType.ConsoleWii, "Wii Games"); + caps.Categories.AddCategoryMapping(43, TorznabCatType.TVSport, "Wrestling"); + caps.Categories.AddCategoryMapping(8, TorznabCatType.ConsoleXBox, "Xbox Games"); + + // RSS Textual categories + caps.Categories.AddCategoryMapping("4K Movies", TorznabCatType.MoviesUHD); + caps.Categories.AddCategoryMapping("4K TV", TorznabCatType.TVUHD); + caps.Categories.AddCategoryMapping("4K TV Boxsets", TorznabCatType.TVUHD); + caps.Categories.AddCategoryMapping("Anime", TorznabCatType.TVAnime); + caps.Categories.AddCategoryMapping("Audiobooks", TorznabCatType.AudioAudiobook); + caps.Categories.AddCategoryMapping("Blu-Ray", TorznabCatType.MoviesBluRay); + caps.Categories.AddCategoryMapping("Books Magazines", TorznabCatType.Books); + caps.Categories.AddCategoryMapping("Cams/TS", TorznabCatType.MoviesOther); + caps.Categories.AddCategoryMapping("Documentaries", TorznabCatType.TVDocumentary); + caps.Categories.AddCategoryMapping("DVDR", TorznabCatType.MoviesDVD); + caps.Categories.AddCategoryMapping("Foreign", TorznabCatType.MoviesForeign); + caps.Categories.AddCategoryMapping("Kids", TorznabCatType.TVOther); + caps.Categories.AddCategoryMapping("MMA", TorznabCatType.TVSport); + caps.Categories.AddCategoryMapping("Movie Boxsets", TorznabCatType.Movies); + caps.Categories.AddCategoryMapping("Movies", TorznabCatType.Movies); + caps.Categories.AddCategoryMapping("Music", TorznabCatType.Audio); + caps.Categories.AddCategoryMapping("Music Videos", TorznabCatType.AudioVideo); + caps.Categories.AddCategoryMapping("NDS Games", TorznabCatType.ConsoleNDS); + caps.Categories.AddCategoryMapping("Other", TorznabCatType.Other); + caps.Categories.AddCategoryMapping("PC Games", TorznabCatType.PCGames); + caps.Categories.AddCategoryMapping("Pictures", TorznabCatType.Other); + caps.Categories.AddCategoryMapping("Playstation", TorznabCatType.ConsolePS4); + caps.Categories.AddCategoryMapping("PPV", TorznabCatType.TV); + caps.Categories.AddCategoryMapping("Soaps", TorznabCatType.TV); + caps.Categories.AddCategoryMapping("Sports", TorznabCatType.TVSport); + caps.Categories.AddCategoryMapping("FIFA World Cup", TorznabCatType.TVSport); + caps.Categories.AddCategoryMapping("MotorSports", TorznabCatType.TVSport); + caps.Categories.AddCategoryMapping("Olympics", TorznabCatType.TVSport); + caps.Categories.AddCategoryMapping("UK Football", TorznabCatType.TVSport); + caps.Categories.AddCategoryMapping("TOTM", TorznabCatType.Movies); + caps.Categories.AddCategoryMapping("TV Boxsets", TorznabCatType.TVSD); + caps.Categories.AddCategoryMapping("HD Boxsets", TorznabCatType.TVHD); + caps.Categories.AddCategoryMapping("TV-HD", TorznabCatType.TVHD); + caps.Categories.AddCategoryMapping("TV-SD", TorznabCatType.TVSD); + caps.Categories.AddCategoryMapping("Wii Games", TorznabCatType.ConsoleWii); + caps.Categories.AddCategoryMapping("Wrestling", TorznabCatType.TVSport); + caps.Categories.AddCategoryMapping("Xbox Games", TorznabCatType.ConsoleXBox); + + return caps; + } + private string GetSortBy => ((SingleSelectConfigurationItem)configData.GetDynamic("sortrequestedfromsite")).Value; private string GetOrder => ((SingleSelectConfigurationItem)configData.GetDynamic("orderrequestedfromsite")).Value; diff --git a/src/Jackett.Common/Indexers/ZonaQ.cs b/src/Jackett.Common/Indexers/ZonaQ.cs index 639e92170..794330f89 100644 --- a/src/Jackett.Common/Indexers/ZonaQ.cs +++ b/src/Jackett.Common/Indexers/ZonaQ.cs @@ -31,6 +31,8 @@ namespace Jackett.Common.Indexers public override string Language => "es-ES"; public override string Type => "private"; + public override TorznabCapabilities TorznabCaps => SetCapabilities(); + private string Login1Url => SiteLink + "index.php"; private string Login2Url => SiteLink + "paDentro.php"; private string Login3Url => SiteLink + "retorno/include/puerta_8_ajax.php"; @@ -39,87 +41,91 @@ namespace Jackett.Common.Indexers private new ConfigurationDataBasicLogin configData => (ConfigurationDataBasicLogin)base.configData; - public ZonaQ(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, - ICacheService cs) - : base( - caps: new TorznabCapabilities - { - TvSearchParams = new List - { - TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep - }, - MovieSearchParams = new List - { - MovieSearchParam.Q - } - }, - configService: configService, + public ZonaQ(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs) + : base(configService: configService, client: wc, logger: l, p: ps, cacheService: cs, configData: new ConfigurationDataBasicLogin("For best results, change the 'Torrents por página' option to 100 in 'Mi Panel' page.")) - { - AddCategoryMapping("cat[]=1&subcat[]=1", TorznabCatType.MoviesDVD, "Películas/DVD"); - AddCategoryMapping("cat[]=1&subcat[]=2", TorznabCatType.MoviesDVD, "Películas/BDVD + Autorías"); - AddCategoryMapping("cat[]=1&subcat[]=3", TorznabCatType.MoviesBluRay, "Películas/BD"); - AddCategoryMapping("cat[]=1&subcat[]=4", TorznabCatType.MoviesUHD, "Películas/BD 4K"); - AddCategoryMapping("cat[]=1&subcat[]=5", TorznabCatType.Movies3D, "Películas/BD 3D"); - AddCategoryMapping("cat[]=1&subcat[]=6", TorznabCatType.MoviesBluRay, "Películas/BD Remux"); - AddCategoryMapping("cat[]=1&subcat[]=7", TorznabCatType.MoviesHD, "Películas/MKV"); - AddCategoryMapping("cat[]=1&subcat[]=8", TorznabCatType.MoviesUHD, "Películas/MKV 4K"); - AddCategoryMapping("cat[]=1&subcat[]=9", TorznabCatType.MoviesUHD, "Películas/BD Remux 4K"); + } - AddCategoryMapping("cat[]=2&subcat[]=1", TorznabCatType.MoviesDVD, "Animación/DVD"); - AddCategoryMapping("cat[]=2&subcat[]=2", TorznabCatType.MoviesDVD, "Animación/BDVD + Autorías"); - AddCategoryMapping("cat[]=2&subcat[]=3", TorznabCatType.MoviesBluRay, "Animación/BD"); - AddCategoryMapping("cat[]=2&subcat[]=4", TorznabCatType.MoviesUHD, "Animación/BD 4K"); - AddCategoryMapping("cat[]=2&subcat[]=5", TorznabCatType.Movies3D, "Animación/BD 3D"); - AddCategoryMapping("cat[]=2&subcat[]=6", TorznabCatType.MoviesBluRay, "Animación/BD Remux"); - AddCategoryMapping("cat[]=2&subcat[]=7", TorznabCatType.MoviesHD, "Animación/MKV"); - AddCategoryMapping("cat[]=2&subcat[]=8", TorznabCatType.MoviesUHD, "Animación/MKV 4K"); - AddCategoryMapping("cat[]=2&subcat[]=9", TorznabCatType.MoviesUHD, "Animación/BD Remux 4K"); + private TorznabCapabilities SetCapabilities() + { + var caps = new TorznabCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep + }, + MovieSearchParams = new List + { + MovieSearchParam.Q + } + }; - AddCategoryMapping("cat[]=3&subcat[]=1", TorznabCatType.AudioVideo, "Música/DVD"); - AddCategoryMapping("cat[]=3&subcat[]=2", TorznabCatType.AudioVideo, "Música/BDVD + Autorías"); - AddCategoryMapping("cat[]=3&subcat[]=3", TorznabCatType.AudioVideo, "Música/BD"); - AddCategoryMapping("cat[]=3&subcat[]=4", TorznabCatType.AudioVideo, "Música/BD 4K"); - AddCategoryMapping("cat[]=3&subcat[]=5", TorznabCatType.AudioVideo, "Música/BD 3D"); - AddCategoryMapping("cat[]=3&subcat[]=6", TorznabCatType.AudioVideo, "Música/BD Remux"); - AddCategoryMapping("cat[]=3&subcat[]=7", TorznabCatType.AudioVideo, "Música/MKV"); - AddCategoryMapping("cat[]=3&subcat[]=8", TorznabCatType.AudioVideo, "Música/MKV 4K"); - AddCategoryMapping("cat[]=3&subcat[]=9", TorznabCatType.AudioVideo, "Música/BD Remux 4K"); + caps.Categories.AddCategoryMapping("cat[]=1&subcat[]=1", TorznabCatType.MoviesDVD, "Películas/DVD"); + caps.Categories.AddCategoryMapping("cat[]=1&subcat[]=2", TorznabCatType.MoviesDVD, "Películas/BDVD + Autorías"); + caps.Categories.AddCategoryMapping("cat[]=1&subcat[]=3", TorznabCatType.MoviesBluRay, "Películas/BD"); + caps.Categories.AddCategoryMapping("cat[]=1&subcat[]=4", TorznabCatType.MoviesUHD, "Películas/BD 4K"); + caps.Categories.AddCategoryMapping("cat[]=1&subcat[]=5", TorznabCatType.Movies3D, "Películas/BD 3D"); + caps.Categories.AddCategoryMapping("cat[]=1&subcat[]=6", TorznabCatType.MoviesBluRay, "Películas/BD Remux"); + caps.Categories.AddCategoryMapping("cat[]=1&subcat[]=7", TorznabCatType.MoviesHD, "Películas/MKV"); + caps.Categories.AddCategoryMapping("cat[]=1&subcat[]=8", TorznabCatType.MoviesUHD, "Películas/MKV 4K"); + caps.Categories.AddCategoryMapping("cat[]=1&subcat[]=9", TorznabCatType.MoviesUHD, "Películas/BD Remux 4K"); - AddCategoryMapping("cat[]=4&subcat[]=1", TorznabCatType.TVSD, "Series/DVD"); - AddCategoryMapping("cat[]=4&subcat[]=2", TorznabCatType.TVSD, "Series/BDVD + Autorías"); - AddCategoryMapping("cat[]=4&subcat[]=3", TorznabCatType.TVHD, "Series/BD"); - AddCategoryMapping("cat[]=4&subcat[]=4", TorznabCatType.TVUHD, "Series/BD 4K"); - AddCategoryMapping("cat[]=4&subcat[]=5", TorznabCatType.TVOther, "Series/BD 3D"); - AddCategoryMapping("cat[]=4&subcat[]=6", TorznabCatType.TVHD, "Series/BD Remux"); - AddCategoryMapping("cat[]=4&subcat[]=7", TorznabCatType.TVHD, "Series/MKV"); - AddCategoryMapping("cat[]=4&subcat[]=8", TorznabCatType.TVUHD, "Series/MKV 4K"); - AddCategoryMapping("cat[]=4&subcat[]=9", TorznabCatType.TVUHD, "Series/BD Remux 4K"); + caps.Categories.AddCategoryMapping("cat[]=2&subcat[]=1", TorznabCatType.MoviesDVD, "Animación/DVD"); + caps.Categories.AddCategoryMapping("cat[]=2&subcat[]=2", TorznabCatType.MoviesDVD, "Animación/BDVD + Autorías"); + caps.Categories.AddCategoryMapping("cat[]=2&subcat[]=3", TorznabCatType.MoviesBluRay, "Animación/BD"); + caps.Categories.AddCategoryMapping("cat[]=2&subcat[]=4", TorznabCatType.MoviesUHD, "Animación/BD 4K"); + caps.Categories.AddCategoryMapping("cat[]=2&subcat[]=5", TorznabCatType.Movies3D, "Animación/BD 3D"); + caps.Categories.AddCategoryMapping("cat[]=2&subcat[]=6", TorznabCatType.MoviesBluRay, "Animación/BD Remux"); + caps.Categories.AddCategoryMapping("cat[]=2&subcat[]=7", TorznabCatType.MoviesHD, "Animación/MKV"); + caps.Categories.AddCategoryMapping("cat[]=2&subcat[]=8", TorznabCatType.MoviesUHD, "Animación/MKV 4K"); + caps.Categories.AddCategoryMapping("cat[]=2&subcat[]=9", TorznabCatType.MoviesUHD, "Animación/BD Remux 4K"); - AddCategoryMapping("cat[]=5&subcat[]=1", TorznabCatType.TVDocumentary, "Docus/DVD"); - AddCategoryMapping("cat[]=5&subcat[]=2", TorznabCatType.TVDocumentary, "Docus/BDVD + Autorías"); - AddCategoryMapping("cat[]=5&subcat[]=3", TorznabCatType.TVDocumentary, "Docus/BD"); - AddCategoryMapping("cat[]=5&subcat[]=4", TorznabCatType.TVDocumentary, "Docus/BD 4K"); - AddCategoryMapping("cat[]=5&subcat[]=5", TorznabCatType.TVDocumentary, "Docus/BD 3D"); - AddCategoryMapping("cat[]=5&subcat[]=6", TorznabCatType.TVDocumentary, "Docus/BD Remux"); - AddCategoryMapping("cat[]=5&subcat[]=7", TorznabCatType.TVDocumentary, "Docus/MKV"); - AddCategoryMapping("cat[]=5&subcat[]=8", TorznabCatType.TVDocumentary, "Docus/MKV 4K"); - AddCategoryMapping("cat[]=5&subcat[]=9", TorznabCatType.TVDocumentary, "Docus/BD Remux 4K"); + caps.Categories.AddCategoryMapping("cat[]=3&subcat[]=1", TorznabCatType.AudioVideo, "Música/DVD"); + caps.Categories.AddCategoryMapping("cat[]=3&subcat[]=2", TorznabCatType.AudioVideo, "Música/BDVD + Autorías"); + caps.Categories.AddCategoryMapping("cat[]=3&subcat[]=3", TorznabCatType.AudioVideo, "Música/BD"); + caps.Categories.AddCategoryMapping("cat[]=3&subcat[]=4", TorznabCatType.AudioVideo, "Música/BD 4K"); + caps.Categories.AddCategoryMapping("cat[]=3&subcat[]=5", TorznabCatType.AudioVideo, "Música/BD 3D"); + caps.Categories.AddCategoryMapping("cat[]=3&subcat[]=6", TorznabCatType.AudioVideo, "Música/BD Remux"); + caps.Categories.AddCategoryMapping("cat[]=3&subcat[]=7", TorznabCatType.AudioVideo, "Música/MKV"); + caps.Categories.AddCategoryMapping("cat[]=3&subcat[]=8", TorznabCatType.AudioVideo, "Música/MKV 4K"); + caps.Categories.AddCategoryMapping("cat[]=3&subcat[]=9", TorznabCatType.AudioVideo, "Música/BD Remux 4K"); - AddCategoryMapping("cat[]=6&subcat[]=1", TorznabCatType.OtherMisc, "Deportes y Otros/DVD"); - AddCategoryMapping("cat[]=6&subcat[]=2", TorznabCatType.OtherMisc, "Deportes y Otros/BDVD + Autorías"); - AddCategoryMapping("cat[]=6&subcat[]=3", TorznabCatType.OtherMisc, "Deportes y Otros/BD"); - AddCategoryMapping("cat[]=6&subcat[]=4", TorznabCatType.OtherMisc, "Deportes y Otros/BD 4K"); - AddCategoryMapping("cat[]=6&subcat[]=5", TorznabCatType.OtherMisc, "Deportes y Otros/BD 3D"); - AddCategoryMapping("cat[]=6&subcat[]=6", TorznabCatType.OtherMisc, "Deportes y Otros/BD Remux"); - AddCategoryMapping("cat[]=6&subcat[]=7", TorznabCatType.OtherMisc, "Deportes y Otros/MKV"); - AddCategoryMapping("cat[]=6&subcat[]=8", TorznabCatType.OtherMisc, "Deportes y Otros/MKV 4K"); - AddCategoryMapping("cat[]=6&subcat[]=9", TorznabCatType.OtherMisc, "Deportes y Otros/BD Remux 4K"); + caps.Categories.AddCategoryMapping("cat[]=4&subcat[]=1", TorznabCatType.TVSD, "Series/DVD"); + caps.Categories.AddCategoryMapping("cat[]=4&subcat[]=2", TorznabCatType.TVSD, "Series/BDVD + Autorías"); + caps.Categories.AddCategoryMapping("cat[]=4&subcat[]=3", TorznabCatType.TVHD, "Series/BD"); + caps.Categories.AddCategoryMapping("cat[]=4&subcat[]=4", TorznabCatType.TVUHD, "Series/BD 4K"); + caps.Categories.AddCategoryMapping("cat[]=4&subcat[]=5", TorznabCatType.TVOther, "Series/BD 3D"); + caps.Categories.AddCategoryMapping("cat[]=4&subcat[]=6", TorznabCatType.TVHD, "Series/BD Remux"); + caps.Categories.AddCategoryMapping("cat[]=4&subcat[]=7", TorznabCatType.TVHD, "Series/MKV"); + caps.Categories.AddCategoryMapping("cat[]=4&subcat[]=8", TorznabCatType.TVUHD, "Series/MKV 4K"); + caps.Categories.AddCategoryMapping("cat[]=4&subcat[]=9", TorznabCatType.TVUHD, "Series/BD Remux 4K"); + + caps.Categories.AddCategoryMapping("cat[]=5&subcat[]=1", TorznabCatType.TVDocumentary, "Docus/DVD"); + caps.Categories.AddCategoryMapping("cat[]=5&subcat[]=2", TorznabCatType.TVDocumentary, "Docus/BDVD + Autorías"); + caps.Categories.AddCategoryMapping("cat[]=5&subcat[]=3", TorznabCatType.TVDocumentary, "Docus/BD"); + caps.Categories.AddCategoryMapping("cat[]=5&subcat[]=4", TorznabCatType.TVDocumentary, "Docus/BD 4K"); + caps.Categories.AddCategoryMapping("cat[]=5&subcat[]=5", TorznabCatType.TVDocumentary, "Docus/BD 3D"); + caps.Categories.AddCategoryMapping("cat[]=5&subcat[]=6", TorznabCatType.TVDocumentary, "Docus/BD Remux"); + caps.Categories.AddCategoryMapping("cat[]=5&subcat[]=7", TorznabCatType.TVDocumentary, "Docus/MKV"); + caps.Categories.AddCategoryMapping("cat[]=5&subcat[]=8", TorznabCatType.TVDocumentary, "Docus/MKV 4K"); + caps.Categories.AddCategoryMapping("cat[]=5&subcat[]=9", TorznabCatType.TVDocumentary, "Docus/BD Remux 4K"); + + caps.Categories.AddCategoryMapping("cat[]=6&subcat[]=1", TorznabCatType.OtherMisc, "Deportes y Otros/DVD"); + caps.Categories.AddCategoryMapping("cat[]=6&subcat[]=2", TorznabCatType.OtherMisc, "Deportes y Otros/BDVD + Autorías"); + caps.Categories.AddCategoryMapping("cat[]=6&subcat[]=3", TorznabCatType.OtherMisc, "Deportes y Otros/BD"); + caps.Categories.AddCategoryMapping("cat[]=6&subcat[]=4", TorznabCatType.OtherMisc, "Deportes y Otros/BD 4K"); + caps.Categories.AddCategoryMapping("cat[]=6&subcat[]=5", TorznabCatType.OtherMisc, "Deportes y Otros/BD 3D"); + caps.Categories.AddCategoryMapping("cat[]=6&subcat[]=6", TorznabCatType.OtherMisc, "Deportes y Otros/BD Remux"); + caps.Categories.AddCategoryMapping("cat[]=6&subcat[]=7", TorznabCatType.OtherMisc, "Deportes y Otros/MKV"); + caps.Categories.AddCategoryMapping("cat[]=6&subcat[]=8", TorznabCatType.OtherMisc, "Deportes y Otros/MKV 4K"); + caps.Categories.AddCategoryMapping("cat[]=6&subcat[]=9", TorznabCatType.OtherMisc, "Deportes y Otros/BD Remux 4K"); + + return caps; } public override async Task ApplyConfiguration(JToken configJson) diff --git a/src/Jackett.Common/Models/TorznabCapabilitiesCategories.cs b/src/Jackett.Common/Models/TorznabCapabilitiesCategories.cs index 940136029..55547dd5b 100644 --- a/src/Jackett.Common/Models/TorznabCapabilitiesCategories.cs +++ b/src/Jackett.Common/Models/TorznabCapabilitiesCategories.cs @@ -48,6 +48,8 @@ namespace Jackett.Common.Models return newFlatList; } + public void AddCategoryMapping(int trackerCategory, TorznabCategory torznabCategory, string trackerCategoryDesc = null) => AddCategoryMapping(trackerCategory.ToString(), torznabCategory, trackerCategoryDesc); + public void AddCategoryMapping(string trackerCategory, TorznabCategory torznabCategory, string trackerCategoryDesc = null) { _categoryMapping.Add(new CategoryMapping(trackerCategory, trackerCategoryDesc, torznabCategory.ID)); diff --git a/src/Jackett.Test/TestHelpers/TestWebIndexer.cs b/src/Jackett.Test/TestHelpers/TestWebIndexer.cs index ed7eccdd5..4fb0517f6 100644 --- a/src/Jackett.Test/TestHelpers/TestWebIndexer.cs +++ b/src/Jackett.Test/TestHelpers/TestWebIndexer.cs @@ -28,14 +28,10 @@ namespace Jackett.Test.TestHelpers public override string Language { get; protected set; } = "en-us"; public override string Type { get; protected set; } = "private"; - public TestWebIndexer() : - base(caps: new TorznabCapabilities(), - client: null, - configService: null, - logger: null, - configData: new ConfigurationData(), - p: null, - cacheService: null) + public override TorznabCapabilities TorznabCaps { get; protected set; } = new TorznabCapabilities(); + + public TestWebIndexer() + : base(client: null, configService: null, logger: null, configData: new ConfigurationData(), p: null, cacheService: null) { }