-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjsontest.py
executable file
·78 lines (57 loc) · 1.79 KB
/
jsontest.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#!/usr/bin/python
import json
import urllib2
url = 'http://rpi:9000/jsonrpc.js'
player_id = 'b8:27:eb:3d:83:04'
def js_request(params):
json_string = {
"id": 1,
"method": "slim.request",
"params": [player_id, params],
}
header = {
'Content-Type': 'application/json',
'User-Agent': 'tpi',
'Accept': 'application/json',
}
# craft the request for a url
req = urllib2.Request(url, json.dumps(json_string), headers=header)
# send the request
res = urllib2.urlopen(req)
return json.loads(res.read())
def js_request2(params):
json_string = {
"id": 1,
"method": "slim.request",
"params": params,
}
header = {
'Content-Type': 'application/json',
'User-Agent': 'tpi',
'Accept': 'application/json',
}
# craft the request for a url
req = urllib2.Request(url, json.dumps(json_string), headers=header)
# send the request
res = urllib2.urlopen(req)
return json.loads(res.read())
def vol_up(value):
js_request(["mixer","volume","+" + str(value)])
def vol_down(value):
js_request(["mixer","volume","-" + str(value)])
def get_vol():
return int(js_request(["mixer","volume","?"])['result']['_volume'])
def pause():
return js_request(["pause"])
def play():
return js_request(["play"])
def mode():
return js_request(["mode","?"])
def serverstatus():
""" {"id":1,"method":"slim.request","params":["",["serverstatus",0,999]]} """
response = js_request2(["",["serverstatus",0,999]])
for player in response['result']['players_loop']:
print "player", player['name'], player['playerid']
if __name__ == "__main__":
#print mode()
serverstatus()