Beispiel #1
0
 static function detectProgram($e)
 {
     $code = new PQuery($e, "code");
     if ($code->isArray()) {
         $js = self::stripCommentAndSpaces($code->attrDef("JavaScript", ""));
         if ($js != "") {
             return $js;
         }
         $html = $code->attrDef("HTML", "");
         if (preg_match("/<\\s*script/", $html)) {
             return $html;
         }
         return "";
     } else {
         return $code->resolveDef("");
     }
 }
Beispiel #2
0
<?php

require_once __DIR__ . "/VecUtil.php";
require_once __DIR__ . "/LogUtil.php";
require_once __DIR__ . "/../json.php";
require_once __DIR__ . "/../PQuery.php";
require_once __DIR__ . "/../Progress.php";
require_once __DIR__ . "/../auth.php";
$class = Auth::curClass();
$get = new PQuery($_GET);
$k = $get->attrDef("k", 20);
if ($get->attrDef("state", 0) == 0) {
    //$vecs=array();
    $filesLimit = $get->attrDef("filesLimit", 1000000000);
    $logDir = LogUtil::getLogDir();
    $logFiles = LogUtil::getLogFiles();
    $cntmax = count($logFiles);
    $cnt = 0;
    $fp = $logDir->rel("{$class}-allvec.txt")->openWrite();
    foreach ($logFiles as $logFile) {
        showProgress("Process {$cnt}/{$cntmax}");
        foreach (LogUtil::readLog($logFile) as $i => $log) {
            $prog = LogUtil::detectProgram($log);
            $vec = VecUtil::mkvec2($prog);
            //$vec->logFile=$logFile;
            //$vec->index=$i;
            //$vecs[]=$vec;
            fwrite($fp, json_encode($vec->ary) . "\n");
        }
        if ($cnt++ > $filesLimit) {
            break;
Beispiel #3
0
require_once __DIR__ . "/ScoreUtil.php";
$scoreSheetDir = ScoreUtil::$scoreSheetDir;
//$scoreSheetDir=new SFile(new NativeFS("./"),"scoreSheet/");
$class = Auth::curClass();
$files = LogUtil::getLogFiles();
$progss = array();
// nearest=>[Prog]
$allC = 0;
$nonError = 0;
foreach ($files as $file) {
    $log = LogUtil::readLog($file);
    showProgress("Reading... " . $file->name());
    $allC += count($log);
    foreach ($log as $l) {
        $l = new PQuery($l);
        $n = $l->attrDef("nearest", "UNKNOWN");
        $l->obj["user"] = $file->name();
        //if ($l->obj["user"]!==$file->name()) throw new Exception("Why!");
        if (preg_match("/Error/", $l->attrDef("result", ""))) {
        } else {
            if (!isset($progss[$n])) {
                $progss[$n] = array();
            }
            $progss[$n][] = $l->obj;
            $nonError++;
        }
    }
}
foreach ($progss as $n => $progs) {
    $cnt = count($progs);
    echo "{$n}(Nonerror:{$cnt}) |";