diff --git a/couchpotato/core/downloaders/base.py b/couchpotato/core/downloaders/base.py
index 39ee6129..5c4e1020 100644
--- a/couchpotato/core/downloaders/base.py
+++ b/couchpotato/core/downloaders/base.py
@@ -40,3 +40,9 @@ class Downloader(Plugin):
log.debug("Downloader doesn't support this type")
return is_correct
+
+ def isDisabled(self, manual):
+ return not self.isEnabled(manual)
+
+ def isEnabled(self, manual):
+ return super(Downloader, self).isEnabled(), ((self.conf('manual', default = False) and manual) or manual is True)
diff --git a/couchpotato/core/downloaders/blackhole/__init__.py b/couchpotato/core/downloaders/blackhole/__init__.py
index 3231c48d..b9796051 100644
--- a/couchpotato/core/downloaders/blackhole/__init__.py
+++ b/couchpotato/core/downloaders/blackhole/__init__.py
@@ -32,6 +32,13 @@ config = [{
'type': 'dropdown',
'values': [('nzbs & torrents', 'both'), ('nzb', 'nzb'), ('torrent', 'torrent')],
},
+ {
+ 'name': 'manual',
+ 'default': 0,
+ 'type': 'bool',
+ 'advanced': True,
+ 'description': 'Disable this downloader for automated searches, but use it when I manually send a release.',
+ },
],
}
],
diff --git a/couchpotato/core/downloaders/blackhole/main.py b/couchpotato/core/downloaders/blackhole/main.py
index 9408de18..a24e71b1 100644
--- a/couchpotato/core/downloaders/blackhole/main.py
+++ b/couchpotato/core/downloaders/blackhole/main.py
@@ -10,8 +10,8 @@ class Blackhole(Downloader):
type = ['nzb', 'torrent']
- def download(self, data = {}, movie = {}):
- if self.isDisabled() or (not self.isCorrectType(data.get('type')) or (not self.conf('use_for') in ['both', data.get('type')])):
+ def download(self, data = {}, movie = {}, manual = False):
+ if self.isDisabled(manual) or (not self.isCorrectType(data.get('type')) or (not self.conf('use_for') in ['both', data.get('type')])):
return
directory = self.conf('directory')
diff --git a/couchpotato/core/downloaders/nzbget/__init__.py b/couchpotato/core/downloaders/nzbget/__init__.py
index 00fa3f0f..5015437e 100644
--- a/couchpotato/core/downloaders/nzbget/__init__.py
+++ b/couchpotato/core/downloaders/nzbget/__init__.py
@@ -33,6 +33,13 @@ config = [{
'default': 'Movies',
'description': 'The category CP places the nzb in. Like movies or couchpotato',
},
+ {
+ 'name': 'manual',
+ 'default': 0,
+ 'type': 'bool',
+ 'advanced': True,
+ 'description': 'Disable this downloader for automated searches, but use it when I manually send a release.',
+ },
],
}
],
diff --git a/couchpotato/core/downloaders/nzbget/main.py b/couchpotato/core/downloaders/nzbget/main.py
index b65e2511..15243ca4 100644
--- a/couchpotato/core/downloaders/nzbget/main.py
+++ b/couchpotato/core/downloaders/nzbget/main.py
@@ -14,9 +14,9 @@ class NZBGet(Downloader):
url = 'http://nzbget:%(password)s@%(host)s/xmlrpc'
- def download(self, data = {}, movie = {}):
+ def download(self, data = {}, movie = {}, manual = False):
- if self.isDisabled() or not self.isCorrectType(data.get('type')):
+ if self.isDisabled(manual) or not self.isCorrectType(data.get('type')):
return
log.info('Sending "%s" to NZBGet.' % data.get('name'))
diff --git a/couchpotato/core/downloaders/sabnzbd/__init__.py b/couchpotato/core/downloaders/sabnzbd/__init__.py
index 20af743b..23918fe2 100644
--- a/couchpotato/core/downloaders/sabnzbd/__init__.py
+++ b/couchpotato/core/downloaders/sabnzbd/__init__.py
@@ -39,6 +39,13 @@ config = [{
'type': 'directory',
'description': 'Your Post-Processing Script directory, set in Sabnzbd > Config > Directories.',
},
+ {
+ 'name': 'manual',
+ 'default': 0,
+ 'type': 'bool',
+ 'advanced': True,
+ 'description': 'Disable this downloader for automated searches, but use it when I manually send a release.',
+ },
],
}
],
diff --git a/couchpotato/core/downloaders/sabnzbd/main.py b/couchpotato/core/downloaders/sabnzbd/main.py
index 0319f68d..837ab063 100644
--- a/couchpotato/core/downloaders/sabnzbd/main.py
+++ b/couchpotato/core/downloaders/sabnzbd/main.py
@@ -15,9 +15,9 @@ class Sabnzbd(Downloader):
type = ['nzb']
- def download(self, data = {}, movie = {}):
+ def download(self, data = {}, movie = {}, manual = False):
- if self.isDisabled() or not self.isCorrectType(data.get('type')):
+ if self.isDisabled(manual) or not self.isCorrectType(data.get('type')):
return
log.info("Sending '%s' to SABnzbd." % data.get('name'))
diff --git a/couchpotato/core/downloaders/transmission/__init__.py b/couchpotato/core/downloaders/transmission/__init__.py
index 34bd3c8f..f72dea6b 100644
--- a/couchpotato/core/downloaders/transmission/__init__.py
+++ b/couchpotato/core/downloaders/transmission/__init__.py
@@ -48,6 +48,13 @@ config = [{
'advanced': True,
'description': 'Stop transfer when reaching ratio',
},
+ {
+ 'name': 'manual',
+ 'default': 0,
+ 'type': 'bool',
+ 'advanced': True,
+ 'description': 'Disable this downloader for automated searches, but use it when I manually send a release.',
+ },
],
}
],
diff --git a/couchpotato/core/downloaders/transmission/main.py b/couchpotato/core/downloaders/transmission/main.py
index 7677ad02..4ed3e583 100644
--- a/couchpotato/core/downloaders/transmission/main.py
+++ b/couchpotato/core/downloaders/transmission/main.py
@@ -11,9 +11,9 @@ class Transmission(Downloader):
type = ['torrent']
- def download(self, data = {}, movie = {}):
+ def download(self, data = {}, movie = {}, manual = False):
- if self.isDisabled() or not self.isCorrectType(data.get('type')):
+ if self.isDisabled(manual) or not self.isCorrectType(data.get('type')):
return
log.info('Sending "%s" to Transmission.' % data.get('name'))
diff --git a/couchpotato/core/plugins/release/main.py b/couchpotato/core/plugins/release/main.py
index f83b322f..3a0f2047 100644
--- a/couchpotato/core/plugins/release/main.py
+++ b/couchpotato/core/plugins/release/main.py
@@ -147,7 +147,7 @@ class Release(Plugin):
'releases': {'status': {}, 'quality': {}},
'library': {'titles': {}, 'files':{}},
'files': {}
- }))
+ }), manual = True)
return jsonified({
'success': True
diff --git a/couchpotato/core/plugins/searcher/main.py b/couchpotato/core/plugins/searcher/main.py
index 0159744a..72350d81 100644
--- a/couchpotato/core/plugins/searcher/main.py
+++ b/couchpotato/core/plugins/searcher/main.py
@@ -135,10 +135,10 @@ class Searcher(Plugin):
return False
- def download(self, data, movie):
+ def download(self, data, movie, manual = False):
snatched_status = fireEvent('status.get', 'snatched', single = True)
- successful = fireEvent('download', data = data, movie = movie, single = True)
+ successful = fireEvent('download', data = data, movie = movie, manual = manual, single = True)
if successful: