Prefilter couchpoato results

This commit is contained in:
Kayomani
2015-08-11 19:48:25 +01:00
parent 79a51eb21a
commit d7bfedc3ef
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."); return Request.CreateResponse(HttpStatusCode.Forbidden, "This indexer does not support movies.");
} }
var year = 0;
if (string.IsNullOrWhiteSpace(request.search)) if (string.IsNullOrWhiteSpace(request.search))
{ {
// We are searching by IMDB id so look up the name // We are searching by IMDB id so look up the name
@@ -75,6 +77,7 @@ namespace Jackett.Controllers
if (result["Title"] != null) if (result["Title"] != null)
{ {
request.search = result["Title"].ToString(); request.search = result["Title"].ToString();
year = ParseUtil.CoerceInt(result["Year"].ToString());
} }
} }
} }
@@ -103,6 +106,8 @@ namespace Jackett.Controllers
var serverUrl = string.Format("{0}://{1}:{2}/", Request.RequestUri.Scheme, Request.RequestUri.Host, Request.RequestUri.Port); var serverUrl = string.Format("{0}://{1}:{2}/", Request.RequestUri.Scheme, Request.RequestUri.Host, Request.RequestUri.Port);
var potatoResponse = new TorrentPotatoResponse(); var potatoResponse = new TorrentPotatoResponse();
releases = TorznabUtil.FilterResultsToTitle(releases, torznabQuery.SanitizedSearchTerm, year);
foreach (var r in releases) foreach (var r in releases)
{ {
var release = Mapper.Map<ReleaseInfo>(r); var release = Mapper.Map<ReleaseInfo>(r);

View File

@@ -30,7 +30,7 @@ namespace Jackett.Indexers
: base(name: "AlphaRatio", : base(name: "AlphaRatio",
description: "Legendary", description: "Legendary",
link: "https://alpharatio.cc/", link: "https://alpharatio.cc/",
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(), caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
manager: i, manager: i,
client: w, client: w,
logger: l, logger: l,

View File

@@ -37,7 +37,7 @@ namespace Jackett.Indexers
: base(name: "bB", : base(name: "bB",
description: "bB", description: "bB",
link: "http://www.reddit.com/r/baconbits/", link: "http://www.reddit.com/r/baconbits/",
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(), caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
manager: i, manager: i,
client: w, client: w,
logger: l, logger: l,

View File

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

View File

@@ -33,7 +33,7 @@ namespace Jackett.Indexers
: base(name: "BeyondHD", : base(name: "BeyondHD",
description: "Without BeyondHD, your HDTV is just a TV", description: "Without BeyondHD, your HDTV is just a TV",
link: "https://beyondhd.me/", link: "https://beyondhd.me/",
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(), caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
manager: i, manager: i,
client: w, client: w,
logger: l, logger: l,

View File

@@ -34,7 +34,7 @@ namespace Jackett.Indexers
: base(name: "BIT-HDTV", : base(name: "BIT-HDTV",
description: "Home of high definition invites", description: "Home of high definition invites",
link: "https://www.bit-hdtv.com/", link: "https://www.bit-hdtv.com/",
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(), caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
manager: i, manager: i,
client: w, client: w,
logger: l, logger: l,

View File

@@ -36,7 +36,7 @@ namespace Jackett.Indexers
: base(name: "BitMeTV", : base(name: "BitMeTV",
description: "TV Episode specialty tracker", description: "TV Episode specialty tracker",
link: "http://www.bitmetv.org/", link: "http://www.bitmetv.org/",
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(), caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
manager: i, manager: i,
client: c, client: c,
logger: l, logger: l,

View File

@@ -31,7 +31,7 @@ namespace Jackett.Indexers
: base(name: "Demonoid", : base(name: "Demonoid",
description: "Demonoid", description: "Demonoid",
link: "http://www.demonoid.pw/", link: "http://www.demonoid.pw/",
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(), caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
manager: i, manager: i,
client: wc, client: wc,
logger: l, logger: l,

View File

@@ -28,7 +28,7 @@ namespace Jackett.Indexers
: base(name: "FrenchTorrentDb", : base(name: "FrenchTorrentDb",
description: "One the biggest French Torrent Tracker", description: "One the biggest French Torrent Tracker",
link: "http://www.frenchtorrentdb.com/", link: "http://www.frenchtorrentdb.com/",
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(), caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
manager: i, manager: i,
client: c, client: c,
logger: l, logger: l,

View File

@@ -37,7 +37,7 @@ namespace Jackett.Indexers
: base(name: "FreshOnTV", : base(name: "FreshOnTV",
description: "Our goal is to provide the latest stuff in the TV show domain", description: "Our goal is to provide the latest stuff in the TV show domain",
link: "https://freshon.tv/", link: "https://freshon.tv/",
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(), caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
manager: i, manager: i,
client: c, client: c,
logger: l, logger: l,

View File

@@ -32,7 +32,7 @@ namespace Jackett.Indexers
: base(name: "HD-Space", : base(name: "HD-Space",
description: "Sharing The Universe", description: "Sharing The Universe",
link: "https://hd-space.org/", link: "https://hd-space.org/",
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(), caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
manager: i, manager: i,
client: wc, client: wc,
logger: l, logger: l,

View File

@@ -34,7 +34,7 @@ namespace Jackett.Indexers
: base(name: "HD-Torrents", : base(name: "HD-Torrents",
description: "HD-Torrents is a private torrent website with HD torrents and strict rules on their content.", 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 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, manager: i,
client: w, client: w,
logger: l, logger: l,

View File

@@ -33,7 +33,7 @@ namespace Jackett.Indexers
: base(name: "IPTorrents", : base(name: "IPTorrents",
description: "Always a step ahead.", description: "Always a step ahead.",
link: "https://iptorrents.com/", link: "https://iptorrents.com/",
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(), caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
manager: i, manager: i,
client: wc, client: wc,
logger: l, logger: l,

View File

@@ -34,7 +34,7 @@ namespace Jackett.Indexers
: base(name: "ImmortalSeed", : base(name: "ImmortalSeed",
description: "ImmortalSeed", description: "ImmortalSeed",
link: "http://immortalseed.me/", link: "http://immortalseed.me/",
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(), caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
manager: i, manager: i,
client: wc, client: wc,
logger: l, logger: l,

View File

@@ -35,7 +35,7 @@ namespace Jackett.Indexers
: base(name: "MoreThanTV", : base(name: "MoreThanTV",
description: "ROMANIAN Private Torrent Tracker for TV / MOVIES, and the internal tracker for the release group DRACULA.", description: "ROMANIAN Private Torrent Tracker for TV / MOVIES, and the internal tracker for the release group DRACULA.",
link: "https://www.morethan.tv/", link: "https://www.morethan.tv/",
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(), caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
manager: i, manager: i,
client: c, client: c,
logger: l, logger: l,

View File

@@ -31,7 +31,7 @@ namespace Jackett.Indexers
: base(name: "PreToMe", : base(name: "PreToMe",
description: "BitTorrent site for High Quality, High Definition (HD) movies and TV Shows", description: "BitTorrent site for High Quality, High Definition (HD) movies and TV Shows",
link: "https://pretome.info/", link: "https://pretome.info/",
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(), caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
client: wc, client: wc,
manager: i, manager: i,
logger: l, logger: l,

View File

@@ -33,7 +33,7 @@ namespace Jackett.Indexers
: base(name: "PrivateHD", : base(name: "PrivateHD",
description: "BitTorrent site for High Quality, High Definition (HD) movies and TV Shows", description: "BitTorrent site for High Quality, High Definition (HD) movies and TV Shows",
link: "https://privatehd.to/", link: "https://privatehd.to/",
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(), caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
manager: i, manager: i,
client: wc, client: wc,
logger: l, logger: l,

View File

@@ -36,7 +36,7 @@ namespace Jackett.Indexers
: base(name: "RUTor", : base(name: "RUTor",
description: "Свободный торрент трекер", description: "Свободный торрент трекер",
link: "http://rutor.org/", link: "http://rutor.org/",
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(), caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
manager: i, manager: i,
client: wc, client: wc,
logger: l, logger: l,

View File

@@ -31,7 +31,7 @@ namespace Jackett.Indexers
: base(name: "SceneAccess", : base(name: "SceneAccess",
description: "Your gateway to the scene", description: "Your gateway to the scene",
link: "https://sceneaccess.eu/", link: "https://sceneaccess.eu/",
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(), caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
manager: i, manager: i,
client: c, client: c,
logger: l, logger: l,

View File

@@ -34,7 +34,7 @@ namespace Jackett.Indexers
: base(name: "SceneTime", : base(name: "SceneTime",
description: "Always on time", description: "Always on time",
link: "https://www.scenetime.com/", link: "https://www.scenetime.com/",
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(), caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
manager: i, manager: i,
client: w, client: w,
logger: l, logger: l,

View File

@@ -40,7 +40,7 @@ namespace Jackett.Indexers
: base(name: "ShowRSS", : base(name: "ShowRSS",
description: "showRSS is a service that allows you to keep track of your favorite TV shows", description: "showRSS is a service that allows you to keep track of your favorite TV shows",
link: defaultSiteLink, link: defaultSiteLink,
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(), caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
manager: i, manager: i,
client: wc, client: wc,
logger: l, logger: l,

View File

@@ -37,7 +37,7 @@ namespace Jackett.Indexers
: base(name: "Speed.cd", : base(name: "Speed.cd",
description: "Your home now!", description: "Your home now!",
link: "http://speed.cd/", link: "http://speed.cd/",
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(), caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
manager: i, manager: i,
client: wc, client: wc,
logger: l, logger: l,

View File

@@ -41,7 +41,7 @@ namespace Jackett.Indexers
: base(name: "Strike", : base(name: "Strike",
description: "Torrent search engine", description: "Torrent search engine",
link: defaultSiteLink, link: defaultSiteLink,
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(), caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
manager: i, manager: i,
client: wc, client: wc,
logger: l, logger: l,

View File

@@ -39,7 +39,7 @@ namespace Jackett.Indexers
: base(name: "T411", : base(name: "T411",
description: "French Torrent Tracker", description: "French Torrent Tracker",
link: "http://www.t411.io/", link: "http://www.t411.io/",
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(), caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
manager: i, manager: i,
client: wc, client: wc,
logger: l, logger: l,

View File

@@ -40,7 +40,7 @@ namespace Jackett.Indexers
: base(name: "TV Chaos", : base(name: "TV Chaos",
description: "Total Chaos", description: "Total Chaos",
link: "https://tvchaosuk.com/", link: "https://tvchaosuk.com/",
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(), caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
manager: i, manager: i,
client: wc, client: wc,
logger: l, logger: l,

View File

@@ -41,7 +41,7 @@ namespace Jackett.Indexers
: base(name: "The Pirate Bay", : base(name: "The Pirate Bay",
description: "The worlds largest bittorrent indexer", description: "The worlds largest bittorrent indexer",
link: defaultSiteLink, link: defaultSiteLink,
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(), caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
manager: i, manager: i,
client: wc, client: wc,
logger: l, logger: l,

View File

@@ -34,7 +34,7 @@ namespace Jackett.Indexers
: base(name: "TorrentBytes", : base(name: "TorrentBytes",
description: "A decade of torrentbytes", description: "A decade of torrentbytes",
link: "https://www.torrentbytes.net/", link: "https://www.torrentbytes.net/",
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(), caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
manager: i, manager: i,
client: wc, client: wc,
logger: l, logger: l,

View File

@@ -35,7 +35,7 @@ namespace Jackett.Indexers
: base(name: "TorrentDay", : base(name: "TorrentDay",
description: "TorrentDay", description: "TorrentDay",
link: "https://torrentday.eu/", link: "https://torrentday.eu/",
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(), caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
manager: i, manager: i,
client: wc, client: wc,
logger: l, logger: l,

View File

@@ -33,7 +33,7 @@ namespace Jackett.Indexers
: base(name: "TorrentLeech", : base(name: "TorrentLeech",
description: "This is what happens when you seed", description: "This is what happens when you seed",
link: "http://www.torrentleech.org/", link: "http://www.torrentleech.org/",
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(), caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
manager: i, manager: i,
client: wc, client: wc,
logger: l, logger: l,

View File

@@ -33,7 +33,7 @@ namespace Jackett.Indexers
: base(name: "TorrentShack", : base(name: "TorrentShack",
description: "TorrentShack", description: "TorrentShack",
link: "http://torrentshack.me/", link: "http://torrentshack.me/",
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(), caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
client: wc, client: wc,
manager: i, manager: i,
logger: l, logger: l,

View File

@@ -41,7 +41,7 @@ namespace Jackett.Indexers
: base(name: "Torrentz", : base(name: "Torrentz",
description: "Torrentz is a meta-search engine and a Multisearch. This means we just search other search engines.", description: "Torrentz is a meta-search engine and a Multisearch. This means we just search other search engines.",
link: defaultSiteLink, link: defaultSiteLink,
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(), caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
manager: i, manager: i,
client: wc, client: wc,
logger: l, logger: l,

View File

@@ -34,7 +34,7 @@ namespace Jackett.Indexers
: base(name: "nCore", : base(name: "nCore",
description: "A Hungarian private torrent site.", description: "A Hungarian private torrent site.",
link: "https://ncore.cc/", link: "https://ncore.cc/",
caps: TorznabCapsUtil.CreateDefaultTorznabTVCaps(), caps: TorznabUtil.CreateDefaultTorznabTVCaps(),
manager: i, manager: i,
client: wc, client: wc,
logger: l, logger: l,

View File

@@ -3,12 +3,15 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace Jackett.Utils namespace Jackett.Utils
{ {
public static class TorznabCapsUtil public class TorznabUtil
{ {
static Regex reduceSpacesRegex = new Regex("\\s{2,}", RegexOptions.Compiled);
public static TorznabCapabilities CreateDefaultTorznabTVCaps() public static TorznabCapabilities CreateDefaultTorznabTVCaps()
{ {
var caps = new TorznabCapabilities(); var caps = new TorznabCapabilities();
@@ -19,5 +22,32 @@ namespace Jackett.Utils
}); });
return caps; 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();
}
} }
} }