Prefilter couchpoato results

This commit is contained in:
KZ 2015-08-11 19:48:25 +01:00
parent 2766976c47
commit e007d321f6
33 changed files with 68 additions and 33 deletions

View File

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

View File

@ -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,

View File

@ -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,

View File

@ -57,7 +57,7 @@ namespace Jackett.Indexers
this.configData = configData;
if (caps == null)
caps = TorznabCapsUtil.CreateDefaultTorznabTVCaps();
caps = TorznabUtil.CreateDefaultTorznabTVCaps();
TorznabCaps = caps;
}

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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();
}
}
}