mirror of
https://github.com/SickGear/SickGear.git
synced 2025-01-05 17:43:37 +00:00
Merge pull request #363 from JackDandy/feature/RemoveEZRSS
Remove EZRSS provider.
This commit is contained in:
commit
4fa6b15a06
7 changed files with 7 additions and 186 deletions
|
@ -1,4 +1,5 @@
|
|||
### 0.10.0 (2015-xx-xx xx:xx:xx UTC)
|
||||
* Remove EZRSS provider
|
||||
|
||||
|
||||
### 0.9.0 (2015-05-18 14:33:00 UTC)
|
||||
|
|
|
@ -110,7 +110,6 @@
|
|||
<a href="<%= anon_url(curProvider.url) %>" class="imgLink" rel="noreferrer" onclick="window.open(this.href, '_blank'); return false;"><img src="$sbRoot/images/providers/$curProvider.imageName()" alt="$curProvider.name" title="$curProvider.name" width="16" height="16" style="vertical-align:middle;"/></a>
|
||||
<span style="vertical-align:middle;">$curProvider.name</span>
|
||||
<%= '*' if not curProvider.supportsBacklog else '' %>
|
||||
<%= '**' if 'EZRSS' == curProvider.name else '' %>
|
||||
<span class="ui-icon ui-icon-arrowthick-2-n-s pull-right" style="margin-top:3px"></span>
|
||||
</li>
|
||||
#end for
|
||||
|
|
|
@ -35,7 +35,7 @@ import sickbeard
|
|||
sys.path.append(os.path.abspath('../lib'))
|
||||
from sickbeard import providers, metadata, config, webserveInit
|
||||
from sickbeard.providers.generic import GenericProvider
|
||||
from providers import ezrss, btn, newznab, womble, thepiratebay, torrentleech, kat, iptorrents, \
|
||||
from providers import btn, newznab, womble, thepiratebay, torrentleech, kat, iptorrents, \
|
||||
omgwtfnzbs, scc, hdtorrents, torrentday, hdbits, nextgen, speedcd, nyaatorrents, torrentbytes, \
|
||||
freshontv, bitsoup, tokyotoshokan, animenzb, totv
|
||||
from sickbeard.config import CheckSection, check_setting_int, check_setting_str, check_setting_float, ConfigMigrator, \
|
||||
|
|
|
@ -562,21 +562,15 @@ def get_all_episodes_from_absolute_number(show, absolute_numbers, indexer_id=Non
|
|||
return (season, episodes)
|
||||
|
||||
|
||||
def sanitizeSceneName(name, ezrss=False):
|
||||
def sanitizeSceneName(name):
|
||||
"""
|
||||
Takes a show name and returns the "scenified" version of it.
|
||||
|
||||
ezrss: If true the scenified version will follow EZRSS's cracksmoker rules as best as possible
|
||||
|
||||
Returns: A string containing the scene version of the show name given.
|
||||
"""
|
||||
|
||||
if name:
|
||||
if not ezrss:
|
||||
bad_chars = u",:()'!?\u2019"
|
||||
# ezrss leaves : and ! in their show names as far as I can tell
|
||||
else:
|
||||
bad_chars = u",()'?\u2019"
|
||||
bad_chars = u",:()'!?\u2019"
|
||||
|
||||
# strip out any bad chars
|
||||
for x in bad_chars:
|
||||
|
|
|
@ -16,8 +16,7 @@
|
|||
# You should have received a copy of the GNU General Public License
|
||||
# along with SickGear. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
__all__ = ['ezrss',
|
||||
'womble',
|
||||
__all__ = ['womble',
|
||||
'btn',
|
||||
'thepiratebay',
|
||||
'kat',
|
||||
|
|
|
@ -1,172 +0,0 @@
|
|||
# Author: Nic Wolfe <nic@wolfeden.ca>
|
||||
# URL: http://code.google.com/p/sickbeard/
|
||||
#
|
||||
# This file is part of SickGear.
|
||||
#
|
||||
# SickGear is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# SickGear is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with SickGear. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import urllib
|
||||
import re
|
||||
|
||||
try:
|
||||
import xml.etree.cElementTree as etree
|
||||
except ImportError:
|
||||
import elementtree.ElementTree as etree
|
||||
|
||||
import generic
|
||||
from sickbeard.common import Quality
|
||||
from sickbeard import logger, tvcache, helpers
|
||||
|
||||
|
||||
class EZRSSProvider(generic.TorrentProvider):
|
||||
def __init__(self):
|
||||
generic.TorrentProvider.__init__(self, 'EZRSS', True, False)
|
||||
self.ratio = None
|
||||
self.cache = EZRSSCache(self)
|
||||
self.url = 'https://www.ezrss.it/'
|
||||
|
||||
def getQuality(self, item, anime=False):
|
||||
|
||||
filename = item.filename
|
||||
quality = Quality.sceneQuality(filename, anime)
|
||||
|
||||
return quality
|
||||
|
||||
def findSearchResults(self, show, episodes, search_mode, manualSearch=False):
|
||||
|
||||
self.show = show
|
||||
|
||||
results = {}
|
||||
|
||||
if show.air_by_date or show.sports:
|
||||
logger.log(self.name + u" doesn't support air-by-date or sports backloging because of limitations on their RSS search.",
|
||||
logger.WARNING)
|
||||
return results
|
||||
|
||||
results = generic.TorrentProvider.findSearchResults(self, show, episodes, search_mode, manualSearch)
|
||||
|
||||
return results
|
||||
|
||||
def _get_season_search_strings(self, ep_obj):
|
||||
|
||||
params = {}
|
||||
|
||||
params['show_name'] = helpers.sanitizeSceneName(self.show.name, ezrss=True).replace('.', ' ').encode('utf-8')
|
||||
|
||||
if ep_obj.show.air_by_date or ep_obj.show.sports:
|
||||
params['season'] = str(ep_obj.airdate).split('-')[0]
|
||||
elif ep_obj.show.anime:
|
||||
params['season'] = "%d" % ep_obj.scene_absolute_number
|
||||
else:
|
||||
params['season'] = ep_obj.scene_season
|
||||
|
||||
return [params]
|
||||
|
||||
def _get_episode_search_strings(self, ep_obj, add_string=''):
|
||||
|
||||
params = {}
|
||||
|
||||
if not ep_obj:
|
||||
return params
|
||||
|
||||
params['show_name'] = helpers.sanitizeSceneName(self.show.name, ezrss=True).replace('.', ' ').encode('utf-8')
|
||||
|
||||
if self.show.air_by_date or self.show.sports:
|
||||
params['date'] = str(ep_obj.airdate)
|
||||
elif self.show.anime:
|
||||
params['episode'] = "%i" % int(ep_obj.scene_absolute_number)
|
||||
else:
|
||||
params['season'] = ep_obj.scene_season
|
||||
params['episode'] = ep_obj.scene_episode
|
||||
|
||||
return [params]
|
||||
|
||||
def _doSearch(self, search_params, search_mode='eponly', epcount=0, age=0):
|
||||
|
||||
params = {"mode": "rss"}
|
||||
|
||||
if search_params:
|
||||
params.update(search_params)
|
||||
|
||||
search_url = self.url + 'search/index.php?' + urllib.urlencode(params)
|
||||
|
||||
logger.log(u"Search string: " + search_url, logger.DEBUG)
|
||||
|
||||
data = self.cache.getRSSFeed(search_url)
|
||||
|
||||
if not data:
|
||||
return []
|
||||
|
||||
items = data.entries
|
||||
|
||||
results = []
|
||||
for curItem in items:
|
||||
|
||||
(title, url) = self._get_title_and_url(curItem)
|
||||
|
||||
if title and url:
|
||||
logger.log(u"RSS Feed provider: [" + self.name + "] Attempting to add item to cache: " + title, logger.DEBUG)
|
||||
results.append(curItem)
|
||||
else:
|
||||
logger.log(
|
||||
u"The XML returned from the " + self.name + " RSS feed is incomplete, this result is unusable",
|
||||
logger.ERROR)
|
||||
|
||||
return results
|
||||
|
||||
def _get_title_and_url(self, item):
|
||||
(title, url) = generic.TorrentProvider._get_title_and_url(self, item)
|
||||
|
||||
filename = item.filename
|
||||
if filename:
|
||||
new_title = self._extract_name_from_filename(filename)
|
||||
if new_title:
|
||||
title = new_title
|
||||
logger.log(u"Extracted the name " + title + " from the torrent link", logger.DEBUG)
|
||||
|
||||
return (title, url)
|
||||
|
||||
def _extract_name_from_filename(self, filename):
|
||||
name_regex = '(.*?)\.?(\[.*]|\d+\.TPB)\.torrent$'
|
||||
logger.log(u"Comparing " + name_regex + " against " + filename, logger.DEBUG)
|
||||
match = re.match(name_regex, filename, re.I)
|
||||
if match:
|
||||
return match.group(1)
|
||||
return None
|
||||
|
||||
def seedRatio(self):
|
||||
return self.ratio
|
||||
|
||||
|
||||
class EZRSSCache(tvcache.TVCache):
|
||||
def __init__(self, provider):
|
||||
|
||||
tvcache.TVCache.__init__(self, provider)
|
||||
|
||||
# only poll EZRSS every 15 minutes max
|
||||
self.minTime = 15
|
||||
|
||||
def _getRSSData(self):
|
||||
|
||||
rss_url = self.provider.url + 'feed/'
|
||||
logger.log(self.provider.name + " cache update URL: " + rss_url, logger.DEBUG)
|
||||
|
||||
data = self.getRSSFeed(rss_url)
|
||||
|
||||
if data and 'entries' in data:
|
||||
return data.entries
|
||||
else:
|
||||
return []
|
||||
|
||||
provider = EZRSSProvider()
|
|
@ -433,7 +433,7 @@ def searchForNeededEpisodes(episodes):
|
|||
if curEp in foundResults and bestResult.quality <= foundResults[curEp].quality:
|
||||
continue
|
||||
|
||||
# filter out possible bad torrents from providers such as ezrss
|
||||
# filter out possible bad torrents from providers
|
||||
if bestResult.resultType == "torrent" and sickbeard.TORRENT_METHOD != "blackhole":
|
||||
bestResult.content = None
|
||||
if not bestResult.url.startswith('magnet'):
|
||||
|
@ -704,7 +704,7 @@ def searchProviders(show, episodes, manualSearch=False):
|
|||
if not bestResult:
|
||||
continue
|
||||
|
||||
# filter out possible bad torrents from providers such as ezrss
|
||||
# filter out possible bad torrents from providers
|
||||
if bestResult.resultType == "torrent" and sickbeard.TORRENT_METHOD != "blackhole":
|
||||
bestResult.content = None
|
||||
if not bestResult.url.startswith('magnet'):
|
||||
|
|
Loading…
Reference in a new issue