diff --git a/src/Controller/EventController.php b/src/Controller/EventController.php
index e692b02..495c212 100644
--- a/src/Controller/EventController.php
+++ b/src/Controller/EventController.php
@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace App\Controller;
use App\Service\NostrClient;
+use App\Service\NostrLinkParser;
use App\Service\RedisCacheService;
use Exception;
use nostriphant\NIP19\Bech32;
@@ -22,7 +23,7 @@ class EventController extends AbstractController
* @throws Exception
*/
#[Route('/e/{nevent}', name: 'nevent', requirements: ['nevent' => '^nevent1.*'])]
- public function index($nevent, NostrClient $nostrClient, RedisCacheService $redisCacheService, LoggerInterface $logger): Response
+ public function index($nevent, NostrClient $nostrClient, RedisCacheService $redisCacheService, NostrLinkParser $nostrLinkParser, LoggerInterface $logger): Response
{
$logger->info('Accessing event page', ['nevent' => $nevent]);
@@ -76,6 +77,13 @@ class EventController extends AbstractController
throw new NotFoundHttpException('Event not found');
}
+ // Parse event content for Nostr links
+ $nostrLinks = [];
+ if (isset($event->content)) {
+ $nostrLinks = $nostrLinkParser->parseLinks($event->content);
+ $logger->info('Parsed Nostr links from content', ['count' => count($nostrLinks)]);
+ }
+
// If author is included in the event, get metadata
$authorMetadata = null;
if (isset($event->pubkey)) {
@@ -83,10 +91,12 @@ class EventController extends AbstractController
$npub = $key->convertPublicKeyToBech32($event->pubkey);
$authorMetadata = $redisCacheService->getMetadata($npub);
}
- // Render template with the event data
+
+ // Render template with the event data and extracted Nostr links
return $this->render('event/index.html.twig', [
'event' => $event,
- 'author' => $authorMetadata
+ 'author' => $authorMetadata,
+ 'nostrLinks' => $nostrLinks
]);
} catch (Exception $e) {
@@ -95,4 +105,3 @@ class EventController extends AbstractController
}
}
}
-
diff --git a/src/Service/NostrClient.php b/src/Service/NostrClient.php
index 82c09fc..dfa825a 100644
--- a/src/Service/NostrClient.php
+++ b/src/Service/NostrClient.php
@@ -267,7 +267,7 @@ class NostrClient
*/
public function getEventById(string $eventId, array $relays = []): ?object
{
- $this->logger->info('Getting event by ID', ['event_id' => $eventId]);
+ $this->logger->info('Getting event by ID', ['event_id' => $eventId, 'relays' => $relays]);
// Use provided relays or default if empty
$relaySet = empty($relays) ? $this->defaultRelaySet : $this->createRelaySet($relays);
@@ -281,6 +281,7 @@ class NostrClient
// Process the response
$events = $this->processResponse($request->send(), function($event) {
+ $this->logger->debug('Received event', ['event' => $event]);
return $event;
});
diff --git a/templates/event/index.html.twig b/templates/event/index.html.twig
index b17a590..e6f7cd3 100644
--- a/templates/event/index.html.twig
+++ b/templates/event/index.html.twig
@@ -27,43 +27,38 @@