diff --git a/gui/slick/views/config_providers.mako b/gui/slick/views/config_providers.mako index 45d91fe3aa20435e354705587304c11d90150598..40808db9b0d223fc52864c26f4467b9b0cfc0a23 100644 --- a/gui/slick/views/config_providers.mako +++ b/gui/slick/views/config_providers.mako @@ -76,10 +76,14 @@ $('#config-components').tabs(); continue curName = curProvider.getID() + if hasattr(curProvider, 'custom_url'): + curURL = curProvider.custom_url or curProvider.url + else: + curURL = curProvider.url %> <li class="ui-state-default ${('nzb-provider', 'torrent-provider')[bool(curProvider.providerType == "torrent")]}" id="${curName}"> <input type="checkbox" id="enable_${curName}" class="provider_enabler" ${('', 'checked="checked"')[curProvider.isEnabled() is True]}/> - <a href="${anon_url(curProvider.url)}" class="imgLink" rel="noreferrer" onclick="window.open(this.href, '_blank'); return false;"><img src="${srRoot}/images/providers/${curProvider.imageName()}" alt="${curProvider.name}" title="${curProvider.name}" width="16" height="16" style="vertical-align:middle;"/></a> + <a href="${anon_url(curURL)}" class="imgLink" rel="noreferrer" onclick="window.open(this.href, '_blank'); return false;"><img src="${srRoot}/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> ${('*', '')[bool(curProvider.supportsBacklog)]} <span class="ui-icon ui-icon-arrowthick-2-n-s pull-right" style="vertical-align:middle;"></span> @@ -313,7 +317,7 @@ $('#config-components').tabs(); <label> <span class="component-title"> </span> <span class="component-desc"> - <p>The URL should include the protocol and port (if applicable). Examples: http://192.168.1.4/ or http://localhost:3000/</p> + <p>The URL should include the protocol (and port if applicable). Examples: http://192.168.1.4/ or http://localhost:3000/</p> </span> </label> </div> diff --git a/sickbeard/config.py b/sickbeard/config.py index a8f38d3dd37e68cb64c68558e60cb6b736de7ee0..f6766920a604dbeb0782f927e802cd8c4896fc7f 100644 --- a/sickbeard/config.py +++ b/sickbeard/config.py @@ -595,7 +595,8 @@ def check_setting_str(config, cfg_name, item_name, def_val, silent=True, censor_ config[cfg_name][item_name] = helpers.encrypt(my_val, encryption_version) if censor_log or (cfg_name, item_name) in logger.censoredItems.iteritems(): - logger.censoredItems[cfg_name, item_name] = my_val + if not item_name.endswith('custom_url'): + logger.censoredItems[cfg_name, item_name] = my_val if not silent: logger.log(item_name + " -> " + my_val, logger.DEBUG) diff --git a/sickbeard/providers/kat.py b/sickbeard/providers/kat.py index 0a0a79a81486a754e3677cb050b093c425992367..ec62eafa106a4d15b7d5c7f77a5c5a40d80dc51f 100755 --- a/sickbeard/providers/kat.py +++ b/sickbeard/providers/kat.py @@ -18,8 +18,8 @@ # along with SickRage. If not, see <http://www.gnu.org/licenses/>. +import posixpath # Must use posixpath import traceback - from urllib import urlencode from bs4 import BeautifulSoup @@ -43,13 +43,14 @@ class KATProvider(generic.TorrentProvider): self.minseed = None self.minleech = None - self.urls = { - 'base_url': 'https://kickass.unblocked.pe/', - 'search': 'https://kickass.unblocked.pe/%s/', + 'base_url': 'https://kat.cr/', + 'search': 'https://kat.cr/%s/', } self.url = self.urls['base_url'] + self.custom_url = None + self.headers.update({'User-Agent': USER_AGENT}) self.search_params = { @@ -62,7 +63,6 @@ class KATProvider(generic.TorrentProvider): self.cache = KATCache(self) - def _doSearch(self, search_strings, search_mode='eponly', epcount=0, age=0, epObj=None): results = [] items = {'Season': [], 'Episode': [], 'RSS': []} @@ -84,11 +84,13 @@ class KATProvider(generic.TorrentProvider): url_fmt_string = 'usearch' if mode != 'RSS' else search_string try: searchURL = self.urls['search'] % url_fmt_string + '?' + urlencode(self.search_params) + if self.custom_url: + searchURL = posixpath.join(self.custom_url, searchURL.split(self.url)[1].lstrip('/')) # Must use posixpath + logger.log(u"Search URL: %s" % searchURL, logger.DEBUG) data = self.getURL(searchURL) - # data = self.getURL(self.urls[('search', 'rss')[mode is 'RSS']], params=self.search_params) if not data: - logger.log(u"No data returned from provider", logger.DEBUG) + logger.log(u'URL did not return data, maybe try a custom url, or a different one', logger.DEBUG) continue if not data.startswith('<?xml'): diff --git a/sickbeard/providers/thepiratebay.py b/sickbeard/providers/thepiratebay.py index 79aaa0fd1cddcb02ad4039d1508ee6cb51b01f4d..159a375cef615d116630c7d9a535c4035b50e98d 100644 --- a/sickbeard/providers/thepiratebay.py +++ b/sickbeard/providers/thepiratebay.py @@ -18,8 +18,8 @@ import re +import posixpath # Must use posixpath from urllib import urlencode - from sickbeard import logger from sickbeard import tvcache from sickbeard.providers import generic @@ -42,12 +42,14 @@ class ThePirateBayProvider(generic.TorrentProvider): self.cache = ThePirateBayCache(self) self.urls = { - 'base_url': 'https://pirateproxy.pl/', - 'search': 'https://pirateproxy.pl/s/', - 'rss': 'https://pirateproxy.pl/tv/latest' + 'base_url': 'https://thepiratebay.gd/', + 'search': 'https://thepiratebay.gd/s/', + 'rss': 'https://thepiratebay.gd/tv/latest' } self.url = self.urls['base_url'] + self.custom_url = None + self.headers.update({'User-Agent': USER_AGENT}) """ @@ -79,10 +81,13 @@ class ThePirateBayProvider(generic.TorrentProvider): logger.log(u"Search string: " + search_string, logger.DEBUG) searchURL = self.urls[('search', 'rss')[mode is 'RSS']] + '?' + urlencode(self.search_params) + if self.custom_url: + searchURL = posixpath.join(self.custom_url, searchURL.split(self.url)[1].lstrip('/')) # Must use posixpath + logger.log(u"Search URL: %s" % searchURL, logger.DEBUG) data = self.getURL(searchURL) - # data = self.getURL(self.urls[('search', 'rss')[mode is 'RSS']], params=self.search_params) if not data: + logger.log(u'URL did not return data, maybe try a custom url, or a different one', logger.DEBUG) continue matches = re.compile(self.re_title_url, re.DOTALL).finditer(data)