mirror of https://github.com/Jackett/Jackett
Prefilter couchpoato results
This commit is contained in:
parent
2766976c47
commit
e007d321f6
|
@ -65,6 +65,8 @@ namespace Jackett.Controllers
|
|||
return Request.CreateResponse(HttpStatusCode.Forbidden, "This indexer does not support movies.");
|
||||
}
|
||||
|
||||
var year = 0;
|
||||
|
||||
if (string.IsNullOrWhiteSpace(request.search))
|
||||
{
|
||||
// We are searching by IMDB id so look up the name
|
||||
|
@ -75,6 +77,7 @@ namespace Jackett.Controllers
|
|||
if (result["Title"] != null)
|
||||
{
|
||||
request.search = result["Title"].ToString();
|
||||
year = ParseUtil.CoerceInt(result["Year"].ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -103,7 +106,9 @@ namespace Jackett.Controllers
|
|||
var serverUrl = string.Format("{0}://{1}:{2}/", Request.RequestUri.Scheme, Request.RequestUri.Host, Request.RequestUri.Port);
|
||||
var potatoResponse = new TorrentPotatoResponse();
|
||||
|
||||
foreach(var r in releases)
|
||||
releases = TorznabUtil.FilterResultsToTitle(releases, torznabQuery.SanitizedSearchTerm, year);
|
||||
|
||||
foreach (var r in releases)
|
||||
{
|
||||
var release = Mapper.Map<ReleaseInfo>(r);
|
||||
release.Link = release.ConvertToProxyLink(serverUrl, indexerID);
|
||||
|
|
|
@ -30,7 +30,7 @@ namespace Jackett.Indexers
|
|||
: base(name: "AlphaRatio",
|
||||
description: "Legendary",
|
||||
link: "https://alpharatio.cc/",
|
||||
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(),
|
||||
caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
|
||||
manager: i,
|
||||
client: w,
|
||||
logger: l,
|
||||
|
|
|
@ -37,7 +37,7 @@ namespace Jackett.Indexers
|
|||
: base(name: "bB",
|
||||
description: "bB",
|
||||
link: "http://www.reddit.com/r/baconbits/",
|
||||
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(),
|
||||
caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
|
||||
manager: i,
|
||||
client: w,
|
||||
logger: l,
|
||||
|
|
|
@ -57,7 +57,7 @@ namespace Jackett.Indexers
|
|||
this.configData = configData;
|
||||
|
||||
if (caps == null)
|
||||
caps = TorznabCapsUtil.CreateDefaultTorznabTVCaps();
|
||||
caps = TorznabUtil.CreateDefaultTorznabTVCaps();
|
||||
TorznabCaps = caps;
|
||||
|
||||
}
|
||||
|
|
|
@ -33,7 +33,7 @@ namespace Jackett.Indexers
|
|||
: base(name: "BeyondHD",
|
||||
description: "Without BeyondHD, your HDTV is just a TV",
|
||||
link: "https://beyondhd.me/",
|
||||
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(),
|
||||
caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
|
||||
manager: i,
|
||||
client: w,
|
||||
logger: l,
|
||||
|
|
|
@ -34,7 +34,7 @@ namespace Jackett.Indexers
|
|||
: base(name: "BIT-HDTV",
|
||||
description: "Home of high definition invites",
|
||||
link: "https://www.bit-hdtv.com/",
|
||||
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(),
|
||||
caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
|
||||
manager: i,
|
||||
client: w,
|
||||
logger: l,
|
||||
|
|
|
@ -36,7 +36,7 @@ namespace Jackett.Indexers
|
|||
: base(name: "BitMeTV",
|
||||
description: "TV Episode specialty tracker",
|
||||
link: "http://www.bitmetv.org/",
|
||||
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(),
|
||||
caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
|
||||
manager: i,
|
||||
client: c,
|
||||
logger: l,
|
||||
|
|
|
@ -31,7 +31,7 @@ namespace Jackett.Indexers
|
|||
: base(name: "Demonoid",
|
||||
description: "Demonoid",
|
||||
link: "http://www.demonoid.pw/",
|
||||
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(),
|
||||
caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
|
||||
manager: i,
|
||||
client: wc,
|
||||
logger: l,
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace Jackett.Indexers
|
|||
: base(name: "FrenchTorrentDb",
|
||||
description: "One the biggest French Torrent Tracker",
|
||||
link: "http://www.frenchtorrentdb.com/",
|
||||
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(),
|
||||
caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
|
||||
manager: i,
|
||||
client: c,
|
||||
logger: l,
|
||||
|
|
|
@ -37,7 +37,7 @@ namespace Jackett.Indexers
|
|||
: base(name: "FreshOnTV",
|
||||
description: "Our goal is to provide the latest stuff in the TV show domain",
|
||||
link: "https://freshon.tv/",
|
||||
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(),
|
||||
caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
|
||||
manager: i,
|
||||
client: c,
|
||||
logger: l,
|
||||
|
|
|
@ -32,7 +32,7 @@ namespace Jackett.Indexers
|
|||
: base(name: "HD-Space",
|
||||
description: "Sharing The Universe",
|
||||
link: "https://hd-space.org/",
|
||||
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(),
|
||||
caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
|
||||
manager: i,
|
||||
client: wc,
|
||||
logger: l,
|
||||
|
|
|
@ -34,7 +34,7 @@ namespace Jackett.Indexers
|
|||
: base(name: "HD-Torrents",
|
||||
description: "HD-Torrents is a private torrent website with HD torrents and strict rules on their content.",
|
||||
link: "http://hdts.ru/",// Of the accessible domains the .ru seems the most reliable. https://hdts.ru | https://hd-torrents.org | https://hd-torrents.net | https://hd-torrents.me
|
||||
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(),
|
||||
caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
|
||||
manager: i,
|
||||
client: w,
|
||||
logger: l,
|
||||
|
|
|
@ -33,7 +33,7 @@ namespace Jackett.Indexers
|
|||
: base(name: "IPTorrents",
|
||||
description: "Always a step ahead.",
|
||||
link: "https://iptorrents.com/",
|
||||
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(),
|
||||
caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
|
||||
manager: i,
|
||||
client: wc,
|
||||
logger: l,
|
||||
|
|
|
@ -34,7 +34,7 @@ namespace Jackett.Indexers
|
|||
: base(name: "ImmortalSeed",
|
||||
description: "ImmortalSeed",
|
||||
link: "http://immortalseed.me/",
|
||||
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(),
|
||||
caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
|
||||
manager: i,
|
||||
client: wc,
|
||||
logger: l,
|
||||
|
|
|
@ -35,7 +35,7 @@ namespace Jackett.Indexers
|
|||
: base(name: "MoreThanTV",
|
||||
description: "ROMANIAN Private Torrent Tracker for TV / MOVIES, and the internal tracker for the release group DRACULA.",
|
||||
link: "https://www.morethan.tv/",
|
||||
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(),
|
||||
caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
|
||||
manager: i,
|
||||
client: c,
|
||||
logger: l,
|
||||
|
|
|
@ -31,7 +31,7 @@ namespace Jackett.Indexers
|
|||
: base(name: "PreToMe",
|
||||
description: "BitTorrent site for High Quality, High Definition (HD) movies and TV Shows",
|
||||
link: "https://pretome.info/",
|
||||
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(),
|
||||
caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
|
||||
client: wc,
|
||||
manager: i,
|
||||
logger: l,
|
||||
|
|
|
@ -33,7 +33,7 @@ namespace Jackett.Indexers
|
|||
: base(name: "PrivateHD",
|
||||
description: "BitTorrent site for High Quality, High Definition (HD) movies and TV Shows",
|
||||
link: "https://privatehd.to/",
|
||||
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(),
|
||||
caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
|
||||
manager: i,
|
||||
client: wc,
|
||||
logger: l,
|
||||
|
|
|
@ -36,7 +36,7 @@ namespace Jackett.Indexers
|
|||
: base(name: "RUTor",
|
||||
description: "Свободный торрент трекер",
|
||||
link: "http://rutor.org/",
|
||||
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(),
|
||||
caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
|
||||
manager: i,
|
||||
client: wc,
|
||||
logger: l,
|
||||
|
|
|
@ -31,7 +31,7 @@ namespace Jackett.Indexers
|
|||
: base(name: "SceneAccess",
|
||||
description: "Your gateway to the scene",
|
||||
link: "https://sceneaccess.eu/",
|
||||
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(),
|
||||
caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
|
||||
manager: i,
|
||||
client: c,
|
||||
logger: l,
|
||||
|
|
|
@ -34,7 +34,7 @@ namespace Jackett.Indexers
|
|||
: base(name: "SceneTime",
|
||||
description: "Always on time",
|
||||
link: "https://www.scenetime.com/",
|
||||
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(),
|
||||
caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
|
||||
manager: i,
|
||||
client: w,
|
||||
logger: l,
|
||||
|
|
|
@ -40,7 +40,7 @@ namespace Jackett.Indexers
|
|||
: base(name: "ShowRSS",
|
||||
description: "showRSS is a service that allows you to keep track of your favorite TV shows",
|
||||
link: defaultSiteLink,
|
||||
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(),
|
||||
caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
|
||||
manager: i,
|
||||
client: wc,
|
||||
logger: l,
|
||||
|
|
|
@ -37,7 +37,7 @@ namespace Jackett.Indexers
|
|||
: base(name: "Speed.cd",
|
||||
description: "Your home now!",
|
||||
link: "http://speed.cd/",
|
||||
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(),
|
||||
caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
|
||||
manager: i,
|
||||
client: wc,
|
||||
logger: l,
|
||||
|
|
|
@ -41,7 +41,7 @@ namespace Jackett.Indexers
|
|||
: base(name: "Strike",
|
||||
description: "Torrent search engine",
|
||||
link: defaultSiteLink,
|
||||
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(),
|
||||
caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
|
||||
manager: i,
|
||||
client: wc,
|
||||
logger: l,
|
||||
|
|
|
@ -39,7 +39,7 @@ namespace Jackett.Indexers
|
|||
: base(name: "T411",
|
||||
description: "French Torrent Tracker",
|
||||
link: "http://www.t411.io/",
|
||||
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(),
|
||||
caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
|
||||
manager: i,
|
||||
client: wc,
|
||||
logger: l,
|
||||
|
|
|
@ -40,7 +40,7 @@ namespace Jackett.Indexers
|
|||
: base(name: "TV Chaos",
|
||||
description: "Total Chaos",
|
||||
link: "https://tvchaosuk.com/",
|
||||
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(),
|
||||
caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
|
||||
manager: i,
|
||||
client: wc,
|
||||
logger: l,
|
||||
|
|
|
@ -41,7 +41,7 @@ namespace Jackett.Indexers
|
|||
: base(name: "The Pirate Bay",
|
||||
description: "The worlds largest bittorrent indexer",
|
||||
link: defaultSiteLink,
|
||||
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(),
|
||||
caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
|
||||
manager: i,
|
||||
client: wc,
|
||||
logger: l,
|
||||
|
|
|
@ -34,7 +34,7 @@ namespace Jackett.Indexers
|
|||
: base(name: "TorrentBytes",
|
||||
description: "A decade of torrentbytes",
|
||||
link: "https://www.torrentbytes.net/",
|
||||
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(),
|
||||
caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
|
||||
manager: i,
|
||||
client: wc,
|
||||
logger: l,
|
||||
|
|
|
@ -35,7 +35,7 @@ namespace Jackett.Indexers
|
|||
: base(name: "TorrentDay",
|
||||
description: "TorrentDay",
|
||||
link: "https://torrentday.eu/",
|
||||
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(),
|
||||
caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
|
||||
manager: i,
|
||||
client: wc,
|
||||
logger: l,
|
||||
|
|
|
@ -33,7 +33,7 @@ namespace Jackett.Indexers
|
|||
: base(name: "TorrentLeech",
|
||||
description: "This is what happens when you seed",
|
||||
link: "http://www.torrentleech.org/",
|
||||
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(),
|
||||
caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
|
||||
manager: i,
|
||||
client: wc,
|
||||
logger: l,
|
||||
|
|
|
@ -33,7 +33,7 @@ namespace Jackett.Indexers
|
|||
: base(name: "TorrentShack",
|
||||
description: "TorrentShack",
|
||||
link: "http://torrentshack.me/",
|
||||
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(),
|
||||
caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
|
||||
client: wc,
|
||||
manager: i,
|
||||
logger: l,
|
||||
|
|
|
@ -41,7 +41,7 @@ namespace Jackett.Indexers
|
|||
: base(name: "Torrentz",
|
||||
description: "Torrentz is a meta-search engine and a Multisearch. This means we just search other search engines.",
|
||||
link: defaultSiteLink,
|
||||
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(),
|
||||
caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
|
||||
manager: i,
|
||||
client: wc,
|
||||
logger: l,
|
||||
|
|
|
@ -34,7 +34,7 @@ namespace Jackett.Indexers
|
|||
: base(name: "nCore",
|
||||
description: "A Hungarian private torrent site.",
|
||||
link: "https://ncore.cc/",
|
||||
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(),
|
||||
caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
|
||||
manager: i,
|
||||
client: wc,
|
||||
logger: l,
|
||||
|
|
|
@ -3,12 +3,15 @@ using System;
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Jackett.Utils
|
||||
{
|
||||
public static class TorznabCapsUtil
|
||||
public class TorznabUtil
|
||||
{
|
||||
static Regex reduceSpacesRegex = new Regex("\\s{2,}", RegexOptions.Compiled);
|
||||
|
||||
public static TorznabCapabilities CreateDefaultTorznabTVCaps()
|
||||
{
|
||||
var caps = new TorznabCapabilities();
|
||||
|
@ -19,5 +22,32 @@ namespace Jackett.Utils
|
|||
});
|
||||
return caps;
|
||||
}
|
||||
|
||||
public static IEnumerable<ReleaseInfo> FilterResultsToTitle(IEnumerable<ReleaseInfo> results, string name, int year)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(name))
|
||||
return results;
|
||||
|
||||
name = CleanTitle(name);
|
||||
var filteredResults = new List<ReleaseInfo>();
|
||||
foreach (var result in results)
|
||||
{
|
||||
if (result.Title == null)
|
||||
continue;
|
||||
if (CleanTitle(result.Title).Contains(name) &&
|
||||
(year ==0 || result.Title.Contains(year.ToString())))
|
||||
{
|
||||
filteredResults.Add(result);
|
||||
}
|
||||
}
|
||||
|
||||
return filteredResults;
|
||||
}
|
||||
|
||||
private static string CleanTitle(string title)
|
||||
{
|
||||
title = title.Replace(':', ' ').Replace('.', ' ').Replace('-', ' ').Replace('_', ' ').Replace('+', ' ');
|
||||
return reduceSpacesRegex.Replace(title, " ").ToLowerInvariant();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue