Browse Source

Optimize

imwald
Nuša Pukšič 1 month ago
parent
commit
05a5068bd4
  1. 1
      src/Controller/MediaDiscoveryController.php
  2. 25
      src/Service/NostrClient.php

1
src/Controller/MediaDiscoveryController.php

@ -8,7 +8,6 @@ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; @@ -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
{

25
src/Service/NostrClient.php

@ -183,6 +183,7 @@ class NostrClient @@ -183,6 +183,7 @@ class NostrClient
$this->logger->error('Error logging publish event', [
'error' => $e->getMessage()
]);
return [];
}
}
@ -812,17 +813,31 @@ class NostrClient @@ -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
);

Loading…
Cancel
Save