';
$pg .= "
Worker Name:<$r id=srtwrk data-sf=s0> | ";
$pg .= 'Work Diff | ';
$pg .= "<$r id=srtlst data-sf=n2>:Last Share | ";
$pg .= 'Shares | ';
$pg .= "<$r id=srtdiff data-sf=r4>:Diff | ";
$pg .= 'Invalid | ';
$pg .= 'Block % | ';
$pg .= "<$r id=srtrate data-sf=r7>:Hash Rate | ";
$pg .= "\n";
return $pg;
}
#
function workhashorder($a, $b)
{
return $b['w_uhr'] - $a['w_uhr'];
}
#
function workuser($data, $user, &$offset, &$totshare, &$totdiff,
&$totinvalid, &$totrate, &$blockacc,
&$blockreward, $old = false, $srt = false,
$one = false, &$title)
{
$ans = getWorkers($user);
$pg = '';
if ($ans['STATUS'] == 'ok')
{
if (isset($ans['blockacc']))
$blockacc = $ans['blockacc'];
if (isset($ans['blockreward']))
$blockreward = $ans['blockreward'];
if ($one === true && isset($ans['oldworkers']))
{
$days = intval($ans['oldworkers']);
if ($days != 0)
$title = ' (active during the last '.$days.' day'.
(($days==1)?'':'s').')';
}
$all = array();
$count = $ans['rows'];
for ($i = 0; $i < $count; $i++)
{
$lst = $ans['STAMP'] - $ans['w_lastshare:'.$i];
if ($old !== false && $lst > $old)
continue;
if ($ans['w_elapsed:'.$i] > 3600)
$uhr = $ans['w_hashrate1hr:'.$i];
else
$uhr = $ans['w_hashrate5m:'.$i];
$all[] = array('workername' => $ans['workername:'.$i],
'w_lastshare' => $ans['w_lastshare:'.$i],
'w_lastdiff' => $ans['w_lastdiff:'.$i],
'w_shareacc' => $ans['w_shareacc:'.$i],
'w_diffacc' => $ans['w_diffacc:'.$i],
'w_diffinv' => $ans['w_diffinv:'.$i],
'w_lastdiff' => $ans['w_lastdiff:'.$i],
'w_uhr' => $uhr);
}
if ($srt)
usort($all, 'workhashorder');
for ($i = 0; $i < $count; $i++)
{
$lst = $ans['STAMP'] - $all[$i]['w_lastshare'];
if ($old !== false && $lst > $old)
continue;
if ((($offset) % 2) == 0)
$row = 'even';
else
$row = 'odd';
$pg .= "";
$pg .= ''.htmlspecialchars($all[$i]['workername']).' | ';
if ($all[$i]['w_lastdiff'] > 0)
$ld = difffmt($all[$i]['w_lastdiff']);
else
$ld = ' ';
$pg .= "$ld | ";
$pg .= "".howlongago($lst).' | ';
$shareacc = number_format($all[$i]['w_shareacc'], 0);
$totshare += $all[$i]['w_shareacc'];
$diffacc = number_format($all[$i]['w_diffacc'], 0);
$ds = round($all[$i]['w_diffacc']);
$totdiff += $all[$i]['w_diffacc'];
$pg .= "$shareacc | ";
$pg .= "$diffacc | ";
$dtot = $all[$i]['w_diffacc'] + $all[$i]['w_diffinv'];
if ($dtot > 0)
$rej = number_format(100.0 * $all[$i]['w_diffinv'] / $dtot, 3);
else
$rej = '0';
$totinvalid += $all[$i]['w_diffinv'];
$pg .= "$rej% | ";
if ($blockacc <= 0)
$blkpct = ' ';
else
$blkpct = number_format(100.0 * $all[$i]['w_diffacc'] / $blockacc, 3) . '%';
$pg .= "$blkpct | ";
$uhr = $all[$i]['w_uhr'];
if ($uhr == '?')
{
$uhr = '?GHs';
$su = 0;
}
else
{
$su = round($uhr);
$totrate += $uhr;
$uhr = dsprate($uhr);
}
$pg .= "$uhr | ";
$pg .= "
\n";
$offset++;
}
}
return $pg;
}
#
function worktotal($offset, $totshare, $totdiff, $totinvalid, $totrate, $blockacc, $blockreward)
{
$pg = '';
$totrate = dsprate($totrate);
if (($offset % 2) == 0)
$row = 'even';
else
$row = 'odd';
$pg .= "Total: $offset | | ";
$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% | ";
if ($blockacc <= 0)
$blkpct = ' ';
else
$blkpct = number_format(100.0 * $totdiff / $blockacc, 3) . '%';
$pg .= "$blkpct | ";
$pg .= "$totrate |
\n";
return $pg;
}
#
function doworker($data, $user)
{
$title = '';
$pg = "\n";
$totshare = 0;
$totdiff = 0;
$totinvalid = 0;
$totrate = 0;
$offset = 0;
$blockacc = 0;
$blockreward = 0;
$pg .= worktitle($data, $user);
$pg .= workuser($data, $user, $offset, $totshare, $totdiff, $totinvalid,
$totrate, $blockacc, $blockreward, false, true, true,
$title);
$pg .= worktotal($offset, $totshare, $totdiff, $totinvalid, $totrate,
$blockacc, $blockreward);
if (false && $blockacc > 0 && $blockreward > 0)
{
$btc = btcfmt($totdiff / $blockacc * $blockreward);
$pg .= '';
$pg .= " Payout est if block found at 100%: ~$btc BTC";
$pg .= ' |
';
}
$pg .= "
\n";
$pg .= "\n";
return "Workers$title
".$pg;
}
#
function doworkers($data, $user)
{
$pg = doworker($data, $user);
return $pg;
}
#
function show_workers($info, $page, $menu, $name, $user)
{
gopage($info, NULL, 'doworkers', $page, $menu, $name, $user);
}
#
?>