diff --git a/packages/addons/service/downloadmanager/SABnzbd-Suite/changelog.txt b/packages/addons/service/downloadmanager/SABnzbd-Suite/changelog.txt index 3ecab74198..db2483809b 100644 --- a/packages/addons/service/downloadmanager/SABnzbd-Suite/changelog.txt +++ b/packages/addons/service/downloadmanager/SABnzbd-Suite/changelog.txt @@ -1,3 +1,6 @@ +2.1.3 +- add option to wake up periodically + 2.1.2 - improve startup script diff --git a/packages/addons/service/downloadmanager/SABnzbd-Suite/config/settings.xml b/packages/addons/service/downloadmanager/SABnzbd-Suite/config/settings.xml index 6bdd7c4637..ddd2a65d06 100644 --- a/packages/addons/service/downloadmanager/SABnzbd-Suite/config/settings.xml +++ b/packages/addons/service/downloadmanager/SABnzbd-Suite/config/settings.xml @@ -3,4 +3,6 @@ + + diff --git a/packages/addons/service/downloadmanager/SABnzbd-Suite/source/default.py b/packages/addons/service/downloadmanager/SABnzbd-Suite/source/default.py index aecda97fc3..ef9cbb8064 100644 --- a/packages/addons/service/downloadmanager/SABnzbd-Suite/source/default.py +++ b/packages/addons/service/downloadmanager/SABnzbd-Suite/source/default.py @@ -26,6 +26,8 @@ import subprocess import xbmc import urllib2 import socket +import time +import datetime from configobj import ConfigObj __scriptname__ = "SABnzbd Suite" @@ -37,7 +39,7 @@ __path__ = xbmc.translatePath( os.path.join( __cwd__, 'bin', "SABnzbd-Suit checkInterval = 120 timeout = 20 - +wake_times = ['01:00','03:00','05:00','07:00','09:00','11:00','13:00','15:00','17:00','19:00','21:00','23:00'] # Launch Suite subprocess.call(['python',__path__]) @@ -55,14 +57,22 @@ sabNzbdQueue = 'http://' + sabNzbdAddress + '/sabnzbd/api?mode=queue&output # start checking SABnzbd for activity and prevent sleeping if necessary socket.setdefaulttimeout(timeout) +# perform some initial checks and log essential settings shouldKeepAwake = __settings__.getSetting('SABNZBD_KEEP_AWAKE') +wakePeriodically = __settings__.getSetting('SABNZBD_PERIODIC_WAKE') +wakeHourIdx = int(__settings__.getSetting('SABNZBD_WAKE_AT')) if shouldKeepAwake: xbmc.log('SABnzbd-Suite: will prevent idle sleep/shutdown while downloading') +if wakePeriodically: + xbmc.log('SABnzbd-Suite: will try to wake system daily at ' + wake_times[wakeHourIdx]) + while (not xbmc.abortRequested): # reread setting in case it has changed shouldKeepAwake = __settings__.getSetting('SABNZBD_KEEP_AWAKE') + wakePeriodically = __settings__.getSetting('SABNZBD_PERIODIC_WAKE') + wakeHourIdx = int(__settings__.getSetting('SABNZBD_WAKE_AT')) # check if SABnzbd is downloading sabIsActive = False @@ -85,5 +95,17 @@ while (not xbmc.abortRequested): 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)) + xbmc.sleep(checkInterval * 1000) \ No newline at end of file diff --git a/packages/addons/service/downloadmanager/SABnzbd-Suite/source/resources/language/English/strings.xml b/packages/addons/service/downloadmanager/SABnzbd-Suite/source/resources/language/English/strings.xml index 3fae37f4a3..304ce60eca 100644 --- a/packages/addons/service/downloadmanager/SABnzbd-Suite/source/resources/language/English/strings.xml +++ b/packages/addons/service/downloadmanager/SABnzbd-Suite/source/resources/language/English/strings.xml @@ -10,5 +10,7 @@ Allowed IP addresses Sleep Keep awake while downloading + Wake up periodically + Wake up at diff --git a/packages/addons/service/downloadmanager/SABnzbd-Suite/source/resources/language/German/strings.xml b/packages/addons/service/downloadmanager/SABnzbd-Suite/source/resources/language/German/strings.xml index fb2a450293..0ff4656c37 100644 --- a/packages/addons/service/downloadmanager/SABnzbd-Suite/source/resources/language/German/strings.xml +++ b/packages/addons/service/downloadmanager/SABnzbd-Suite/source/resources/language/German/strings.xml @@ -10,5 +10,7 @@ Erlaubte IP Adressen Ruhezustand Verhindere Ruhezustand wenn aktiv + Periodisch aufwachen + Aufwachen um 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 6ac0150f85..33b9d33e3e 100755 --- a/packages/addons/service/downloadmanager/SABnzbd-Suite/source/resources/settings.xml +++ b/packages/addons/service/downloadmanager/SABnzbd-Suite/source/resources/settings.xml @@ -15,5 +15,10 @@ + + +