mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-17 17:34:09 +02:00
Prefilter couchpoato results
This commit is contained in:
@@ -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);
|
||||||
|
@@ -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,
|
||||||
|
@@ -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,
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -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,
|
||||||
|
@@ -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,
|
||||||
|
@@ -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,
|
||||||
|
@@ -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,
|
||||||
|
@@ -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,
|
||||||
|
@@ -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,
|
||||||
|
@@ -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,
|
||||||
|
@@ -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,
|
||||||
|
@@ -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,
|
||||||
|
@@ -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,
|
||||||
|
@@ -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,
|
||||||
|
@@ -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,
|
||||||
|
@@ -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,
|
||||||
|
@@ -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,
|
||||||
|
@@ -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,
|
||||||
|
@@ -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,
|
||||||
|
@@ -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,
|
||||||
|
@@ -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,
|
||||||
|
@@ -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,
|
||||||
|
@@ -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,
|
||||||
|
@@ -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,
|
||||||
|
@@ -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,
|
||||||
|
@@ -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,
|
||||||
|
@@ -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,
|
||||||
|
@@ -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,
|
||||||
|
@@ -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,
|
||||||
|
@@ -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,
|
||||||
|
@@ -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,
|
||||||
|
@@ -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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user