From 05a5068bd43975ba37d11db159ff70cb4fe95b40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nu=C5=A1a=20Puk=C5=A1i=C4=8D?= Date: Tue, 2 Dec 2025 17:34:15 +0100 Subject: [PATCH] Optimize --- src/Controller/MediaDiscoveryController.php | 1 - src/Service/NostrClient.php | 25 ++++++++++++++++----- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/Controller/MediaDiscoveryController.php b/src/Controller/MediaDiscoveryController.php index e35d6a3..70d052f 100644 --- a/src/Controller/MediaDiscoveryController.php +++ b/src/Controller/MediaDiscoveryController.php @@ -8,7 +8,6 @@ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Contracts\Cache\CacheInterface; -use Symfony\Contracts\Cache\ItemInterface; class MediaDiscoveryController extends AbstractController { diff --git a/src/Service/NostrClient.php b/src/Service/NostrClient.php index 5199539..936eec0 100644 --- a/src/Service/NostrClient.php +++ b/src/Service/NostrClient.php @@ -183,6 +183,7 @@ class NostrClient $this->logger->error('Error logging publish event', [ 'error' => $e->getMessage() ]); + return []; } } @@ -812,17 +813,31 @@ class NostrClient public function getMediaEventsByHashtags(array $hashtags): array { $allEvents = []; - // Use relay pool for media relays - $relayUrls = ['wss://theforest.nostr1.com', 'wss://relay.nostr.band']; - $relayset = $this->createRelaySet($relayUrls); + + // Prefer local relay if configured + if ($this->nostrDefaultRelay) { + $this->logger->info('Using local relay for media discovery hashtag fetch', [ + 'relay' => $this->nostrDefaultRelay, + 'hashtags' => $hashtags, + ]); + $relayset = $this->createRelaySet([$this->nostrDefaultRelay]); + } else { + // Fallback to known public media-friendly relays + $relayUrls = ['wss://theforest.nostr1.com', 'wss://relay.nostr.band']; + $this->logger->info('Using public relays for media discovery hashtag fetch', [ + 'relays' => $relayUrls, + 'hashtags' => $hashtags, + ]); + $relayset = $this->createRelaySet($relayUrls); + } // Fetch events for each hashtag foreach ($hashtags as $hashtag) { $request = $this->createNostrRequest( - kinds: [20], // NIP-68 Pictures, later maybe NIP-71 Videos + kinds: [20], // NIP-68 Pictures; consider expanding to 21/22 later filters: [ 'tag' => ['#t', [$hashtag]], - 'limit' => 100 // Fetch 100 per hashtag + 'limit' => 100 // Fetch up to 100 per hashtag ], relaySet: $relayset );