public TorrentLatino2(IIndexerConfigurationService configurationService, WebClient webClient, Logger logger, IProtectionService protectionService, ICacheService cacheService)
            : base(id: "torrentlatino2",
                   name: "TorrentLatino2",
                   description: "Las Mejores Peliculas y Series Latino por Torrent GRATIS...",
                   link: "https://www.torrentlatino2.net/",
                   caps: new TorznabCapabilities {
            MovieSearchParams = new List <MovieSearchParam> {
                MovieSearchParam.Q
            }
        },
                   configService: configurationService,
                   client: webClient,
                   logger: logger,
                   p: protectionService,
                   cacheService: cacheService,
                   configData: new ConfigurationData())
        {
            Encoding = Encoding.UTF8;
            Language = "es-419";
            Type     = "public";

            var language = new SingleSelectConfigurationItem("Select language", new Dictionary <string, string>
            {
                { "latino", "Latin American Spanish" }
            })
            {
                Value = "latino"
            };

            configData.AddDynamic("language", language);

            AddCategoryMapping(1, TorznabCatType.MoviesHD);
        }
Exemple #2
0
        public Cinecalidad(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps,
                           ICacheService cs)
            : base(id: "cinecalidad",
                   name: "Cinecalidad",
                   description: "Películas Full HD en Castellano y Latino Dual.",
                   link: "https://www.cinecalidad.is/",
                   caps: new TorznabCapabilities {
            MovieSearchParams = new List <MovieSearchParam> {
                MovieSearchParam.Q
            }
        },
                   configService: configService,
                   client: wc,
                   logger: l,
                   p: ps,
                   cacheService: cs,
                   configData: new ConfigurationData())
        {
            Encoding = Encoding.UTF8;
            Language = "es-es";
            Type     = "public";

            var language = new SingleSelectConfigurationItem("Select language", new Dictionary <string, string>
            {
                { "castellano", "Castilian Spanish" },
                { "latino", "Latin American Spanish" }
            })
            {
                Value = "castellano"
            };

            configData.AddDynamic("language", language);

            AddCategoryMapping(1, TorznabCatType.MoviesHD);
        }
Exemple #3
0
        public MoreThanTV(IIndexerConfigurationService configService, WebClient c, Logger l, IProtectionService ps,
                          ICacheService cs)
            : base(id: "morethantv",
                   name: "MoreThanTV",
                   description: "Private torrent tracker for TV / MOVIES, and the internal tracker for the release group DRACULA.",
                   link: "https://www.morethantv.me/",
                   caps: new TorznabCapabilities
        {
            TvSearchParams = new List <TvSearchParam>
            {
                TvSearchParam.Q
            },
            MovieSearchParams = new List <MovieSearchParam>
            {
                MovieSearchParam.Q
            }
        },
                   configService: configService,
                   client: c,
                   logger: l,
                   p: ps,
                   cacheService: cs,
                   configData: new ConfigurationDataBasicLogin())
        {
            Encoding = Encoding.UTF8;
            Language = "en-us";
            Type     = "private";

            var sort = new SingleSelectConfigurationItem("Sort requested from site", new Dictionary <string, string>
            {
                { "time", "time" },
                { "size", "size" },
                { "snatched", "snatched" },
                { "seeders", "seeders" },
                { "leechers", "leechers" },
            })
            {
                Value = "time"
            };

            configData.AddDynamic("sort", sort);

            var order = new SingleSelectConfigurationItem("Order requested from site", new Dictionary <string, string>
            {
                { "desc", "desc" },
                { "asc", "asc" }
            })
            {
                Value = "desc"
            };

            configData.AddDynamic("order", order);

            AddCategoryMapping(1, TorznabCatType.Movies);
            AddCategoryMapping(2, TorznabCatType.TV);
            AddCategoryMapping(3, TorznabCatType.Other);
        }
