mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-17 17:34:09 +02:00
Add support for categories to TorrentShack (#585)
* Add support for categories to TorrentShack
This commit is contained in:
@@ -15,13 +15,14 @@ using System.Text;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Web;
|
using System.Web;
|
||||||
using Jackett.Models.IndexerConfig;
|
using Jackett.Models.IndexerConfig;
|
||||||
|
using System.Collections.Specialized;
|
||||||
|
|
||||||
namespace Jackett.Indexers
|
namespace Jackett.Indexers
|
||||||
{
|
{
|
||||||
public class TorrentShack : BaseIndexer, IIndexer
|
public class TorrentShack : BaseIndexer, IIndexer
|
||||||
{
|
{
|
||||||
private string LoginUrl { get { return SiteLink + "login.php"; } }
|
private string LoginUrl { get { return SiteLink + "login.php"; } }
|
||||||
private string SearchUrl { get { return SiteLink + "torrents.php?searchstr={0}&release_type=both&searchtags=&tags_type=0&order_by=s3&order_way=desc&torrent_preset=all&filter_cat%5B600%5D=1&filter_cat%5B620%5D=1&filter_cat%5B700%5D=1&filter_cat%5B981%5D=1&filter_cat%5B980%5D=1"; } }
|
private string SearchUrl { get { return SiteLink + "torrents.php"; } }
|
||||||
|
|
||||||
new ConfigurationDataBasicLogin configData
|
new ConfigurationDataBasicLogin configData
|
||||||
{
|
{
|
||||||
@@ -40,6 +41,35 @@ namespace Jackett.Indexers
|
|||||||
p: ps,
|
p: ps,
|
||||||
configData: new ConfigurationDataBasicLogin())
|
configData: new ConfigurationDataBasicLogin())
|
||||||
{
|
{
|
||||||
|
AddCategoryMapping(600, TorznabCatType.TVHD); // TV/HD
|
||||||
|
AddCategoryMapping(960, TorznabCatType.MoviesForeign); // Foreign
|
||||||
|
AddCategoryMapping(300, TorznabCatType.MoviesHD); // Movies/HD
|
||||||
|
AddCategoryMapping(200, TorznabCatType.PCGames); // Games/PC
|
||||||
|
AddCategoryMapping(100, TorznabCatType.PC0day); // Apps/PC
|
||||||
|
AddCategoryMapping(450, TorznabCatType.AudioMP3); // Music/MP3
|
||||||
|
AddCategoryMapping(280, TorznabCatType.PCPhoneOther); // HandHeld
|
||||||
|
AddCategoryMapping(620, TorznabCatType.TVSD); // TV/SD
|
||||||
|
AddCategoryMapping(320, TorznabCatType.MoviesOther); // REMUX
|
||||||
|
AddCategoryMapping(400, TorznabCatType.MoviesSD); // Movies/SD
|
||||||
|
AddCategoryMapping(240, TorznabCatType.ConsolePS3); // Games/PS3
|
||||||
|
AddCategoryMapping(150, TorznabCatType.PC0day); // Apps/misc
|
||||||
|
AddCategoryMapping(480, TorznabCatType.AudioLossless); // Music/FLAC
|
||||||
|
AddCategoryMapping(180, TorznabCatType.BooksEbook); // eBooks
|
||||||
|
AddCategoryMapping(700, TorznabCatType.TVOTHER); // TV/DVDrip
|
||||||
|
AddCategoryMapping(970, TorznabCatType.MoviesBluRay); // Full Blu-ray
|
||||||
|
AddCategoryMapping(350, TorznabCatType.MoviesDVD); // Movies/DVD-R
|
||||||
|
AddCategoryMapping(260, TorznabCatType.ConsoleXbox360); // Games/Xbox360
|
||||||
|
AddCategoryMapping(500, TorznabCatType.AudioVideo); // Music/Videos
|
||||||
|
AddCategoryMapping(181, TorznabCatType.AudioAudiobook); // AudioBooks
|
||||||
|
AddCategoryMapping(981, TorznabCatType.TVHD); // TV-HD Pack
|
||||||
|
AddCategoryMapping(850, TorznabCatType.TVAnime); // Anime
|
||||||
|
AddCategoryMapping(982, TorznabCatType.MoviesHD); // Movies-HD Pack
|
||||||
|
AddCategoryMapping(986, TorznabCatType.PCGames); // Games Pack
|
||||||
|
AddCategoryMapping(984, TorznabCatType.AudioMP3); // MP3 Pack
|
||||||
|
AddCategoryMapping(800, TorznabCatType.Other); // Misc
|
||||||
|
AddCategoryMapping(980, TorznabCatType.TVSD); // TV-SD Pack
|
||||||
|
AddCategoryMapping(983, TorznabCatType.TVSD); // Movies-SD Pack
|
||||||
|
AddCategoryMapping(985, TorznabCatType.AudioLossless); // FLAC Pack
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
|
public async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
|
||||||
@@ -69,8 +99,29 @@ namespace Jackett.Indexers
|
|||||||
{
|
{
|
||||||
var releases = new List<ReleaseInfo>();
|
var releases = new List<ReleaseInfo>();
|
||||||
var searchString = query.GetQueryString();
|
var searchString = query.GetQueryString();
|
||||||
var episodeSearchUrl = string.Format(SearchUrl, HttpUtility.UrlEncode(searchString));
|
|
||||||
var results = await RequestStringWithCookiesAndRetry(episodeSearchUrl);
|
var searchUrl = SearchUrl;
|
||||||
|
var queryCollection = new NameValueCollection();
|
||||||
|
queryCollection.Add("release_type", "both");
|
||||||
|
queryCollection.Add("searchtags", "");
|
||||||
|
queryCollection.Add("tags_type", "0");
|
||||||
|
queryCollection.Add("order_by", "s3");
|
||||||
|
queryCollection.Add("order_way", "desc");
|
||||||
|
queryCollection.Add("torrent_preset", "all");
|
||||||
|
|
||||||
|
if (!string.IsNullOrWhiteSpace(searchString))
|
||||||
|
{
|
||||||
|
queryCollection.Add("searchstr", searchString);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var cat in MapTorznabCapsToTrackers(query))
|
||||||
|
{
|
||||||
|
queryCollection.Add("filter_cat["+cat+"]", "1");
|
||||||
|
}
|
||||||
|
|
||||||
|
searchUrl += "?" + queryCollection.GetQueryString();
|
||||||
|
|
||||||
|
var results = await RequestStringWithCookiesAndRetry(searchUrl);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
CQ dom = results.Content;
|
CQ dom = results.Content;
|
||||||
@@ -102,6 +153,10 @@ namespace Jackett.Indexers
|
|||||||
release.DownloadVolumeFactor = 0; // ratioless
|
release.DownloadVolumeFactor = 0; // ratioless
|
||||||
release.UploadVolumeFactor = 1;
|
release.UploadVolumeFactor = 1;
|
||||||
|
|
||||||
|
var qCat = qRow.Find("a[href^=\"torrents.php?filter_cat\"]");
|
||||||
|
var cat = qCat.Attr("href").Split('[')[1].Split(']')[0];
|
||||||
|
release.Category = MapTrackerCatToNewznab(cat);
|
||||||
|
|
||||||
releases.Add(release);
|
releases.Add(release);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user