diff --git a/gui/slick/interfaces/default/config_providers.tmpl b/gui/slick/interfaces/default/config_providers.tmpl
index 56a1e0f..f766aed 100644
--- a/gui/slick/interfaces/default/config_providers.tmpl
+++ b/gui/slick/interfaces/default/config_providers.tmpl
@@ -371,6 +371,24 @@ var show_nzb_providers = #if $sickbeard.USE_NZBS then "true" else "false"#;
#end if
+ #if $hasattr($curTorrentProvider, 'minseed'):
+
+
+
+ #end if
+
+ #if $hasattr($curTorrentProvider, 'minleech'):
+
+
+
+ #end if
+
#if $hasattr($curTorrentProvider, 'proxy'):
diff --git a/sickbeard/__init__.py b/sickbeard/__init__.py
index 63e9d70..3918dea 100644
--- a/sickbeard/__init__.py
+++ b/sickbeard/__init__.py
@@ -1012,6 +1012,12 @@ def initialize(consoleLogging=True):
if hasattr(curTorrentProvider, 'ratio'):
curTorrentProvider.ratio = float(check_setting_float(CFG, curTorrentProvider.getID().upper(),
curTorrentProvider.getID() + '_ratio', 0))
+ if hasattr(curTorrentProvider, 'minseed'):
+ curTorrentProvider.minseed = check_setting_int(CFG, curTorrentProvider.getID().upper(),
+ curTorrentProvider.getID() + '_minseed', 0)
+ if hasattr(curTorrentProvider, 'minleech'):
+ curTorrentProvider.minleech = check_setting_int(CFG, curTorrentProvider.getID().upper(),
+ curTorrentProvider.getID() + '_minleech', 0)
if hasattr(curTorrentProvider, 'freeleech'):
curTorrentProvider.freeleech = bool(check_setting_int(CFG, curTorrentProvider.getID().upper(),
curTorrentProvider.getID() + '_freeleech', 0))
@@ -1422,6 +1428,12 @@ def save_config():
if hasattr(curTorrentProvider, 'ratio'):
new_config[curTorrentProvider.getID().upper()][curTorrentProvider.getID() + '_ratio'] = float(
curTorrentProvider.ratio)
+ if hasattr(curTorrentProvider, 'minseed'):
+ new_config[curTorrentProvider.getID().upper()][curTorrentProvider.getID() + '_minseed'] = int(
+ curTorrentProvider.minseed)
+ if hasattr(curTorrentProvider, 'minleech'):
+ new_config[curTorrentProvider.getID().upper()][curTorrentProvider.getID() + '_minleech'] = int(
+ curTorrentProvider.minleech)
if hasattr(curTorrentProvider, 'options'):
new_config[curTorrentProvider.getID().upper()][
curTorrentProvider.getID() + '_options'] = curTorrentProvider.options
diff --git a/sickbeard/providers/hdtorrents.py b/sickbeard/providers/hdtorrents.py
index 3d15fdb..1e978c4 100644
--- a/sickbeard/providers/hdtorrents.py
+++ b/sickbeard/providers/hdtorrents.py
@@ -62,6 +62,8 @@ class HDTorrentsProvider(generic.TorrentProvider):
self.username = None
self.password = None
self.ratio = None
+ self.minseed = None
+ self.minleech = None
self.cache = HDTorrentsCache(self)
@@ -209,7 +211,7 @@ class HDTorrentsProvider(generic.TorrentProvider):
except (AttributeError, TypeError):
continue
- if mode != 'RSS' and seeders == 0:
+ if mode != 'RSS' and (seeders == 0 or seeders < self.minseed or leechers < self.minleech):
continue
if not title or not download_url:
@@ -248,7 +250,7 @@ class HDTorrentsProvider(generic.TorrentProvider):
except (AttributeError, TypeError):
continue
- if mode != 'RSS' and seeders == 0:
+ if mode != 'RSS' and (seeders == 0 or seeders < self.minseed or leechers < self.minleech):
continue
if not title or not download_url:
diff --git a/sickbeard/providers/kat.py b/sickbeard/providers/kat.py
index fb19a37..bc52c03 100644
--- a/sickbeard/providers/kat.py
+++ b/sickbeard/providers/kat.py
@@ -59,6 +59,8 @@ class KATProvider(generic.TorrentProvider):
self.enabled = False
self.confirmed = False
self.ratio = None
+ self.minseed = None
+ self.minleech = None
self.cache = KATCache(self)
@@ -262,7 +264,7 @@ class KATProvider(generic.TorrentProvider):
except (AttributeError, TypeError):
continue
- if mode != 'RSS' and seeders == 0:
+ if mode != 'RSS' and (seeders == 0 or seeders < self.minseed or leechers < self.minleech):
continue
if self.confirmed and not verified:
diff --git a/sickbeard/providers/publichd.py b/sickbeard/providers/publichd.py
index dfad461..8a6ad52 100644
--- a/sickbeard/providers/publichd.py
+++ b/sickbeard/providers/publichd.py
@@ -56,6 +56,8 @@ class PublicHDProvider(generic.TorrentProvider):
self.enabled = False
self.ratio = None
+ self.minseed = None
+ self.minleech = None
self.cache = PublicHDCache(self)
@@ -173,7 +175,7 @@ class PublicHDProvider(generic.TorrentProvider):
except (AttributeError, TypeError):
continue
- if mode != 'RSS' and seeders == 0:
+ if mode != 'RSS' and (seeders == 0 or seeders < self.minseed or leechers < self.minleech):
continue
if not title or not url:
diff --git a/sickbeard/providers/scc.py b/sickbeard/providers/scc.py
index 2e46a36..bfacd61 100644
--- a/sickbeard/providers/scc.py
+++ b/sickbeard/providers/scc.py
@@ -62,6 +62,8 @@ class SCCProvider(generic.TorrentProvider):
self.username = None
self.password = None
self.ratio = None
+ self.minseed = None
+ self.minleech = None
self.cache = SCCCache(self)
@@ -224,7 +226,7 @@ class SCCProvider(generic.TorrentProvider):
except (AttributeError, TypeError):
continue
- if mode != 'RSS' and seeders == 0:
+ if mode != 'RSS' and (seeders == 0 or seeders < self.minseed or leechers < self.minleech):
continue
if not title or not download_url:
diff --git a/sickbeard/providers/speedcd.py b/sickbeard/providers/speedcd.py
index 96d5a3d..10ffaf2 100644
--- a/sickbeard/providers/speedcd.py
+++ b/sickbeard/providers/speedcd.py
@@ -57,6 +57,8 @@ class SpeedCDProvider(generic.TorrentProvider):
self.password = None
self.ratio = None
self.freeleech = False
+ self.minseed = None
+ self.minleech = None
self.cache = SpeedCDCache(self)
@@ -169,7 +171,7 @@ class SpeedCDProvider(generic.TorrentProvider):
seeders = int(torrent['seed'])
leechers = int(torrent['leech'])
- if mode != 'RSS' and seeders == 0:
+ if mode != 'RSS' and (seeders == 0 or seeders < self.minseed or leechers < self.minleech):
continue
if not title or not url:
diff --git a/sickbeard/providers/thepiratebay.py b/sickbeard/providers/thepiratebay.py
index 6e1be25..d7c5d52 100644
--- a/sickbeard/providers/thepiratebay.py
+++ b/sickbeard/providers/thepiratebay.py
@@ -54,6 +54,8 @@ class ThePirateBayProvider(generic.TorrentProvider):
self.enabled = False
self.ratio = None
self.confirmed = False
+ self.minseed = None
+ self.minleech = None
self.cache = ThePirateBayCache(self)
@@ -245,7 +247,7 @@ class ThePirateBayProvider(generic.TorrentProvider):
leechers = int(torrent.group('leechers'))
#Filter unseeded torrent
- if mode != 'RSS' and seeders == 0:
+ if mode != 'RSS' and (seeders == 0 or seeders < self.minseed or leechers < self.minleech):
continue
#Accept Torrent only from Good People for every Episode Search
diff --git a/sickbeard/providers/torrentday.py b/sickbeard/providers/torrentday.py
index ad2564e..a116645 100644
--- a/sickbeard/providers/torrentday.py
+++ b/sickbeard/providers/torrentday.py
@@ -60,6 +60,8 @@ class TorrentDayProvider(generic.TorrentProvider):
self.password = None
self.ratio = None
self.freeleech = False
+ self.minseed = None
+ self.minleech = None
self.cache = TorrentDayCache(self)
@@ -204,7 +206,7 @@ class TorrentDayProvider(generic.TorrentProvider):
seeders = int(torrent['seed'])
leechers = int(torrent['leech'])
- if mode != 'RSS' and seeders == 0:
+ if mode != 'RSS' and (seeders == 0 or seeders < self.minseed or leechers < self.minleech):
continue
if not title or not url:
diff --git a/sickbeard/providers/torrentleech.py b/sickbeard/providers/torrentleech.py
index 64899c8..2c41fe2 100644
--- a/sickbeard/providers/torrentleech.py
+++ b/sickbeard/providers/torrentleech.py
@@ -58,6 +58,8 @@ class TorrentLeechProvider(generic.TorrentProvider):
self.username = None
self.password = None
self.ratio = None
+ self.minseed = None
+ self.minleech = None
self.cache = TorrentLeechCache(self)
@@ -189,7 +191,7 @@ class TorrentLeechProvider(generic.TorrentProvider):
continue
#Filter unseeded torrent
- if mode != 'RSS' and seeders == 0:
+ if mode != 'RSS' and (seeders == 0 or seeders < self.minseed or leechers < self.minleech):
continue
if not title or not download_url:
diff --git a/sickbeard/webserve.py b/sickbeard/webserve.py
index 5a63c6d..6828e18 100644
--- a/sickbeard/webserve.py
+++ b/sickbeard/webserve.py
@@ -1006,11 +1006,11 @@ class ConfigGeneral:
@cherrypy.expose
def saveGeneral(self, log_dir=None, web_port=None, web_log=None, encryption_version=None, web_ipv6=None,
- update_shows_on_start=None, update_frequency=None, launch_browser=None, web_username=None, use_api=None, api_key=None,
+ update_shows_on_start=None, update_frequency=None, launch_browser=None, web_username=None,
+ use_api=None, api_key=None,indexer_default=None, timezone_display=None, cpu_preset=None,
web_password=None, version_notify=None, enable_https=None, https_cert=None, https_key=None,
handle_reverse_proxy=None, sort_article=None, auto_update=None, proxy_setting=None,
- anon_redirect=None, git_path=None, calendar_unprotected=None, date_preset=None, time_preset=None,
- indexer_default=None, timezone_display=None, cpu_preset=None):
+ anon_redirect=None, git_path=None, calendar_unprotected=None, date_preset=None, time_preset=None):
results = []
@@ -1574,6 +1574,18 @@ class ConfigProviders:
for curTorrentProvider in [curProvider for curProvider in sickbeard.providers.sortedProviderList() if
curProvider.providerType == sickbeard.GenericProvider.TORRENT]:
+ if hasattr(curTorrentProvider, 'minseed'):
+ try:
+ curTorrentProvider.minseed = int(str(kwargs[curTorrentProvider.getID() + '_minseed']).strip())
+ except:
+ curTorrentProvider.minseed = 0
+
+ if hasattr(curTorrentProvider, 'minleech'):
+ try:
+ curTorrentProvider.minleech = int(str(kwargs[curTorrentProvider.getID() + '_minleech']).strip())
+ except:
+ curTorrentProvider.minleech = 0
+
if hasattr(curTorrentProvider, 'ratio'):
try:
curTorrentProvider.ratio = float(str(kwargs[curTorrentProvider.getID() + '_ratio']).strip())