32 lines
946 B
Plaintext
32 lines
946 B
Plaintext
|
#!/usr/bin/env python2
|
||
|
import subprocess
|
||
|
import time
|
||
|
|
||
|
|
||
|
def monitor_state():
|
||
|
mon_state = subprocess.check_output(['/usr/bin/tvservice', '-s'])
|
||
|
return mon_state.split(' ')[1] in ['0xa', '0x12000a', '0x40002']
|
||
|
|
||
|
|
||
|
def kodi_state():
|
||
|
response = urllib2.urlopen('http://music:8080/jsonrpc?request={%22jsonrpc%22:%20%222.0%22,%20%22method%22:%20%22Player.GetActivePlayers%22,%20%22id%22:%201}')
|
||
|
json_txt = response.read()
|
||
|
response.close() # best practice to close the file
|
||
|
response = json.loads(json_txt)
|
||
|
return len(response['result']) > 0
|
||
|
|
||
|
|
||
|
|
||
|
prev_state = None
|
||
|
while True:
|
||
|
# second count
|
||
|
curr_state = monitor_state()
|
||
|
# check if there is a change in the screen state
|
||
|
if curr_state != prev_state:
|
||
|
if curr_state is True:
|
||
|
subprocess.check_output(['sispmctl', '-o', '1'])
|
||
|
else:
|
||
|
subprocess.check_output(['sispmctl', '-f', '1'])
|
||
|
prev_state = curr_state
|
||
|
time.sleep(1.)
|