forked from Kieran/snort
refactor: move inMemoryDb hook
This commit is contained in:
parent
0307bacd30
commit
2b1cf34424
@ -1,5 +1,6 @@
|
|||||||
import { removeUndefined, throwIfOffline } from "@snort/shared";
|
import { removeUndefined, throwIfOffline } from "@snort/shared";
|
||||||
import { mapEventToProfile, NostrEvent, NostrSystem, ProfileLoaderService, socialGraphInstance } from "@snort/system";
|
import { mapEventToProfile, NostrEvent, NostrSystem, ProfileLoaderService, socialGraphInstance } from "@snort/system";
|
||||||
|
import inMemoryDB from "@snort/system/src/InMemoryDB";
|
||||||
|
|
||||||
import { EventsCache, Relay, RelayMetrics, SystemDb, UserCache, UserRelays } from "@/Cache";
|
import { EventsCache, Relay, RelayMetrics, SystemDb, UserCache, UserRelays } from "@/Cache";
|
||||||
import { LoginStore } from "@/Utils/Login";
|
import { LoginStore } from "@/Utils/Login";
|
||||||
@ -29,6 +30,7 @@ System.on("event", (_, ev) => {
|
|||||||
Relay.event(ev);
|
Relay.event(ev);
|
||||||
EventsCache.discover(ev);
|
EventsCache.discover(ev);
|
||||||
UserCache.discover(ev);
|
UserCache.discover(ev);
|
||||||
|
inMemoryDB.handleEvent(ev);
|
||||||
socialGraphInstance.handleEvent(ev);
|
socialGraphInstance.handleEvent(ev);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -10,8 +10,6 @@ import { NostrEvent, ReqCommand, ReqFilter, TaggedNostrEvent, u256 } from "./nos
|
|||||||
import { RelayInfo } from "./relay-info";
|
import { RelayInfo } from "./relay-info";
|
||||||
import EventKind from "./event-kind";
|
import EventKind from "./event-kind";
|
||||||
import { EventExt } from "./event-ext";
|
import { EventExt } from "./event-ext";
|
||||||
import { getHex64 } from "./utils";
|
|
||||||
import inMemoryDB from "./InMemoryDB";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Relay settings
|
* Relay settings
|
||||||
@ -203,21 +201,6 @@ export class Connection extends EventEmitter<ConnectionEvents> {
|
|||||||
OnMessage(e: WebSocket.MessageEvent) {
|
OnMessage(e: WebSocket.MessageEvent) {
|
||||||
this.#activity = unixNowMs();
|
this.#activity = unixNowMs();
|
||||||
if ((e.data as string).length > 0) {
|
if ((e.data as string).length > 0) {
|
||||||
// skip message processing if we've already seen it
|
|
||||||
/* there's some problem in retrieval from inMemoryDB? try disabling for now
|
|
||||||
const msgId = getHex64(e.data as string, "id");
|
|
||||||
if (inMemoryDB.has(msgId)) {
|
|
||||||
console.log("already have");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
const id = getHex64(e.data as string, "id");
|
|
||||||
if (inMemoryDB.has(id)) {
|
|
||||||
this.#log("Already have, skip processing %s", id);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const msg = JSON.parse(e.data as string) as Array<string | NostrEvent | boolean>;
|
const msg = JSON.parse(e.data as string) as Array<string | NostrEvent | boolean>;
|
||||||
const tag = msg[0] as string;
|
const tag = msg[0] as string;
|
||||||
switch (tag) {
|
switch (tag) {
|
||||||
|
@ -24,7 +24,6 @@ import { RelayMetadataLoader } from "./outbox-model";
|
|||||||
import { Optimizer, DefaultOptimizer } from "./query-optimizer";
|
import { Optimizer, DefaultOptimizer } from "./query-optimizer";
|
||||||
import { ConnectionPool, DefaultConnectionPool } from "./connection-pool";
|
import { ConnectionPool, DefaultConnectionPool } from "./connection-pool";
|
||||||
import { QueryManager } from "./query-manager";
|
import { QueryManager } from "./query-manager";
|
||||||
import inMemoryDB from "./InMemoryDB";
|
|
||||||
|
|
||||||
export interface NostrSystemEvents {
|
export interface NostrSystemEvents {
|
||||||
change: (state: SystemSnapshot) => void;
|
change: (state: SystemSnapshot) => void;
|
||||||
@ -123,7 +122,6 @@ export class NostrSystem extends EventEmitter<NostrSystemEvents> implements Syst
|
|||||||
this.pool.on("event", (_, sub, ev) => {
|
this.pool.on("event", (_, sub, ev) => {
|
||||||
ev.relays?.length && this.relayMetricsHandler.onEvent(ev.relays[0]);
|
ev.relays?.length && this.relayMetricsHandler.onEvent(ev.relays[0]);
|
||||||
this.emit("event", sub, ev);
|
this.emit("event", sub, ev);
|
||||||
inMemoryDB.handleEvent(ev);
|
|
||||||
});
|
});
|
||||||
this.pool.on("disconnect", (id, code) => {
|
this.pool.on("disconnect", (id, code) => {
|
||||||
const c = this.pool.getConnection(id);
|
const c = this.pool.getConnection(id);
|
||||||
@ -192,7 +190,6 @@ export class NostrSystem extends EventEmitter<NostrSystemEvents> implements Syst
|
|||||||
}
|
}
|
||||||
|
|
||||||
HandleEvent(subId: string, ev: TaggedNostrEvent) {
|
HandleEvent(subId: string, ev: TaggedNostrEvent) {
|
||||||
inMemoryDB.handleEvent(ev);
|
|
||||||
this.emit("event", subId, ev);
|
this.emit("event", subId, ev);
|
||||||
this.#queryManager.handleEvent(ev);
|
this.#queryManager.handleEvent(ev);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user