Exemple #4
0
        public RarBG(IIndexerConfigurationService configService, Utils.Clients.WebClient wc, Logger l,
                     IProtectionService ps, ICacheService cs)
            : base(id: "rarbg",
                   name: "RARBG",
                   description: "RARBG is a Public torrent site for MOVIES / TV / GENERAL",
                   link: "https://rarbg.to/",
                   caps: new TorznabCapabilities
        {
            TvSearchParams = new List <TvSearchParam>
            {
                TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId
            },
            MovieSearchParams = new List <MovieSearchParam>
            {
                MovieSearchParam.Q, MovieSearchParam.ImdbId
            },
            MusicSearchParams = new List <MusicSearchParam>
            {
                MusicSearchParam.Q
            },
            TvSearchImdbAvailable = true
        },
                   configService: configService,
                   client: wc,
                   logger: l,
                   p: ps,
                   cacheService: cs,
                   configData: new ConfigurationData())
        {
            Encoding = Encoding.GetEncoding("windows-1252");
            Language = "en-US";
            Type     = "public";

            webclient.requestDelay = 2.5; // The api has a 1req/2s limit

            var ConfigApiEndpoint = new StringConfigurationItem("API URL")
            {
                Value = "https://torrentapi.org/pubapi_v2.php"
            };

            configData.AddDynamic("apiEndpoint", ConfigApiEndpoint);

            var sort = new SingleSelectConfigurationItem("Sort requested from site", new Dictionary <string, string>
            {
                { "last", "created" },
                { "seeders", "seeders" },
                { "leechers", "leechers" }
            })
            {
                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");
            // 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");

            _appId = "jackett_" + EnvironmentUtil.JackettVersion();

            EnableConfigurableRetryAttempts();
        }
Exemple #5
0
        public Abnormal(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps,
                        ICacheService cs)
            : base(id: "abnormal",
                   name: "Abnormal",
                   description: "General French Private Tracker",
                   link: "https://abn.lol/",
                   caps: new TorznabCapabilities
        {
            TvSearchParams = new List <TvSearchParam>
            {
                TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep
            },
            MovieSearchParams = new List <MovieSearchParam>
            {
                MovieSearchParam.Q
            },
            BookSearchParams = new List <BookSearchParam>
            {
                BookSearchParam.Q
            }
        },
                   configService: configService,
                   client: w,
                   logger: l,
                   p: ps,
                   cacheService: cs,
                   downloadBase: "https://abn.lol/Torrent/Download?ReleaseId=",
                   configData: new ConfigurationDataBasicLogin()
                   )
        {
            Encoding = Encoding.UTF8;
            Language = "fr-FR";
            Type     = "private";

            AddCategoryMapping(1, TorznabCatType.TV, "Series");
            AddCategoryMapping(2, TorznabCatType.Movies, "Movies");
            AddCategoryMapping(3, TorznabCatType.TVDocumentary, "Documentaries");
            AddCategoryMapping(4, TorznabCatType.TVAnime, "Anime");
            AddCategoryMapping(5, TorznabCatType.PCGames, "Games");
            AddCategoryMapping(6, TorznabCatType.PC, "Applications");
            AddCategoryMapping(7, TorznabCatType.BooksEBook, "Ebooks");
            AddCategoryMapping(9, TorznabCatType.TV, "Emissions");

            // Dynamic Configuration
            ConfigData.AddDynamic("advancedConfigurationWarning", new DisplayInfoConfigurationItem(string.Empty, "<center><b>Advanced Configuration</b></center>,<br /><br /> <center><b><u>WARNING !</u></b> <i>Be sure to read instructions before editing options bellow, you can <b>drastically reduce performance</b> of queries or have <b>non-accurate results</b>.</i></center><br/><br/><ul><li><b>Delay between Requests</b>: (<i>not recommended</i>) you can increase delay to requests made to the tracker, but a minimum of 2.1s is enforced as there is an anti-spam protection.</li><br /><li><b>Max Pages</b>: (<i>not recommended</i>) you can increase max pages to follow when making a request. But be aware that others apps can consider this indexer not working if jackett take too many times to return results. </li><br /><li><b>Enhanced Anime</b>: if you have \"Anime\", this will improve queries made to this tracker related to this type when making searches.</li><br /><li><b>Multi Replacement</b>: you can dynamically replace the word \"MULTI\" with another of your choice like \"MULTI.FRENCH\" for better analysis of 3rd party softwares.</li><br /><li><b>Sub Replacement</b>: you can dynamically replace the word \"VOSTFR\" or \"SUBFRENCH\" with the word \"ENGLISH\" for better analysis of 3rd party softwares.</li></ul>"));

            var ConfigWebRequestDelay = new SingleSelectConfigurationItem("Which delay do you want to apply between each requests made to tracker ?", new Dictionary <string, string>
            {
                { "0", "0s (disabled)" },
                { "0.1", "0.1s" },
                { "0.3", "0.3s" },
                { "0.5", "0.5s (default)" },
                { "0.7", "0.7s" },
                { "1.0", "1.0s" },
                { "1.25", "1.25s" },
                { "1.50", "1.50s" }
            })
            {
                Value = "0.5"
            };

            ConfigData.AddDynamic("webRequestDelay", ConfigWebRequestDelay);

            var ConfigMaxPages = new SingleSelectConfigurationItem("How many pages do you want to follow ?", new Dictionary <string, string>
            {
                { "1", "1 (50 results - default / best perf.)" },
                { "2", "2 (100 results)" },
                { "3", "3 (150 results)" },
                { "4", "4 (200 results - hard limit max)" },
            })
            {
                Value = "1"
            };

            ConfigData.AddDynamic("maxPages", ConfigMaxPages);

            var ConfigEnhancedAnimeSearch = new BoolConfigurationItem("Do you want to use enhanced ANIME search ?")
            {
                Value = false
            };

            ConfigData.AddDynamic("enhancedAnimeSearch", ConfigEnhancedAnimeSearch);

            var ConfigMultiReplacement = new StringConfigurationItem("Do you want to replace \"MULTI\" keyword in release title by another word ?")
            {
                Value = "MULTI.FRENCH"
            };

            ConfigData.AddDynamic("multiReplacement", ConfigMultiReplacement);

            var ConfigSubReplacement = new BoolConfigurationItem("Do you want to replace \"VOSTFR\" and \"SUBFRENCH\" with \"ENGLISH\" word ?")
            {
                Value = false
            };

            ConfigData.AddDynamic("subReplacement", ConfigSubReplacement);

            webclient.requestDelay = Convert.ToDouble(WebRequestDelay);
        }
Exemple #6
0
        public Anidex(IIndexerConfigurationService configService, Utils.Clients.WebClient wc, Logger l,
                      IProtectionService ps, ICacheService cs)
            : base(id: "anidex",
                   name: "Anidex",
                   description: "Anidex is a Public torrent tracker and indexer, primarily for English fansub groups of anime",
                   link: "https://anidex.info/",
                   caps: new TorznabCapabilities
        {
            TvSearchParams = new List <TvSearchParam>
            {
                TvSearchParam.Q
            }
        },
                   configService: configService,
                   client: wc,
                   logger: l,
                   p: ps,
                   cacheService: cs,
                   configData: new ConfigurationData())
        {
            Encoding = Encoding.UTF8;
            Language = "en-US";
            Type     = "public";

            // 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("", "This site may use DDoS-Guard Protection, therefore Jackett requires <a href='https://github.com/Jackett/Jackett#configuring-flaresolverr' target='_blank'>FlareSolverr</a> to access it.")
                );

            AddLanguageConfiguration();

            // Configure the sort selects
            var sortBySelect = new SingleSelectConfigurationItem("Sort by", new Dictionary <string, string>
            {
                { "upload_timestamp", "created" },
                { "seeders", "seeders" },
                { "size", "size" },
                { "filename", "title" }
            })
            {
                Value = "upload_timestamp"
            };

            configData.AddDynamic("sortrequestedfromsite", sortBySelect);

            var orderSelect = new SingleSelectConfigurationItem("Order", new Dictionary <string, string>
            {
                { "desc", "Descending" },
                { "asc", "Ascending" }
            })
            {
                Value = "desc"
            };

            configData.AddDynamic("orderrequestedfromsite", orderSelect);

            EnableConfigurableRetryAttempts();
        }
