fetchGlobals(); $parsed = $requestUrl ? parse_url($requestUrl) : null; $relativePath = $parsed['path'] ?? null; if (!$requestUrl || $relativePath === '/') $this->sendResponse($this->buildResponse( $globals['site_name'], $globals['url'], $globals['avatar'], $globals )); if (!$relativePath) $this->sendErrorResponse('Invalid url', 400); if ($relativePath !== '/' && str_ends_with($relativePath, '/')) $relativePath = rtrim($relativePath, '/'); $results = $this->fetchFromApi('optimized_oembed', 'url=eq.' . urlencode($relativePath)); if (!empty($results)) { $item = $results[0]; $this->sendResponse($this->buildResponse( $item['title'], $item['url'], $item['image_url'], $globals )); } $segments = explode('/', trim($relativePath, '/')); if (count($segments) === 1 && $segments[0] !== '') { $title = ucwords(str_replace('-', ' ', $segments[0])) . ' • ' . $globals['author']; $this->sendResponse($this->buildResponse( $title, $relativePath, $globals['avatar'], $globals )); } $this->sendErrorResponse('No match found', 404); } private function buildResponse(string $title, string $url, string $imagePath, array $globals): array { return [ 'version' => '1.0', 'type' => 'link', 'title' => $title, 'author_name' => $globals['author'], 'provider_name' => $globals['site_name'], 'provider_url' => $globals['url'], 'thumbnail_url' => $globals['url'] . '/og/w800' . $imagePath, 'html' => '' . htmlspecialchars($title) . '', ]; } 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();