-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.json.php
70 lines (56 loc) · 1.66 KB
/
index.json.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
<?php
require_once 'functions.inc.php';
if (Ice\intversion() >= 30400) {
require 'Ice.php';
require 'Murmur.php';
} else {
Ice\loadProfile();
}
try {
if (Ice\intversion() >= 30400) {
$ICE = Ice\initialize();
}
$base = $ICE->stringToProxy("Meta:tcp -h 127.0.0.1 -p 6502");
$meta = $base->ice_checkedCast("::Murmur::Meta");
$servers = $meta->getBootedServers();
$default = $meta->getDefaultConf();
foreach($servers as $s) {
$name = $s->getConf("registername");
if (! $name) {
$name = $default["registername"];
}
// getting raw informations
$channels = $s->getChannels();
$players = $s->getUsers();
// sort datas by name
usort($channels , "objectCompareByName");
usort($players , "objectCompareByName");
if(isset($_GET['displayType'])) {
$displayType = $_GET['displayType'];
}
else {
$displayType = 'ChannelTreeUsers';
}
if($displayType === 'ChannelTree' || $displayType === 'ChannelTreeUsers' || $displayType === 'ChannelTreeReduced') {
$channelTree = makeChannelTreeFromList($channels);
if($displayType !== 'ChannelTree') {
addUsersToChannelTree($channelTree, $players);
}
if($displayType === 'ChannelTree' || $displayType === 'ChannelTreeUsers') {
$treeToDisplay = $channelTree;
}
elseif($displayType === 'ChannelTreeReduced') {
$reducedChannelTree = clone $channelTree;
$reducedChannelTree->deleteEmptychannels();
$treeToDisplay = $reducedChannelTree;
}
header('Content-type: application/json');
echo json_encode($treeToDisplay->toJstreeObject(0, $name));
break;
}
}
}
catch (Ice\LocalException $ex) {
echo "Exception occured : <br/>";
print_r($ex);
}