diff --git a/packages/addons/service/downloadmanager/SABnzbd-Suite/changelog.txt b/packages/addons/service/downloadmanager/SABnzbd-Suite/changelog.txt
index 65aca672fe..fb33e5a3a8 100644
--- a/packages/addons/service/downloadmanager/SABnzbd-Suite/changelog.txt
+++ b/packages/addons/service/downloadmanager/SABnzbd-Suite/changelog.txt
@@ -1,6 +1,7 @@
2.1.7
- update to SABnzbd-0.7.0
- update to Headphones-89c2a8c
+- perform "Keep awake while downloading" and "Wake up periodically" only if sabnzbd is enabled
2.1.6
- fixed another startup bug
diff --git a/packages/addons/service/downloadmanager/SABnzbd-Suite/source/default.py b/packages/addons/service/downloadmanager/SABnzbd-Suite/source/default.py
index 8618a767be..48569c495b 100644
--- a/packages/addons/service/downloadmanager/SABnzbd-Suite/source/default.py
+++ b/packages/addons/service/downloadmanager/SABnzbd-Suite/source/default.py
@@ -61,6 +61,9 @@ sabNzbdQueue = 'http://' + sabNzbdAddress + '/sabnzbd/api?mode=queue&output
# start checking SABnzbd for activity and prevent sleeping if necessary
socket.setdefaulttimeout(timeout)
+# check for launching sabnzbd
+sabNzbdLaunch = (__settings__.getSetting('SABNZBD_LAUNCH').lower() == 'true')
+
# perform some initial checks and log essential settings
shouldKeepAwake = (__settings__.getSetting('SABNZBD_KEEP_AWAKE').lower() == 'true')
wakePeriodically = (__settings__.getSetting('SABNZBD_PERIODIC_WAKE').lower() == 'true')
@@ -73,45 +76,46 @@ if wakePeriodically:
while (not xbmc.abortRequested):
- # reread setting in case it has changed
- shouldKeepAwake = (__settings__.getSetting('SABNZBD_KEEP_AWAKE').lower() == 'true')
- wakePeriodically = (__settings__.getSetting('SABNZBD_PERIODIC_WAKE').lower() == 'true')
- wakeHourIdx = int(__settings__.getSetting('SABNZBD_WAKE_AT'))
+ if sabNzbdLaunch:
+ # reread setting in case it has changed
+ shouldKeepAwake = (__settings__.getSetting('SABNZBD_KEEP_AWAKE').lower() == 'true')
+ wakePeriodically = (__settings__.getSetting('SABNZBD_PERIODIC_WAKE').lower() == 'true')
+ wakeHourIdx = int(__settings__.getSetting('SABNZBD_WAKE_AT'))
- # check if SABnzbd is downloading
- sabIsActive = False
- req = urllib2.Request(sabNzbdQueue)
- try: handle = urllib2.urlopen(req)
- except IOError, e:
- xbmc.log('SABnzbd-Suite: could not determine SABnzbds status', level=xbmc.LOGERROR)
- else:
- queue = handle.read()
- handle.close()
- sabIsActive = (queue.find('Downloading') >= 0)
+ # check if SABnzbd is downloading
+ sabIsActive = False
+ req = urllib2.Request(sabNzbdQueue)
+ try: handle = urllib2.urlopen(req)
+ except IOError, e:
+ xbmc.log('SABnzbd-Suite: could not determine SABnzbds status', level=xbmc.LOGERROR)
+ else:
+ queue = handle.read()
+ handle.close()
+ sabIsActive = (queue.find('Downloading') >= 0)
- # reset idle timer when we're close to idle sleep/shutdown
- if (shouldKeepAwake and sabIsActive):
- response = xbmc.executehttpapi("GetGUISetting(0;powermanagement.shutdowntime)").replace('
','')
- shutdownTime = int(response) * 60
- idleTime = xbmc.getGlobalIdleTime()
- timeToShutdown = shutdownTime - idleTime
+ # reset idle timer when we're close to idle sleep/shutdown
+ if (shouldKeepAwake and sabIsActive):
+ response = xbmc.executehttpapi("GetGUISetting(0;powermanagement.shutdowntime)").replace('','')
+ shutdownTime = int(response) * 60
+ idleTime = xbmc.getGlobalIdleTime()
+ timeToShutdown = shutdownTime - idleTime
+
+ if (sabIsActive and timeToShutdown <= checkInterval - timeout):
+ xbmc.log('SABnzbd-Suite: still downloading. Resetting XBMC idle timer.')
+ xbmc.executehttpapi("SendKey(0xF000)")
+
+ # calculate and set the time to wake up at (if any)
+ if (wakePeriodically):
+ wakeHour = wakeHourIdx * 2 + 1
+ timeOfDay = datetime.time(hour=wakeHour)
+ now = datetime.datetime.now()
+ wakeTime = now.combine(now.date(),timeOfDay)
+ if now.time() > timeOfDay:
+ wakeTime += datetime.timedelta(days=1)
+ secondsSinceEpoch = time.mktime(wakeTime.timetuple())
+ open("/sys/class/rtc/rtc0/wakealarm", "w").write("0")
+ open("/sys/class/rtc/rtc0/wakealarm", "w").write(str(secondsSinceEpoch))
- if (sabIsActive and timeToShutdown <= checkInterval - timeout):
- xbmc.log('SABnzbd-Suite: still downloading. Resetting XBMC idle timer.')
- xbmc.executehttpapi("SendKey(0xF000)")
-
- # calculate and set the time to wake up at (if any)
- if (wakePeriodically):
- wakeHour = wakeHourIdx * 2 + 1
- timeOfDay = datetime.time(hour=wakeHour)
- now = datetime.datetime.now()
- wakeTime = now.combine(now.date(),timeOfDay)
- if now.time() > timeOfDay:
- wakeTime += datetime.timedelta(days=1)
- secondsSinceEpoch = time.mktime(wakeTime.timetuple())
- open("/sys/class/rtc/rtc0/wakealarm", "w").write("0")
- open("/sys/class/rtc/rtc0/wakealarm", "w").write(str(secondsSinceEpoch))
-
time.sleep(0.250)
subprocess.Popen(__stop__, shell=True, close_fds=True)
diff --git a/packages/addons/service/downloadmanager/SABnzbd-Suite/source/resources/settings.xml b/packages/addons/service/downloadmanager/SABnzbd-Suite/source/resources/settings.xml
index 1cd5c2b8b7..b41c86dd36 100644
--- a/packages/addons/service/downloadmanager/SABnzbd-Suite/source/resources/settings.xml
+++ b/packages/addons/service/downloadmanager/SABnzbd-Suite/source/resources/settings.xml
@@ -19,8 +19,8 @@
-
-
+
+