Exemple #7
0
        public Anidex(IIndexerConfigurationService configService, Utils.Clients.WebClient wc, Logger l,
                      IProtectionService ps, ICacheService cs)
            : base(id: "anidex",
                   name: "Anidex",
                   description: "Anidex is a Public torrent tracker and indexer, primarily for English fansub groups of anime",
                   link: "https://anidex.info/",
                   caps: new TorznabCapabilities
        {
            TvSearchParams = new List <TvSearchParam>
            {
                TvSearchParam.Q
            }
        },
                   configService: configService,
                   client: wc,
                   logger: l,
                   p: ps,
                   cacheService: cs,
                   configData: new ConfigurationData())
        {
            Encoding = Encoding.UTF8;
            Language = "en-us";
            Type     = "public";

            // 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.TVAnime, "Light Novel");
            AddCategoryMapping(7, TorznabCatType.TVAnime, "Manga - TLed");
            AddCategoryMapping(8, TorznabCatType.TVAnime, "Manga - Raw");
            AddCategoryMapping(9, TorznabCatType.TVAnime, "♫ - Lossy");
            AddCategoryMapping(10, TorznabCatType.TVAnime, "♫ - Lossless");
            AddCategoryMapping(11, TorznabCatType.TVAnime, "♫ - Video");
            AddCategoryMapping(12, TorznabCatType.TVAnime, "Games");
            AddCategoryMapping(13, TorznabCatType.TVAnime, "Applications");
            AddCategoryMapping(14, TorznabCatType.TVAnime, "Pictures");
            AddCategoryMapping(15, TorznabCatType.TVAnime, "Adult Video");
            AddCategoryMapping(16, TorznabCatType.TVAnime, "Other");

            // Configure the language select option
            var languageSelect = new SingleSelectConfigurationItem("Language", new Dictionary <string, string>
            {
                { "1", "English" },
                { "2", "Japanese" },
                { "3", "Polish" },
                { "4", "Serbo-Croatian" },
                { "5", "Dutch" },
                { "6", "Italian" },
                { "7", "Russian" },
                { "8", "German" },
                { "9", "Hungarian" },
                { "10", "French" },
                { "11", "Finnish" },
                { "12", "Vietnamese" },
                { "13", "Greek" },
                { "14", "Bulgarian" },
                { "15", "Spanish (Spain)" },
                { "16", "Portuguese (Brazil)" },
                { "17", "Portuguese (Portugal)" },
                { "18", "Swedish" },
                { "19", "Arabic" },
                { "20", "Danish" },
                { "21", "Chinese (Simplified)" },
                { "22", "Bengali" },
                { "23", "Romanian" },
                { "24", "Czech" },
                { "25", "Mongolian" },
                { "26", "Turkish" },
                { "27", "Indonesian" },
                { "28", "Korean" },
                { "29", "Spanish (LATAM)" },
                { "30", "Persian" },
                { "31", "Malaysian" }
            })
            {
                Value = "1"
            };

            configData.AddDynamic("languageid", languageSelect);

            // Configure the sort selects
            var sortBySelect = new SingleSelectConfigurationItem("Sort by", new Dictionary <string, string>
            {
                { "upload_timestamp", "created" },
                { "seeders", "seeders" },
                { "size", "size" },
                { "filename", "title" }
            })
            {
                Value = "upload_timestamp"
            };

            configData.AddDynamic("sortrequestedfromsite", sortBySelect);

            var orderSelect = new SingleSelectConfigurationItem("Order", new Dictionary <string, string>
            {
                { "desc", "Descending" },
                { "asc", "Ascending" }
            })
            {
                Value = "desc"
            };

            configData.AddDynamic("orderrequestedfromsite", orderSelect);

            EnableConfigurableRetryAttempts();
        }
        public InternetArchive(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps,
                               ICacheService cs)
            : base(id: "internetarchive",
                   name: "Internet Archive",
                   description: "Internet Archive is a non-profit digital library offering free universal access to books, movies & music, as well as 406 billion archived web pages",
                   link: "https://archive.org/",
                   caps: new TorznabCapabilities
        {
            TvSearchParams = new List <TvSearchParam>
            {
                TvSearchParam.Q
            },
            MovieSearchParams = new List <MovieSearchParam>
            {
                MovieSearchParam.Q
            },
            MusicSearchParams = new List <MusicSearchParam>
            {
                MusicSearchParam.Q
            },
            BookSearchParams = new List <BookSearchParam>
            {
                BookSearchParam.Q
            }
        },
                   configService: configService,
                   client: wc,
                   logger: l,
                   p: ps,
                   cacheService: cs,
                   configData: new ConfigurationData())
        {
            Encoding = Encoding.UTF8;
            Language = "en-us";
            Type     = "public";

            var sort = new SingleSelectConfigurationItem("Sort requested from site", new Dictionary <string, string>
            {
                { "publicdate", "created" },
                { "downloads", "downloads" },
                { "item_size", "size" }
            })
            {
                Value = "publicdate"
            };

            configData.AddDynamic("sort", sort);

            var order = new SingleSelectConfigurationItem("Order requested from site", new Dictionary <string, string>
            {
                { "desc", "desc" },
                { "asc", "asc" }
            })
            {
                Value = "desc"
            };

            configData.AddDynamic("order", order);

            var titleOnly = new BoolConfigurationItem("Search only in title")
            {
                Value = true
            };

            configData.AddDynamic("titleOnly", titleOnly);

            AddCategoryMapping("audio", TorznabCatType.Audio);
            AddCategoryMapping("etree", TorznabCatType.Audio);
            AddCategoryMapping("movies", TorznabCatType.Movies);
            AddCategoryMapping("image", TorznabCatType.OtherMisc);
            AddCategoryMapping("texts", TorznabCatType.Books);
            AddCategoryMapping("software", TorznabCatType.PC);
            AddCategoryMapping("web", TorznabCatType.Other);
            AddCategoryMapping("collection", TorznabCatType.Other);
            AddCategoryMapping("account", TorznabCatType.Other);
            AddCategoryMapping("data", TorznabCatType.Other);
            AddCategoryMapping("other", TorznabCatType.Other);
        }
Exemple #9
0
        public Xthor(IIndexerConfigurationService configService, Utils.Clients.WebClient w, Logger l,
                     IProtectionService ps, ICacheService cs)
            : base(id: "xthor-api",
                   name: "Xthor API",
                   description: "General French Private Tracker",
                   link: "https://xthor.tk/",
                   caps: new TorznabCapabilities
        {
            TvSearchParams = new List <TvSearchParam>
            {
                TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep
            },
            MovieSearchParams = new List <MovieSearchParam>
            {
                MovieSearchParam.Q, MovieSearchParam.TmdbId
            },
            MusicSearchParams = new List <MusicSearchParam>
            {
                MusicSearchParam.Q
            },
            BookSearchParams = new List <BookSearchParam>
            {
                BookSearchParam.Q
            }
        },
                   configService: configService,
                   client: w,
                   logger: l,
                   p: ps,
                   cacheService: cs,
                   downloadBase: "https://xthor.tk/download.php?torrent=",
                   configData: new ConfigurationDataPasskey()
                   )
        {
            Encoding = Encoding.UTF8;
            Language = "fr-fr";
            Type     = "private";

            // Movies / Films
            AddCategoryMapping(118, TorznabCatType.MoviesBluRay, "Films 2160p/Bluray");
            AddCategoryMapping(119, TorznabCatType.MoviesBluRay, "Films 2160p/Remux");
            AddCategoryMapping(107, TorznabCatType.MoviesUHD, "Films 2160p/x265");
            AddCategoryMapping(1, TorznabCatType.MoviesBluRay, "Films 1080p/BluRay");
            AddCategoryMapping(2, TorznabCatType.MoviesBluRay, "Films 1080p/Remux");
            AddCategoryMapping(100, TorznabCatType.MoviesHD, "Films 1080p/x265");
            AddCategoryMapping(4, TorznabCatType.MoviesHD, "Films 1080p/x264");
            AddCategoryMapping(5, TorznabCatType.MoviesHD, "Films 720p/x264");
            AddCategoryMapping(7, TorznabCatType.MoviesSD, "Films SD/x264");
            AddCategoryMapping(3, TorznabCatType.Movies3D, "Films 3D");
            AddCategoryMapping(6, TorznabCatType.MoviesSD, "Films XviD");
            AddCategoryMapping(8, TorznabCatType.MoviesDVD, "Films DVD");
            AddCategoryMapping(122, TorznabCatType.MoviesHD, "Films HDTV");
            AddCategoryMapping(94, TorznabCatType.MoviesWEBDL, "Films WEBDL");
            AddCategoryMapping(95, TorznabCatType.MoviesWEBDL, "Films WEBRiP");
            AddCategoryMapping(12, TorznabCatType.TVDocumentary, "Films Documentaire");
            AddCategoryMapping(31, TorznabCatType.MoviesOther, "Films Animation");
            AddCategoryMapping(33, TorznabCatType.MoviesOther, "Films Spectacle");
            AddCategoryMapping(125, TorznabCatType.TVSport, "Films Sports");
            AddCategoryMapping(20, TorznabCatType.AudioVideo, "Films Concerts, Clips");
            AddCategoryMapping(9, TorznabCatType.MoviesOther, "Films VOSTFR");

            // TV / Series
            AddCategoryMapping(104, TorznabCatType.TVOther, "Series BluRay");
            AddCategoryMapping(13, TorznabCatType.TVOther, "Series Pack VF");
            AddCategoryMapping(15, TorznabCatType.TVHD, "Series HD VF");
            AddCategoryMapping(14, TorznabCatType.TVSD, "Series SD VF");
            AddCategoryMapping(98, TorznabCatType.TVOther, "Series Pack VOSTFR");
            AddCategoryMapping(17, TorznabCatType.TVHD, "Series HD VOSTFR");
            AddCategoryMapping(16, TorznabCatType.TVSD, "Series SD VOSTFR");
            AddCategoryMapping(101, TorznabCatType.TVAnime, "Series Packs Anime");
            AddCategoryMapping(32, TorznabCatType.TVAnime, "Series Animes");
            AddCategoryMapping(110, TorznabCatType.TVAnime, "Series Anime VOSTFR");
            AddCategoryMapping(123, TorznabCatType.TVOther, "Series Animation");
            AddCategoryMapping(109, TorznabCatType.TVDocumentary, "Series DOC");
            AddCategoryMapping(34, TorznabCatType.TVOther, "Series Sport");
            AddCategoryMapping(30, TorznabCatType.TVOther, "Series Emission TV");

            // XxX / MISC
            AddCategoryMapping(36, TorznabCatType.XXX, "MISC XxX/Films");
            AddCategoryMapping(105, TorznabCatType.XXX, "MISC XxX/Séries");
            AddCategoryMapping(114, TorznabCatType.XXX, "MISC XxX/Lesbiennes");
            AddCategoryMapping(115, TorznabCatType.XXX, "MISC XxX/Gays");
            AddCategoryMapping(113, TorznabCatType.XXX, "MISC XxX/Hentai");
            AddCategoryMapping(120, TorznabCatType.XXX, "MISC XxX/Magazines");

            // Books / Livres
            AddCategoryMapping(24, TorznabCatType.BooksEBook, "Livres Romans");
            AddCategoryMapping(124, TorznabCatType.AudioAudiobook, "Livres Audio Books");
            AddCategoryMapping(96, TorznabCatType.BooksMags, "Livres  Magazines");
            AddCategoryMapping(99, TorznabCatType.BooksOther, "Livres Bandes dessinées");
            AddCategoryMapping(116, TorznabCatType.BooksEBook, "Livres Romans Jeunesse");
            AddCategoryMapping(102, TorznabCatType.BooksComics, "Livres Comics");
            AddCategoryMapping(103, TorznabCatType.BooksOther, "Livres Mangas");

            // SOFTWARE / Logiciels
            AddCategoryMapping(25, TorznabCatType.PCGames, "Logiciels Jeux PC");
            AddCategoryMapping(27, TorznabCatType.ConsolePS3, "Logiciels Playstation");
            AddCategoryMapping(111, TorznabCatType.PCMac, "Logiciels Jeux MAC");
            AddCategoryMapping(26, TorznabCatType.ConsoleXBox360, "Logiciels XboX");
            AddCategoryMapping(112, TorznabCatType.PC, "Logiciels Jeux Linux");
            AddCategoryMapping(28, TorznabCatType.ConsoleWii, "Logiciels Nintendo");
            AddCategoryMapping(29, TorznabCatType.ConsoleNDS, "Logiciels NDS");
            AddCategoryMapping(117, TorznabCatType.PC, "Logiciels ROM");
            AddCategoryMapping(21, TorznabCatType.PC, "Logiciels Applis PC");
            AddCategoryMapping(22, TorznabCatType.PCMac, "Logiciels Applis Mac");
            AddCategoryMapping(23, TorznabCatType.PCMobileAndroid, "Logiciels Smartphone");

            // Dynamic Configuration
            ConfigData.AddDynamic("optionsConfigurationWarning", new DisplayInfoConfigurationItem(string.Empty, "<center><b>Available Options</b></center>,<br /><br /> <ul><li><b>Freeleech Only</b>: (<i>Restrictive</i>) If you want to discover only freeleech torrents to not impact your ratio, check the related box. So only torrents marked as freeleech will be returned instead of all.</li><br /><li><b>Specific Language</b>: (<i>Restrictive</i>) You can scope your searches with a specific language / accent.</li></ul>"));

            var ConfigFreeleechOnly = new BoolConfigurationItem("Do you want to discover only freeleech tagged torrents ?");

            ConfigData.AddDynamic("freeleechOnly", ConfigFreeleechOnly);

            var ConfigSpecificLanguageAccent = new SingleSelectConfigurationItem("Do you want to scope your searches with a specific language ? (Accent)", new Dictionary <string, string>
            {
                { "0", "All Voices (default)" },
                { "1", "Françaises" },
                { "2", "Quebecoises" },
                { "47", "Françaises et Québécoises" },
                { "3", "Anglaises" },
                { "4", "Japonaises" },
                { "5", "Espagnoles" },
                { "6", "Allemandes" },
                { "7", "Chinoises" },
                { "8", "Italiennes" },
                { "9", "Coréennes" },
                { "10", "Danoises" },
                { "11", "Russes" },
                { "12", "Portugaises" },
                { "13", "Hindi" },
                { "14", "Hollandaises" },
                { "15", "Suédoises" },
                { "16", "Norvégiennes" },
                { "17", "Thaïlandaises" },
                { "18", "Hébreu" },
                { "19", "Persanes" },
                { "20", "Arabes" },
                { "21", "Turques" },
                { "22", "Hongroises" },
                { "23", "Polonaises" },
                { "24", "Finnoises" },
                { "25", "Indonésiennes" },
                { "26", "Roumaines" },
                { "27", "Malaisiennes" },
                { "28", "Estoniennes" },
                { "29", "Islandaises" },
                { "30", "Grecques" },
                { "31", "Serbes" },
                { "32", "Norvégiennes" },
                { "33", "Ukrainiennes" },
                { "34", "Bulgares" },
                { "35", "Tagalogues" },
                { "36", "Xhosa" },
                { "37", "Kurdes" },
                { "38", "Bengali" },
                { "39", "Amhariques" },
                { "40", "Bosniaques" },
                { "41", "Malayalam" },
                { "42", "Télougou" },
                { "43", "Bambara" },
                { "44", "Catalanes" },
                { "45", "Tchèques" },
                { "46", "Afrikaans" }
            })
            {
                Value = "0"
            };

            ConfigData.AddDynamic("specificLanguageAccent", ConfigSpecificLanguageAccent);

            ConfigData.AddDynamic("advancedConfigurationWarning", new DisplayInfoConfigurationItem(string.Empty, "<center><b>Advanced Configuration</b></center>,<br /><br /> <center><b><u>WARNING !</u></b> <i>Be sure to read instructions before editing options bellow, you can <b>drastically reduce performance</b> of queries or have <b>non-accurate results</b>.</i></center><br/><br/><ul><li><b>Delay betwwen Requests</b>: (<i>not recommended</i>) you can increase delay to requests made to the tracker, but a minimum of 2.1s is enforced as there is an anti-spam protection.</li><br /><li><b>Max Pages</b>: (<i>not recommended</i>) you can increase max pages to follow when making a request. But be aware that others apps can consider this indexer not working if jackett take too many times to return results. Another thing is that API is very buggy on tracker side, most of time, results of next pages are same ... as the first page. Even if we deduplicate rows, you will loose performance for the same results. You can check logs to see if an higher pages following is not benefical, you will see an error percentage (duplicates) with recommandations.</li><br /><li><b>Bypass for TMDB</b>: (<i>recommended</i>) this indexer is compatible with TMDB queries (<i>for movies only</i>), so when requesting content with an TMDB ID, we will search directly ID on API instead of name. Results will be more accurate, so you can enable a max pages bypass for this query type. You will be at least limited by the hard limit of 4 pages.</li><br /><li><b>Drop categories</b>: (<i>recommended</i>) this indexer has some problems when too many categories are requested for filtering, so you will have better results by dropping categories from TMDB queries or selecting fewer categories in 3rd apps.</li><br /><li><b>Enhanced Anime</b>: if you have \"Anime\", this will improve queries made to this tracker related to this type when making searches.</li><br /><li><b>Multi Replacement</b>: you can dynamically replace the word \"MULTI\" with another of your choice like \"MULTI.FRENCH\" for better analysis of 3rd party softwares.</li><br /><li><b>Sub Replacement</b>: you can dynamically replace the word \"VOSTFR\" or \"SUBFRENCH\" with the word \"ENGLISH\" for better analysis of 3rd party softwares.</li></ul>"));

            var ConfigWebRequestDelay = new SingleSelectConfigurationItem("Which delay do you want to apply between each requests made to tracker ?", new Dictionary <string, string>
            {
                { "2.1", "2.1s (minimum)" },
                { "2.2", "2.2s" },
                { "2.3", "2.3s" },
                { "2.4", "2.4s" },
                { "2.5", "2.5s" },
                { "2.6", "2.6s" }
            })
            {
                Value = "2.1"
            };

            ConfigData.AddDynamic("webRequestDelay", ConfigWebRequestDelay);

            var ConfigMaxPages = new SingleSelectConfigurationItem("How many pages do you want to follow ?", new Dictionary <string, string>
            {
                { "1", "1 (32 results - default / best perf.)" },
                { "2", "2 (64 results)" },
                { "3", "3 (96 results)" },
                { "4", "4 (128 results - hard limit max)" },
            })
            {
                Value = "1"
            };

            ConfigData.AddDynamic("maxPages", ConfigMaxPages);

            var ConfigMaxPagesBypassForTMDB = new BoolConfigurationItem("Do you want to bypass max pages for TMDB searches ? (Radarr) - Hard limit of 4")
            {
                Value = true
            };

            ConfigData.AddDynamic("maxPagesBypassForTMDB", ConfigMaxPagesBypassForTMDB);

            var ConfigDropCategories = new SingleSelectConfigurationItem("Drop requested categories", new Dictionary <string, string>
            {
                { "0", "Disabled" },
                { "1", "Yes, only for TMDB requests (default)" },
                { "2", "Yes, for all requests" },
            })
            {
                Value = "1"
            };

            ConfigData.AddDynamic("dropCategories", ConfigDropCategories);

            var ConfigEnhancedAnimeSearch = new BoolConfigurationItem("Do you want to use enhanced ANIME search ?")
            {
                Value = false
            };

            ConfigData.AddDynamic("enhancedAnimeSearch", ConfigEnhancedAnimeSearch);

            var ConfigMultiReplacement = new StringConfigurationItem("Do you want to replace \"MULTI\" keyword in release title by another word ?")
            {
                Value = "MULTI.FRENCH"
            };

            ConfigData.AddDynamic("multiReplacement", ConfigMultiReplacement);

            var ConfigSubReplacement = new BoolConfigurationItem("Do you want to replace \"VOSTFR\" and \"SUBFRENCH\" with \"ENGLISH\" word ?")
            {
                Value = false
            };

            ConfigData.AddDynamic("subReplacement", ConfigSubReplacement);

            // Api has 1req/2s limit (minimum)
            webclient.requestDelay = Convert.ToDouble(WebRequestDelay);
        }
