mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-28 13:16:41 +00:00
SABnzbd-Suite: perform "Keep awake while downloading" and "Wake up periodically" only if sabnzbd is enabled
This commit is contained in:
parent
de97e4f71a
commit
ac530bc48b
@ -1,6 +1,7 @@
|
|||||||
2.1.7
|
2.1.7
|
||||||
- update to SABnzbd-0.7.0
|
- update to SABnzbd-0.7.0
|
||||||
- update to Headphones-89c2a8c
|
- update to Headphones-89c2a8c
|
||||||
|
- perform "Keep awake while downloading" and "Wake up periodically" only if sabnzbd is enabled
|
||||||
|
|
||||||
2.1.6
|
2.1.6
|
||||||
- fixed another startup bug
|
- fixed another startup bug
|
||||||
|
@ -61,6 +61,9 @@ sabNzbdQueue = 'http://' + sabNzbdAddress + '/sabnzbd/api?mode=queue&output
|
|||||||
# start checking SABnzbd for activity and prevent sleeping if necessary
|
# start checking SABnzbd for activity and prevent sleeping if necessary
|
||||||
socket.setdefaulttimeout(timeout)
|
socket.setdefaulttimeout(timeout)
|
||||||
|
|
||||||
|
# check for launching sabnzbd
|
||||||
|
sabNzbdLaunch = (__settings__.getSetting('SABNZBD_LAUNCH').lower() == 'true')
|
||||||
|
|
||||||
# perform some initial checks and log essential settings
|
# perform some initial checks and log essential settings
|
||||||
shouldKeepAwake = (__settings__.getSetting('SABNZBD_KEEP_AWAKE').lower() == 'true')
|
shouldKeepAwake = (__settings__.getSetting('SABNZBD_KEEP_AWAKE').lower() == 'true')
|
||||||
wakePeriodically = (__settings__.getSetting('SABNZBD_PERIODIC_WAKE').lower() == 'true')
|
wakePeriodically = (__settings__.getSetting('SABNZBD_PERIODIC_WAKE').lower() == 'true')
|
||||||
@ -73,44 +76,45 @@ if wakePeriodically:
|
|||||||
|
|
||||||
while (not xbmc.abortRequested):
|
while (not xbmc.abortRequested):
|
||||||
|
|
||||||
# reread setting in case it has changed
|
if sabNzbdLaunch:
|
||||||
shouldKeepAwake = (__settings__.getSetting('SABNZBD_KEEP_AWAKE').lower() == 'true')
|
# reread setting in case it has changed
|
||||||
wakePeriodically = (__settings__.getSetting('SABNZBD_PERIODIC_WAKE').lower() == 'true')
|
shouldKeepAwake = (__settings__.getSetting('SABNZBD_KEEP_AWAKE').lower() == 'true')
|
||||||
wakeHourIdx = int(__settings__.getSetting('SABNZBD_WAKE_AT'))
|
wakePeriodically = (__settings__.getSetting('SABNZBD_PERIODIC_WAKE').lower() == 'true')
|
||||||
|
wakeHourIdx = int(__settings__.getSetting('SABNZBD_WAKE_AT'))
|
||||||
|
|
||||||
# check if SABnzbd is downloading
|
# check if SABnzbd is downloading
|
||||||
sabIsActive = False
|
sabIsActive = False
|
||||||
req = urllib2.Request(sabNzbdQueue)
|
req = urllib2.Request(sabNzbdQueue)
|
||||||
try: handle = urllib2.urlopen(req)
|
try: handle = urllib2.urlopen(req)
|
||||||
except IOError, e:
|
except IOError, e:
|
||||||
xbmc.log('SABnzbd-Suite: could not determine SABnzbds status', level=xbmc.LOGERROR)
|
xbmc.log('SABnzbd-Suite: could not determine SABnzbds status', level=xbmc.LOGERROR)
|
||||||
else:
|
else:
|
||||||
queue = handle.read()
|
queue = handle.read()
|
||||||
handle.close()
|
handle.close()
|
||||||
sabIsActive = (queue.find('<status>Downloading</status>') >= 0)
|
sabIsActive = (queue.find('<status>Downloading</status>') >= 0)
|
||||||
|
|
||||||
# reset idle timer when we're close to idle sleep/shutdown
|
# reset idle timer when we're close to idle sleep/shutdown
|
||||||
if (shouldKeepAwake and sabIsActive):
|
if (shouldKeepAwake and sabIsActive):
|
||||||
response = xbmc.executehttpapi("GetGUISetting(0;powermanagement.shutdowntime)").replace('<li>','')
|
response = xbmc.executehttpapi("GetGUISetting(0;powermanagement.shutdowntime)").replace('<li>','')
|
||||||
shutdownTime = int(response) * 60
|
shutdownTime = int(response) * 60
|
||||||
idleTime = xbmc.getGlobalIdleTime()
|
idleTime = xbmc.getGlobalIdleTime()
|
||||||
timeToShutdown = shutdownTime - idleTime
|
timeToShutdown = shutdownTime - idleTime
|
||||||
|
|
||||||
if (sabIsActive and timeToShutdown <= checkInterval - timeout):
|
if (sabIsActive and timeToShutdown <= checkInterval - timeout):
|
||||||
xbmc.log('SABnzbd-Suite: still downloading. Resetting XBMC idle timer.')
|
xbmc.log('SABnzbd-Suite: still downloading. Resetting XBMC idle timer.')
|
||||||
xbmc.executehttpapi("SendKey(0xF000)")
|
xbmc.executehttpapi("SendKey(0xF000)")
|
||||||
|
|
||||||
# calculate and set the time to wake up at (if any)
|
# calculate and set the time to wake up at (if any)
|
||||||
if (wakePeriodically):
|
if (wakePeriodically):
|
||||||
wakeHour = wakeHourIdx * 2 + 1
|
wakeHour = wakeHourIdx * 2 + 1
|
||||||
timeOfDay = datetime.time(hour=wakeHour)
|
timeOfDay = datetime.time(hour=wakeHour)
|
||||||
now = datetime.datetime.now()
|
now = datetime.datetime.now()
|
||||||
wakeTime = now.combine(now.date(),timeOfDay)
|
wakeTime = now.combine(now.date(),timeOfDay)
|
||||||
if now.time() > timeOfDay:
|
if now.time() > timeOfDay:
|
||||||
wakeTime += datetime.timedelta(days=1)
|
wakeTime += datetime.timedelta(days=1)
|
||||||
secondsSinceEpoch = time.mktime(wakeTime.timetuple())
|
secondsSinceEpoch = time.mktime(wakeTime.timetuple())
|
||||||
open("/sys/class/rtc/rtc0/wakealarm", "w").write("0")
|
open("/sys/class/rtc/rtc0/wakealarm", "w").write("0")
|
||||||
open("/sys/class/rtc/rtc0/wakealarm", "w").write(str(secondsSinceEpoch))
|
open("/sys/class/rtc/rtc0/wakealarm", "w").write(str(secondsSinceEpoch))
|
||||||
|
|
||||||
time.sleep(0.250)
|
time.sleep(0.250)
|
||||||
|
|
||||||
|
@ -19,8 +19,8 @@
|
|||||||
|
|
||||||
<setting label="3010" type="lsep"/>
|
<setting label="3010" type="lsep"/>
|
||||||
<setting type="sep" />
|
<setting type="sep" />
|
||||||
<setting id="SABNZBD_KEEP_AWAKE" type="bool" label="3021" default="false"/>
|
<setting id="SABNZBD_KEEP_AWAKE" type="bool" label="3021" default="false" enable="eq(-10,true)" />
|
||||||
<setting id="SABNZBD_PERIODIC_WAKE" type="bool" label="3030" default="false"/>
|
<setting id="SABNZBD_PERIODIC_WAKE" type="bool" label="3030" default="false" enable="eq(-11,true)" />
|
||||||
<setting id="SABNZBD_WAKE_AT" type="enum" subsetting="true" enable="eq(-1,true)"
|
<setting id="SABNZBD_WAKE_AT" type="enum" subsetting="true" enable="eq(-1,true)"
|
||||||
label="3031" default="01"
|
label="3031" default="01"
|
||||||
values="|01:00|03:00|05:00|07:00|09:00|11:00|13:00|15:00|17:00|19:00|21:00|23:00"/>
|
values="|01:00|03:00|05:00|07:00|09:00|11:00|13:00|15:00|17:00|19:00|21:00|23:00"/>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user