From b10ffffe5ff005ace5e3496605e456dc6b20efd8 Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Wed, 13 Mar 2024 19:29:36 -0700 Subject: [PATCH] More small fixes --- src/app/views/LoginConnect.svelte | 5 ++++- src/engine/network/utils/feed.ts | 7 +------ src/engine/relays/commands.ts | 13 ++++++++++--- src/engine/relays/utils.ts | 6 +++++- 4 files changed, 20 insertions(+), 11 deletions(-) diff --git a/src/app/views/LoginConnect.svelte b/src/app/views/LoginConnect.svelte index 4ed1ad2e..5c35bfba 100644 --- a/src/app/views/LoginConnect.svelte +++ b/src/app/views/LoginConnect.svelte @@ -30,7 +30,10 @@ uniqBy( prop("url"), // Make sure our hardcoded urls are first, since they're more likely to find a match - $env.DEFAULT_RELAYS.map(objOf("url")).concat(shuffle($relays)), + [ + ...$env.PLATFORM_RELAYS, + ...$env.DEFAULT_RELAYS, + ].map(objOf("url")).concat(shuffle($relays)), ), ) diff --git a/src/engine/network/utils/feed.ts b/src/engine/network/utils/feed.ts index 28a9b794..7a3ec82c 100644 --- a/src/engine/network/utils/feed.ts +++ b/src/engine/network/utils/feed.ts @@ -7,7 +7,7 @@ import {noteKinds, reactionKinds, repostKinds} from "src/util/nostr" import type {DisplayEvent} from "src/engine/notes/model" import type {Event} from "src/engine/events/model" import {sortEventsDesc, unwrapRepost} from "src/engine/events/utils" -import {isEventMuted, isDeleted, isSeen} from "src/engine/events/derived" +import {isEventMuted, isDeleted} from "src/engine/events/derived" import {writable} from "src/engine/core/utils" import type {Filter} from "../model" import {getIdFilters, guessFilterDelta} from "./filters" @@ -41,7 +41,6 @@ export class FeedLoader { ready: Promise isEventMuted = isEventMuted.get() isDeleted = isDeleted.get() - isSeen = isSeen.get() constructor(readonly opts: FeedOpts) { const urls = getUrls(opts.relays) @@ -97,10 +96,6 @@ export class FeedLoader { const strict = this.opts.filters.some(f => f["#a"]) return events.filter(e => { - if (this.isSeen(e)) { - return false - } - if (this.isDeleted(e)) { return false } diff --git a/src/engine/relays/commands.ts b/src/engine/relays/commands.ts index 1b836f9a..e15f3fc5 100644 --- a/src/engine/relays/commands.ts +++ b/src/engine/relays/commands.ts @@ -1,7 +1,7 @@ import {whereEq, when, reject, uniqBy, prop, inc} from "ramda" import {now, normalizeRelayUrl, createEvent, isShareableRelayUrl} from "paravel" import {people} from "src/engine/people/state" -import {canSign, signer, stateKey} from "src/engine/session/derived" +import {session, canSign, signer, stateKey} from "src/engine/session/derived" import {updateStore} from "src/engine/core/commands" import {createAndPublish, getClientTags, Publisher} from "src/engine/network/utils" import type {RelayPolicy} from "./model" @@ -60,8 +60,8 @@ export const publishRelays = ($relays: RelayPolicy[]) => { export const joinRelay = async (url: string, claim?: string) => { url = normalizeRelayUrl(url) - if (claim) { - Publisher.publish({ + if (claim && canSign.get()) { + const pub = Publisher.publish({ relays: [url], event: await signer.get().signAsUser( createEvent(28934, { @@ -69,6 +69,13 @@ export const joinRelay = async (url: string, claim?: string) => { }), ), }) + + await pub.result + } + + // Re-publish user meta to the new relay + if (canSign.get() && session.get().kind3) { + Publisher.publish({event: session.get().kind3, relays: [url]}) } return publishRelays([ diff --git a/src/engine/relays/utils.ts b/src/engine/relays/utils.ts index 8ab52321..1e095bd9 100644 --- a/src/engine/relays/utils.ts +++ b/src/engine/relays/utils.ts @@ -98,7 +98,11 @@ export const hints = new Router({ getGroupRelays: getGroupRelayUrls, getCommunityRelays: getGroupRelayUrls, getPubkeyRelays: getPubkeyRelayUrls, - getDefaultRelays: () => getUserRelayUrls().concat(env.get().DEFAULT_RELAYS), + getDefaultRelays: () => [ + ...getUserRelayUrls(), + ...env.get().PLATFORM_RELAYS, + ...env.get().DEFAULT_RELAYS, + ], getDefaultLimit: () => parseInt(getSetting("relay_limit")), getRelayQuality: (url: string) => { const connection = pool.get(url, {autoConnect: false})