sendErrorResponse('Missing url parameter', 400); $parsed = parse_url($requestUrl); $relativePath = $parsed['path'] ?? null; if (!$relativePath) $this->sendErrorResponse('Invalid url', 400); if ($relativePath !== '/' && str_ends_with($relativePath, '/')) $relativePath = rtrim($relativePath, '/'); $globals = $this->fetchGlobals(); $results = $this->fetchFromApi('optimized_oembed', 'url=eq.' . urlencode($relativePath)); if (!empty($results)) { $item = $results[0]; $this->sendResponse([ 'version' => '1.0', 'type' => 'link', 'title' => $item['title'], 'author_name' => $globals['author'], 'provider_name' => $globals['site_name'], 'provider_url' => $globals['url'], 'thumbnail_url' => $globals['url'] . $item['image_url'], 'html' => '' . htmlspecialchars($item['title']) . '', ]); } $segments = explode('/', trim($relativePath, '/')); if (count($segments) === 1 && $segments[0] !== '') { $title = ucwords(str_replace('-', ' ', $segments[0])) . ' • ' . $globals['author']; $this->sendResponse([ 'version' => '1.0', 'type' => 'link', 'title' => $title, 'author_name' => $globals['author'], 'provider_name' => $globals['site_name'], 'provider_url' => $globals['url'], 'thumbnail_url' => $globals['url'] . $globals['avatar'], 'html' => '' . htmlspecialchars($title) . '', ]); } $this->sendErrorResponse('No match found', 404); } private function fetchGlobals(): array { $globals = $this->fetchFromApi('optimized_globals', 'limit=1'); return $globals[0] ?? [ 'author' => 'Cory Dransfeldt', 'site_name' => 'coryd.dev', 'url' => 'https://www.coryd.dev', 'avatar' => '' ]; } } $handler = new OembedHandler(); $handler->handleRequest();