From f16c6d7e28680751e6f7379f1a8befea4399998d Mon Sep 17 00:00:00 2001 From: Kano Date: Wed, 7 Dec 2011 21:34:03 +1100 Subject: [PATCH] Add a simple full web interface in PHP to use the API --- miner.php | 319 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 319 insertions(+) create mode 100644 miner.php diff --git a/miner.php b/miner.php new file mode 100644 index 00000000..c4a24d9c --- /dev/null +++ b/miner.php @@ -0,0 +1,319 @@ + +Mine + + + + +
+ + 0) + { + $items = explode(',', $obj); + $item = $items[0]; + $id = explode('=', $items[0], 2); + if (count($id) == 1 or !ctype_digit($id[1])) + $name = $id[0]; + else + $name = $id[0].$id[1]; + + if (strlen($name) == 0) + $name = 'null'; + + if (isset($data[$name])) + { + $num = 1; + while (isset($data[$name.$num])) + $num++; + $name .= $num; + } + + $counter = 0; + foreach ($items as $item) + { + $id = explode('=', $item, 2); + if (count($id) == 2) + $data[$name][$id[0]] = $id[1]; + else + $data[$name][$counter] = $id[0]; + + $counter++; + } + } + } + return $data; + } + return null; +} +# +function getparam($name, $both = false) +{ + $a = null; + if (isset($_POST[$name])) + $a = $_POST[$name]; + + if (($both === true) and ($a === null)) + { + if (isset($_GET[$name])) + $a = $_GET[$name]; + } + + if ($a == '' || $a == null) + return null; + + // limit to 1K just to be safe + return substr($a, 0, 1024); +} +# +function details($list) +{ + $stas = array('S' => 'Succees', 'W' => 'Warning', 'I' => 'Informational', 'E' => 'Error', 'F' => 'Fatal'); + + $tb = ''; + + echo $tb; + + echo ''; + + echo $te.$tb; + + if (isset($list['STATUS'])) + { + echo ''; + echo ''; + $sta = $list['STATUS']['STATUS']; + echo ''; + echo ''; + echo ''; + } + + echo $te.$tb; + + foreach ($list as $item => $values) + { + if ($item != 'STATUS') + { + echo ''; + + foreach ($values as $name => $value) + { + if ($name == '0') + $name = ' '; + echo ""; + } + + echo ''; + + break; + } + } + + foreach ($list as $item => $values) + { + if ($item == 'STATUS') + continue; + + foreach ($values as $name => $value) + echo ""; + + echo ''; + } + echo $te; +} +# +function gpubuttons($count) +{ + $tb = ''; + + echo $tb.''; + + for ($i = 0; $i < 4; $i++) + { + echo ''; + } + + for ($c = 0; $c < $count; $c++) + { + echo ''; + + echo ""; + echo ""; + echo ""; + echo ""; + } + + echo ''.$te; +} +# +function processgpus($rd, $ro) +{ + global $error; + + $gpus = api('gpucount'); + + if ($error != null) + echo ''; + else + { + if (!isset($gpus['GPUS']['Count'])) + echo ''; + else + { + $count = $gpus['GPUS']['Count']; + if ($count == 0) + echo ''; + else + gpubuttons($count); + } + } +} +# +function process($cmds, $rd, $ro) +{ + global $error; + + foreach ($cmds as $cmd => $des) + { + $process = api($cmd); + + if ($error != null) + { + echo "'; + break; + } + else + { + details($process); + echo ''; + } + } +} +# +function display() +{ + global $error; + + $error = null; + + $rd = ''; + $ro = ''; + + echo ""; + + $arg = trim(getparam('arg', true)); + if ($arg != null and $arg != '') + process(array($arg => $arg), $rd, $ro); + + $cmds = array( 'devs' => 'device list', + 'summary' => 'summary information', + 'pools' => 'pool list'); + + process($cmds, $rd, $ro); + + if ($error == null) + processgpus($rd, $ro); +} +# +display(); +# +?> +
'; + $te = '
Date: '.date('H:i:s j-M-Y \U\T\CP').'
Computer: '.$list['STATUS']['Description'].'Status: '.$stas[$sta].'Message: '.$list['STATUS']['Msg'].'
$name
$value
'; + $te = '
'; + + if ($i == 0) + echo 'GPU'; + else + echo ' '; + + echo '
$c
Error getting GPU count: '.$rd.$error.$ro.'
No GPU count returned: '.$rd.$gpus['STATUS']['STATUS'].' '.$gpus['STATUS']['Msg'].$ro.'
No GPUs
Error getting $des: "; + echo $rd.$error.$ro.'


"; + echo ""; + echo " "; + echo ""; + echo "
+