diff options
| author | horus | 2021-03-15 18:16:38 +0100 |
|---|---|---|
| committer | horus | 2021-03-15 18:16:38 +0100 |
| commit | b34810cbff1c613290cf7d4282e242a58b1ddffb (patch) | |
| tree | c6d7e1a5006d9f7fb8cb1289c02c1310be101f72 /resolve.php | |
| parent | fb6c093495e346b9985c75f32878e12e54d946b3 (diff) | |
| download | untrack-b34810cbff1c613290cf7d4282e242a58b1ddffb.tar.gz | |
Inline page in website
Diffstat (limited to 'resolve.php')
| -rw-r--r-- | resolve.php | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/resolve.php b/resolve.php new file mode 100644 index 0000000..47933ac --- /dev/null +++ b/resolve.php @@ -0,0 +1,33 @@ +<?php +# rate limiting happens in nginx + +require_once __DIR__ . '/vendor/autoload.php'; + +use GuzzleHttp\Client; + +function resolveURL($url) { + + $client = new Client(); + + try { + $response = $client->request('HEAD', $url, [ 'on_stats' => function( GuzzleHttp\TransferStats $stats ) use ( &$effectiveURL ){ $effectiveURL = $stats->getEffectiveUri(); }]) + ->getBody()->getContents(); + } catch(\Exception $e) { + return $url; + } + + return $effectiveURL->__toString(); +} + +function getURL() { + if ( empty($_REQUEST['url']) ) { + $data = json_decode(file_get_contents('php://input'), true); + return $data['url']; + } else { + return $_REQUEST['url']; + } +} + +function resolve() { + return json_encode( ['url' => resolveURL( getURL() ) ]); +} |
