56 lines
1.8 KiB
PHP
56 lines
1.8 KiB
PHP
|
<?php
|
|||
|
namespace Patchouli;
|
|||
|
|
|||
|
use FWIF\FWIF;
|
|||
|
|
|||
|
require_once __DIR__ . '/../startup.php';
|
|||
|
|
|||
|
$request = Http\HttpRequest::create();
|
|||
|
|
|||
|
header('Content-Type: ' . FWIF::CONTENT_TYPE);
|
|||
|
|
|||
|
if($request->match('GET', '/packages')) {
|
|||
|
$tags = explode(';', (string)$request->getQueryParam('tags', FILTER_SANITIZE_STRING));
|
|||
|
$packages = empty($tags) ? Patchouli::getPackages() : Patchouli::getPackagesWithTags($tags);
|
|||
|
|
|||
|
$encoded = FWIF::encode($packages);
|
|||
|
echo strlen($encoded) . ' ' . $encoded;
|
|||
|
|
|||
|
echo "\r\n\r\n--------------------\r\n\r\n";
|
|||
|
|
|||
|
$jsonEncoded = json_encode($packages);
|
|||
|
echo strlen($jsonEncoded) . ' ' . $jsonEncoded;
|
|||
|
|
|||
|
echo "\r\n\r\n--------------------\r\n\r\n";
|
|||
|
|
|||
|
$hexdump = bin2hex($encoded); $hexdumpSect = 8; $hexdumpSize = 32;
|
|||
|
for($i = 0; $i < strlen($hexdump) / $hexdumpSize; ++$i) {
|
|||
|
$line = substr($hexdump, $i * $hexdumpSize, $hexdumpSize);
|
|||
|
echo str_pad(dechex($i * $hexdumpSize), 4, '0', STR_PAD_LEFT) . ' ';
|
|||
|
for($j = 0; $j < strlen($line) / $hexdumpSect; ++$j)
|
|||
|
echo substr($line, $j * $hexdumpSect, $hexdumpSect) . ' ';
|
|||
|
echo "\r\n";
|
|||
|
}
|
|||
|
|
|||
|
echo "\r\n--------------------\r\n\r\n";
|
|||
|
|
|||
|
var_dump([(object)$packages[0]->fwifSerialize()]);
|
|||
|
|
|||
|
echo "\r\n--------------------\r\n\r\n";
|
|||
|
|
|||
|
$decoded = FWIF::decode($encoded);
|
|||
|
var_dump($decoded);
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
if($request->match('GET', '/')) {
|
|||
|
header('Content-Type: text/html; charset=utf-8');
|
|||
|
echo '<!doctype html><title>Patchouli</title><pre style="font-family:IPAMonaPGothic,\'IPA モナー Pゴシック\',Monapo,Mona,\'MS PGothic\',\'MS Pゴシック\',sans-serif;font-size:16px;line-height:18px;">';
|
|||
|
readfile(PAT_ROOT . '/patchouli.txt');
|
|||
|
echo '</pre>';
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
http_response_code(404);
|
|||
|
echo '{"code":404,"message":"Path not found."}';
|