a lot more improvements

This commit is contained in:
Michael Save 2012-05-06 01:33:10 +10:00
parent ac2837c620
commit a610458720
40 changed files with 986 additions and 271 deletions

View file

@ -17,7 +17,7 @@
public function build($action, $settings) {
global $config, $_theme, $argv;
if(!$settings) {
if (!$settings) {
error('This theme is not currently installed.');
}
@ -26,18 +26,18 @@
// exclude boards from the "combined" graph
$this->combined_exclude = Array();
if($action == 'cron') {
if(!file_exists($settings['path']))
if ($action == 'cron') {
if (!file_exists($settings['path']))
mkdir($settings['path']);
if(!file_exists($settings['images']))
if (!file_exists($settings['images']))
mkdir($settings['images']);
foreach($this->boards as &$board) {
foreach ($this->boards as &$board) {
$file = $settings['path'] . '/' . $board . '.rrd';
if(!file_exists($file)) {
if (!file_exists($file)) {
// Create graph
if(!rrd_create($file, Array(
if (!rrd_create($file, Array(
'-s 60',
'DS:posts:COUNTER:86400:0:10000',
@ -59,22 +59,22 @@
}
// debug just the graphing (not updating) with the --debug switch
if(!isset($argv[1]) || $argv[1] != '--debug') {
if (!isset($argv[1]) || $argv[1] != '--debug') {
// Update graph
$query = query(sprintf("SELECT MAX(`id`) AS `count` FROM `posts_%s`", $board));
$count = $query->fetch();
$count = $count['count'];
if(!rrd_update($file, Array(
if (!rrd_update($file, Array(
'-t',
'posts',
'N:' . $count)))
error('RRDtool failed: ' . htmlentities(rrd_error()));
}
foreach($this->spans as &$span) {
foreach ($this->spans as &$span) {
// Graph graph
if(!rrd_graph($settings['images'] . '/' . $board . '-' . $span . '.png', Array(
if (!rrd_graph($settings['images'] . '/' . $board . '-' . $span . '.png', Array(
'-s -1' . $span,
'-t Posts on ' . sprintf($config['board_abbreviation'], $board) .' this ' . $span,
'--lazy',
@ -105,7 +105,7 @@
}
// combined graph
foreach($this->spans as &$span) {
foreach ($this->spans as &$span) {
$options = Array(
'-s -1' . $span,
'-t Posts this ' . $span,
@ -129,8 +129,8 @@
$c = 1;
$cc = 0;
$red = 2;
foreach($this->boards as &$board) {
if(in_array($board, $this->combined_exclude))
foreach ($this->boards as &$board) {
if (in_array($board, $this->combined_exclude))
continue;
$color = str_pad(dechex($red*85), 2, '0', STR_PAD_LEFT) .
str_pad(dechex($green*85), 2, '0', STR_PAD_LEFT) .
@ -147,31 +147,35 @@
sprintf($config['board_abbreviation'], $board);
// Randomize colors using this horrible undocumented algorithm I threw together while debugging
if($c == 0)
if ($c == 0)
$red++;
elseif($c == 1)
elseif ($c == 1)
$green++;
elseif($c == 2)
elseif ($c == 2)
$blue++;
elseif($c == 3)
elseif ($c == 3)
$green--;
elseif($c == 4)
elseif ($c == 4)
$red--;
$cc++;
if($cc > 2) {
if ($cc > 2) {
$c++;
$cc = 0;
}
if($c>4) $c = 0;
if ($c > 4)
$c = 0;
if($red>3) $red = 0;
if($green>3) $green = 0;
if($blue>3) $blue = 0;
if ($red > 3)
$red = 0;
if ($green > 3)
$green = 0;
if ($blue > 3)
$blue = 0;
}
$options[] = 'HRULE:0#000000';
if(!rrd_graph($settings['images'] . '/combined-' . $span . '.png', $options))
if (!rrd_graph($settings['images'] . '/combined-' . $span . '.png', $options))
error('RRDtool failed: ' . htmlentities(rrd_error()));
}
}