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);
$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();