if ($stat !== null) {
                foreach ($stat as $k => $v) {
                    $stat[$k] = $v * $weight;
                }
                $totalStats[] = $stat;
                $totalWeight += $weight;
            }
        }
    }
    /* summarize stats */
    $sumArray = array();
    foreach ($totalStats as $k => $subArray) {
        foreach ($subArray as $id => $value) {
            if (!isset($sumArray[$id])) {
                $sumArray[$id] = 0;
            }
            $sumArray[$id] += $value;
        }
    }
    foreach ($sumArray as $k => $v) {
        $sumArray[$k] = (int) ($sumArray[$k] / $totalWeight);
    }
    $spark = $sumArray;
} else {
    $popularityList = new Toplist\OnsitePopularityList();
    global $gStatsInterval;
    $spark = array_reverse($popularityList->getIndividual($laureate, $gStatsInterval));
}
$api->write_headers();
$api->write_json($spark);
Esempio n. 2
0
    $popularityList = new Toplist\WikipediaPopularityList($wpNames);
    $orderedList = $popularityList->getOrdered();
    usort($list, function ($a, $b) use($orderedList) {
        $ida = $a['dbPedia'];
        $idb = $b['dbPedia'];
        $posa = array_search($ida, $orderedList);
        $posb = array_search($idb, $orderedList);
        return $posa > $posb ? 1 : -1;
    });
    /* Truncate list to max length */
    global $maxListItems;
    $maxListLength = @$parameters['length'] ?: $maxListItems;
    $list = array_values(array_slice($list, 0, $maxListLength));
} else {
    $popularityList = new Toplist\OnsitePopularityList();
    $orderedList = $popularityList->getOrdered();
    usort($list, function ($a, $b) use($orderedList) {
        $ida = $a['id'];
        $idb = $b['id'];
        $posa = array_search($ida, $orderedList);
        $posb = array_search($idb, $orderedList);
        return $posa < $posb ? 1 : -1;
    });
    /* Truncate list to max length */
    global $maxListItems;
    $maxListLength = @$parameters['length'] ?: $maxListItems;
    $list = array_values(array_slice($list, 0, $maxListLength));
}
$api->write_headers();
$api->write_json($list);
<?php

define('TopList', TRUE);
require_once __DIR__ . "/settings.default.php";
require_once __DIR__ . "/settings.php";
require $baseDir . 'vendor/autoload.php';
require $baseDir . 'lib/api.php';
require $baseDir . 'lib/regions.php';
$api = new Toplist\Api();
$validationRules = array('name' => 'alpha_dash');
$filterRules = array('name' => 'trim');
$parameters = $api->getParameters($validationRules, $filterRules);
$regionFinder = new Toplist\RegionFinder();
$api->write_headers();
if (in_array('name', $parameters)) {
    $api->write_json($regionFinder->getRegions($parameters['name']));
} else {
    $api->write_json($regionFinder->getRegionMapping());
}
$laureate = $parameters['id'];
$width = @$parameters['width'] ?: null;
$height = @$parameters['height'] ?: null;
if (!($height || $width)) {
    $height = '300';
}
/* Get dbPedia url */
$simpleSPARQLQuery = new Toplist\SimpleSPARQLQuery($laureate);
$dbPediaLink = $simpleSPARQLQuery->getDbpedia();
/* Query DbPedia for enwp link */
$dbPediaQuery = new Toplist\DbPediaQuery();
$response = $dbPediaQuery->getWikipediaNames($dbPediaLink);
if (!array_key_exists($dbPediaLink, $response)) {
    /* No such dbPedia article, or invalid laureate id */
    $api->write_headers();
    $api->write_json(array($laureate => array()));
    exit;
}
$enWikipediaName = $response[$dbPediaLink];
/* Get language links */
$wikiDataQuery = new Toplist\WikiDataQuery();
$iwLinks = $wikiDataQuery->getSitelinks($enWikipediaName);
$allWikipediaNames = array();
global $gImageSourceWPEditions;
foreach ($gImageSourceWPEditions as $wpEdition) {
    if (array_key_exists($wpEdition . 'wiki', $iwLinks)) {
        $allWikipediaNames[$wpEdition] = $iwLinks[$wpEdition . 'wiki'];
    }
}
/* Query Wikipedias for images */
$output = array();