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())