Exemple #10
0
        public ShareWood(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps,
                         ICacheService cs)
            : base(
                id: "sharewoodapi",
                name: "Sharewood API",
                description: "Sharewood is a Semi-Private FRENCH Torrent Tracker for GENERAL",
                link: "https://www.sharewood.tv/",
                caps: new TorznabCapabilities
        {
            TvSearchParams = new List <TvSearchParam>
            {
                TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep
            },
            MovieSearchParams = new List <MovieSearchParam>
            {
                MovieSearchParam.Q
            },
            MusicSearchParams = new List <MusicSearchParam>
            {
                MusicSearchParam.Q
            },
            BookSearchParams = new List <BookSearchParam>
            {
                BookSearchParam.Q
            }
        },
                configService: configService,
                client: wc,
                logger: l,
                p: ps,
                cacheService: cs,
                configData: new ConfigurationDataPasskey()
                )
        {
            Encoding = Encoding.UTF8;
            Language = "fr-fr";
            Type     = "semi-private";

            // 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);

            var ReplaceMulti = new BoolConfigurationItem("Replace MULTI by another language in release name");

            configData.AddDynamic("replacemulti", ReplaceMulti);

            // Configure the language select option for MULTI
            var languageSelect = new SingleSelectConfigurationItem("Replace MULTI by this language", new Dictionary <string, string>
            {
                { "FRENCH", "FRENCH" },
                { "MULTI.FRENCH", "MULTI.FRENCH" },
                { "ENGLISH", "ENGLISH" },
                { "MULTI.ENGLISH", "MULTI.ENGLISH" },
                { "VOSTFR", "VOSTFR" },
                { "MULTI.VOSTFR", "MULTI.VOSTFR" }
            })
            {
                Value = "FRENCH"
            };

            ;
            configData.AddDynamic("languageid", languageSelect);

            var ReplaceVostfr = new BoolConfigurationItem("Replace VOSTFR with ENGLISH");

            configData.AddDynamic("replacevostfr", ReplaceVostfr);

            EnableConfigurableRetryAttempts();
        }
