Make goskatespots.nostr1.com the top-priority catching relay
- reqRouter now always queries the community relay (SKATE_RELAY) first, even when a user hasn't added it to their read list, so curated skate content takes priority in NPool's first-seen dedup ordering - eventRouter publishes to the catching relay first, then user write relays - Gated behind the existing useSkateRelay setting (default: true) Co-authored-by: shakespeare.diy <assistant@shakespeare.diy>
This commit is contained in:
parent
d7af2626ff
commit
7d37a5effd
1 changed files with 20 additions and 4 deletions
|
|
@ -57,14 +57,25 @@ const NostrProvider: React.FC<NostrProviderProps> = (props) => {
|
|||
.filter(r => r.read)
|
||||
.map(r => r.url);
|
||||
|
||||
// --- Community "catching" relay: top hierarchy ---
|
||||
// goskatespots.nostr1.com is the app's curated, authoritative relay.
|
||||
// It is ALWAYS queried first (even if a user hasn't added it to their
|
||||
// read list), so curated skate content takes priority. Other relays act
|
||||
// as supplementary sources for redundancy and reach.
|
||||
if (useSkateRelay.current) {
|
||||
routes.set(SKATE_RELAY, filters);
|
||||
}
|
||||
|
||||
// Ensure we always have at least one relay
|
||||
if (readRelays.length === 0) {
|
||||
if (readRelays.length === 0 && routes.size === 0) {
|
||||
console.warn('[NostrProvider] No read relays configured, using defaults');
|
||||
for (const relay of DEFAULT_RELAYS) {
|
||||
routes.set(relay.url, filters);
|
||||
}
|
||||
} else {
|
||||
for (const url of readRelays) {
|
||||
// Skip re-adding the catching relay (already set above with priority)
|
||||
if (url === SKATE_RELAY) continue;
|
||||
routes.set(url, filters);
|
||||
}
|
||||
}
|
||||
|
|
@ -82,14 +93,19 @@ const NostrProvider: React.FC<NostrProviderProps> = (props) => {
|
|||
.filter(r => r.write)
|
||||
.map(r => r.url);
|
||||
|
||||
const allRelays = new Set<string>(writeRelays);
|
||||
const allRelays = new Set<string>();
|
||||
|
||||
// Include community relay if setting is enabled (default: true)
|
||||
// This ensures skate content is published to the community relay for discoverability
|
||||
// Catching relay first: publish curated skate content to the community
|
||||
// relay as the top-priority write target for discoverability.
|
||||
if (useSkateRelay.current) {
|
||||
allRelays.add(SKATE_RELAY);
|
||||
}
|
||||
|
||||
// Then the user's own write relays for redundancy and reach.
|
||||
for (const url of writeRelays) {
|
||||
allRelays.add(url);
|
||||
}
|
||||
|
||||
// Ensure we always have at least one relay
|
||||
if (allRelays.size === 0) {
|
||||
console.warn('No write relays configured, using defaults');
|
||||
|
|
|
|||
Loading…
Reference in a new issue