';
$pg .= '
Worker Name | ';
$pg .= 'Work Diff | ';
$pg .= 'Last Share | ';
$pg .= 'Shares | ';
$pg .= 'Diff | ';
$pg .= 'Invalid | ';
$pg .= 'Hash Rate | ';
$pg .= "\n";
return $pg;
}
#
function workuser($data, $user, &$offset, &$totshare, &$totdiff,
&$totinvalid, &$totrate, $old = false)
{
$ans = getWorkers($user);
$pg = '';
if ($ans['STATUS'] == 'ok')
{
$count = $ans['rows'];
for ($i = 0; $i < $count; $i++)
{
$lst = $ans['STAMP'] - $ans['w_lastshare:'.$i];
if ($old !== false && $lst > $old)
continue;
if ((($offset) % 2) == 0)
$row = 'even';
else
$row = 'odd';
$pg .= "";
$pg .= ''.$ans['workername:'.$i].' | ';
if ($ans['w_lastdiff:'.$i] > 0)
$ld = difffmt($ans['w_lastdiff:'.$i]);
else
$ld = ' ';
$pg .= "$ld | ";
if ($lst < 60)
$lstdes = $lst.'s';
else
{
$lst = round($lst/60);
if ($lst < 60)
$lstdes = $lst.'min';
else
{
$lst = round($lst/60);
if ($lst < 24)
{
$lstdes = $lst.'hr';
if ($lst != 1)
$lstdes .= 's';
}
else
{
$lst = round($lst/24);
if ($lst < 9999)
{
$lstdes = $lst.'day';
if ($lst != 1)
$lstdes .= 's';
}
else
$lstdes = 'never';
}
}
}
$pg .= "$lstdes | ";
$shareacc = number_format($ans['w_shareacc:'.$i], 0);
$totshare += $ans['w_shareacc:'.$i];
$diffacc = number_format($ans['w_diffacc:'.$i], 0);
$totdiff += $ans['w_diffacc:'.$i];
$pg .= "$shareacc | ";
$pg .= "$diffacc | ";
$dtot = $ans['w_diffacc:'.$i] + $ans['w_diffinv:'.$i];
if ($dtot > 0)
$rej = number_format(100.0 * $ans['w_diffinv:'.$i] / $dtot, 3);
else
$rej = '0';
$totinvalid += $ans['w_diffinv:'.$i];
$pg .= "$rej% | ";
if ($ans['w_elapsed:'.$i] > 3600)
$uhr = $ans['w_hashrate1hr:'.$i];
else
$uhr = $ans['w_hashrate5m:'.$i];
if ($uhr == '?')
$uhr = '?GHs';
else
{
$totrate += $uhr;
$uhr /= 10000000;
if ($uhr < 0.01)
$uhr = '0GHs';
else
{
if ($uhr < 100000)
$uhr = number_format(round($uhr)/100,2).'GHs';
else
$uhr = number_format(round($uhr/1000)/100,2).'THs';
}
}
$pg .= "$uhr | ";
$pg .= "
\n";
$offset++;
}
}
return $pg;
}
#
function worktotal($offset, $totshare, $totdiff, $totinvalid, $totrate)
{
$pg = '';
$totrate /= 10000000;
if ($totrate < 0.01)
$totrate = '0GHs';
else
{
if ($totrate < 100000)
$totrate = number_format(round($totrate)/100,2).'GHs';
else
$totrate = number_format(round($totrate/1000)/100,2).'THs';
}
if (($offset % 2) == 0)
$row = 'even';
else
$row = 'odd';
$pg .= "Total: | | ";
$shareacc = number_format($totshare, 0);
$pg .= "$shareacc | ";
$diffacc = number_format($totdiff, 0);
$pg .= "$diffacc | ";
$dtot = $totdiff + $totinvalid;
if ($dtot > 0)
$rej = number_format(100.0 * $totinvalid / $dtot, 3);
else
$rej = '0';
$pg .= "$rej% | ";
$pg .= "$totrate |
\n";
return $pg;
}
#
function doworker($data, $user)
{
$pg = 'Workers
';
$pg .= "\n";
$totshare = 0;
$totdiff = 0;
$totinvalid = 0;
$totrate = 0;
$offset = 0;
$pg .= worktitle($data, $user);
$pg .= workuser($data, $user, $offset, $totshare, $totdiff, $totinvalid,
$totrate, false);
$pg .= worktotal($offset, $totshare, $totdiff, $totinvalid, $totrate);
$pg .= "
\n";
return $pg;
}
#
function doworkers($data, $user)
{
$pg = doworker($data, $user);
return $pg;
}
#
function show_workers($page, $menu, $name, $user)
{
gopage(NULL, 'doworkers', $page, $menu, $name, $user);
}
#
?>