Exemple #11
0
        public Anidex(IIndexerConfigurationService configService, Utils.Clients.WebClient wc, Logger l,
                      IProtectionService ps, ICacheService cs)
            : base(id: "anidex",
                   name: "Anidex",
                   description: "Anidex is a Public torrent tracker and indexer, primarily for English fansub groups of anime",
                   link: "https://anidex.info/",
                   caps: new TorznabCapabilities
        {
            TvSearchParams = new List <TvSearchParam>
            {
                TvSearchParam.Q
            }
        },
                   configService: configService,
                   client: wc,
                   logger: l,
                   p: ps,
                   cacheService: cs,
                   configData: new ConfigurationData())
        {
            Encoding = Encoding.UTF8;
            Language = "en-us";
            Type     = "public";

            // 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.TVAnime, "Light Novel");
            AddCategoryMapping(7, TorznabCatType.TVAnime, "Manga - TLed");
            AddCategoryMapping(8, TorznabCatType.TVAnime, "Manga - Raw");
            AddCategoryMapping(9, TorznabCatType.TVAnime, "♫ - Lossy");
            AddCategoryMapping(10, TorznabCatType.TVAnime, "♫ - Lossless");
            AddCategoryMapping(11, TorznabCatType.TVAnime, "♫ - Video");
            AddCategoryMapping(12, TorznabCatType.TVAnime, "Games");
            AddCategoryMapping(13, TorznabCatType.TVAnime, "Applications");
            AddCategoryMapping(14, TorznabCatType.TVAnime, "Pictures");
            AddCategoryMapping(15, TorznabCatType.TVAnime, "Adult Video");
            AddCategoryMapping(16, TorznabCatType.TVAnime, "Other");

            AddLanguageConfiguration();

            // Configure the sort selects
            var sortBySelect = new SingleSelectConfigurationItem("Sort by", new Dictionary <string, string>
            {
                { "upload_timestamp", "created" },
                { "seeders", "seeders" },
                { "size", "size" },
                { "filename", "title" }
            })
            {
                Value = "upload_timestamp"
            };

            configData.AddDynamic("sortrequestedfromsite", sortBySelect);

            var orderSelect = new SingleSelectConfigurationItem("Order", new Dictionary <string, string>
            {
                { "desc", "Descending" },
                { "asc", "Ascending" }
            })
            {
                Value = "desc"
            };

            configData.AddDynamic("orderrequestedfromsite", orderSelect);

            EnableConfigurableRetryAttempts();
        }