forked from acm-ndsu/SonicFlow
/
api.php
82 lines (72 loc) · 2.3 KB
/
api.php
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
79
80
81
82
<?php
require_once('assets/includes/sonicflow.php');
$action = $_POST["action"];
$search = $_POST["query"];
$id = $_POST["id"];
$channel = "Headphone";
if (is_null($action)) {
$action="none";
}
$result = "{\"action\":\"".$action."\",\"result\":{";
switch ($action) {
case "vup":
system("amixer -q set $channel 2+ unmute");
$result = $result."\"change\":\"+2\"";
break;
case "vdown":
system("amixer -q set $channel 2- unmute");
$result = $result."\"change\":\"-2\"";
break;
case "toggle":
system("amixer -q set $channel toggle");
$result = $result."\"change\":\"toggle\"";
break;
case "mute":
system("amixer -q set $channel mute");
$result = $result."\"change\":\"mute\"";
break;
case "umute":
system("amixer -q set $channel unmute");
$result = $result."\"change\":\"unmute\"";
break;
case "search":
if(isset($search)) {
$searchResults = getSonicFlowResults($search);
if (count($searchResults) == 0) {
$provider = "grooveshark";
$searchResults = getGroovesharkResults($search);
}
$numResults = count($searchResults);
$result = $result . "\"size\":".$numResults."," . "\"provider\":\"" . $providerName . "\", \"results\":[";
if (is_null($searchResults)) {
break;
}
$result = $result . json_encode($searchResults) . "]";
}else{
$result = $result."\"result\":\"error\", \"message\":\"Query not set\"";
}
break;
case "queue-add":
if(isset($id)) {
$added = addSongToQueue($id);
unset($_POST['id']);
if ($added == R_SUCCESS) {
$result = $result."\"result\":\"success\", \"message\":\"Song added\"";
} else if ($added == R_SONG_REQUEST_TOO_SOON) {
$timeSince = time() - getSongRequestTime($id);
$t = ceil((SONG_REQUEST_LIMIT - $timeSince) / 60);
$s = ($t != 1) ? 's' : '';
$result = $result."\"result\":\"error\", \"message\":\"Song requested too soon. It can be requested again in $t minute$s\"";
}
}else{
$result = $result."\"result\":\"error\", \"message\":\"ID not set\"";
}
break;
case "queue-list":
$currentQueue = getQueue();
$result = $result . "[" . json_encode($currentQueue) .
"]";
}
$result = $result."}}";
echo $result;
?>