Пример #1
0
function show_api($info, $page, $menu, $name, $user)
{
    global $fld_sep;
    $u = getparam('username', true);
    if (nutem($u)) {
        no_api();
    }
    $api = getparam('api', true);
    if (nutem($api)) {
        no_api();
    }
    $jfu = getparam('json', true);
    $work = getparam('work', true);
    $ans = getAtts($u, 'KAPIKey.str');
    if ($ans['STATUS'] != 'ok') {
        no_api($jfu);
    }
    if (!isset($ans['KAPIKey.str'])) {
        no_api($jfu);
    }
    if ($ans['KAPIKey.str'] != $api) {
        no_api($jfu);
    }
    if (nuem($work)) {
        $info = homeInfo($u);
        if ($info === false) {
            no_api($jfu);
        }
        $rep = fldEncode($info, 'STAMP', true);
        $rep .= fldEncode($info, 'lastbc', false);
        $rep .= fldEncode($info, 'lastheight', false);
        $rep .= fldEncode($info, 'currndiff', false);
        $rep .= fldEncode($info, 'lastblock', false);
        $rep .= fldEncode($info, 'lastblockheight', false);
        $rep .= fldEncode($info, 'blockacc', false);
        $rep .= fldEncode($info, 'blockerr', false);
        $rep .= fldEncode($info, 'p_hashrate5m', false);
        $rep .= fldEncode($info, 'p_hashrate1hr', false);
        $rep .= fldEncode($info, 'u_hashrate5m', false);
        $rep .= fldEncode($info, 'u_hashrate1hr', false);
    } else {
        $info = homeInfo($u);
        if ($info === false) {
            no_api($jfu);
        }
        $per = false;
        if (is_array($info) && isset($info['u_multiaddr'])) {
            $percent = getparam('percent', true);
            if (!nuem($percent)) {
                $per = true;
            }
        }
        if ($per === true) {
            $ans = getPercents($u);
        } else {
            $ans = getWorkers($u);
        }
        if ($ans === false) {
            no_api($jfu);
        }
        $rep = fldEncode($ans, 'STAMP', true);
        $rep .= fldEncode($ans, 'rows', false);
        $rows = $ans['rows'];
        $flds = explode(',', $ans['flds']);
        $zeflds = '';
        for ($i = 0; $i < $rows; $i++) {
            foreach ($flds as $fld) {
                if (substr($fld, 0, 7) != 'idlenot') {
                    $rep .= fldEncode($ans, $fld . ':' . $i, false);
                    if ($i == 0) {
                        $zeflds .= "{$fld},";
                    }
                }
            }
        }
        $rep .= fldEncode($ans, 'arn', false);
        $rep .= fldEncode($ans, 'arp', false);
        $rep .= fldEncode(array(), 'flds', false);
        $rep .= substr($zeflds, 0, -1);
    }
    if (nuem($jfu)) {
        echo $rep;
    } else {
        $j = preg_replace("/([^=]+)=([^{$fld_sep}]*){$fld_sep}/", '"$1":"$2",', $rep . $fld_sep);
        echo '{' . substr($j, 0, -1) . '}';
    }
    exit(0);
}
Пример #2
0
function peruser($data, $user, &$offset, &$totshare, &$totdiff, &$totinvalid, &$totrate, &$blockacc, &$blockreward, $srt = false)
{
    $ans = getPercents($user);
    $pg = '';
    if ($ans['STATUS'] == 'ok') {
        $pg .= '<tbody>';
        if (isset($ans['blockacc'])) {
            $blockacc = $ans['blockacc'];
        }
        if (isset($ans['blockreward'])) {
            $blockreward = $ans['blockreward'];
        }
        $all = array();
        $count = $ans['rows'];
        for ($i = 0; $i < $count; $i++) {
            $all[] = array('payaddress' => $ans['payaddress:' . $i], 'payratio' => $ans['payratio:' . $i], 'paypercent' => $ans['paypercent:' . $i], 'payname' => $ans['payname:' . $i], 'p_shareacc' => $ans['p_shareacc:' . $i], 'p_diffacc' => $ans['p_diffacc:' . $i], 'p_diffinv' => $ans['p_diffinv:' . $i], 'p_uhr' => $ans['p_hashrate5m:' . $i]);
        }
        if ($srt) {
            usort($all, 'perhashorder');
        }
        for ($i = 0; $i < $count; $i++) {
            if ($offset % 2 == 0) {
                $row = 'even';
            } else {
                $row = 'odd';
            }
            $pg .= "<tr class={$row}>";
            $pg .= '<td class=dl>' . $all[$i]['payaddress'] . '</td>';
            $pg .= '<td class=dl>' . $all[$i]['payname'] . '</td>';
            $shareacc = number_format($all[$i]['p_shareacc'], 0);
            $totshare += $all[$i]['p_shareacc'];
            $diffacc = number_format($all[$i]['p_diffacc'], 0);
            $totdiff += $all[$i]['p_diffacc'];
            $pg .= "<td class=dr>{$shareacc}</td>";
            $pg .= "<td class=dr>{$diffacc}</td>";
            $dtot = $all[$i]['p_diffacc'] + $all[$i]['p_diffinv'];
            if ($dtot > 0) {
                $rej = number_format(100.0 * $all[$i]['p_diffinv'] / $dtot, 3);
            } else {
                $rej = '0';
            }
            $totinvalid += $all[$i]['p_diffinv'];
            $pg .= "<td class=dr>{$rej}%</td>";
            if ($blockacc <= 0) {
                $blkpct = '&nbsp;';
            } else {
                $blkpct = number_format(100.0 * $all[$i]['p_diffacc'] / $blockacc, 3) . '%';
            }
            $pg .= "<td class=dr>{$blkpct}</td>";
            $uhr = $all[$i]['p_uhr'];
            if ($uhr == '?') {
                $uhr = '?GHs';
            } else {
                $totrate += $uhr;
                $uhr = dsprate($uhr);
            }
            $pg .= "<td class=dr>{$uhr}</td>";
            $pg .= '<td class=dr>' . $all[$i]['payratio'] . '</td>';
            $paypct = number_format($all[$i]['paypercent'], 3);
            $pg .= "<td class=dr>{$paypct}%</td>";
            $pg .= "</tr>\n";
            $offset++;
        }
        $pg .= '</tbody>';
    }
    return $pg;
}