-
Notifications
You must be signed in to change notification settings - Fork 1
/
device_status.php
40 lines (34 loc) · 1.04 KB
/
device_status.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
<?php
function getDeviceStatus($device) {
$url = "https://wiki.munichmakerlab.de/index.php?title=" . $device . "&action=edit";
$raw = file_get_contents($url);
preg_match_all('/\{\{(ThingInfoBox|project)(.+?)\}\}/s', $raw, $matches);
$result = array();
foreach ($matches[2] as $entry) {
foreach ((explode(PHP_EOL, $entry)) as $line) {
if(!strpos($line, "=")) {
continue;
}
$line = trim($line);
$line = str_replace("|", "", $line);
$foo = explode("=", $line, 2);
$res[trim($foo[0])] = trim($foo[1]);
}
array_push($result, $res);
}
#echo $device . ": " . $matches[1] . "\n";
return $result;
}
$data = array();
$names = array(
"Lusa" => "Lusa (3D printer)",
"Rusa" => "Rusa (3D printer)",
"LaserCutter" => "Laser Cutter",
"CNC Mill" => "CNC Mill",
);
foreach (['Prusa_Mini','LaserCutter', 'CNC_router_build'] as $device) {
foreach (getDeviceStatus($device) as $entry) {
$data[$names[$entry['name']]] = $entry["status"];
}
}
file_put_contents(__DIR__ . '/devices.json', json_encode($data));