feat: add basic relay management in rust
This commit is contained in:
@@ -8,6 +8,7 @@ import {
|
||||
type LumeColumn,
|
||||
type Metadata,
|
||||
type Settings,
|
||||
Relays,
|
||||
} from "@lume/types";
|
||||
import { generateContentTags } from "@lume/utils";
|
||||
import { invoke } from "@tauri-apps/api/core";
|
||||
@@ -55,16 +56,6 @@ export class Ark {
|
||||
}
|
||||
}
|
||||
|
||||
public async get_activities(account: string, kind: "1" | "6" | "9735" = "1") {
|
||||
try {
|
||||
const events: Event[] = await invoke("get_activities", { account, kind });
|
||||
return events;
|
||||
} catch (e) {
|
||||
console.error(String(e));
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public async nostr_connect(uri: string) {
|
||||
try {
|
||||
const remoteKey = uri.replace("bunker://", "").split("?")[0];
|
||||
@@ -117,6 +108,52 @@ export class Ark {
|
||||
}
|
||||
}
|
||||
|
||||
public async get_relays() {
|
||||
try {
|
||||
const cmd: Relays = await invoke("get_relays");
|
||||
return cmd;
|
||||
} catch (e) {
|
||||
console.error(String(e));
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public async add_relay(url: string) {
|
||||
try {
|
||||
const relayUrl = new URL(url);
|
||||
|
||||
if (relayUrl.protocol === "wss:" || relayUrl.protocol === "ws:") {
|
||||
const cmd: boolean = await invoke("connect_relay", { relay: relayUrl });
|
||||
return cmd;
|
||||
}
|
||||
} catch (e) {
|
||||
throw new Error(String(e));
|
||||
}
|
||||
}
|
||||
|
||||
public async remove_relay(url: string) {
|
||||
try {
|
||||
const relayUrl = new URL(url);
|
||||
|
||||
if (relayUrl.protocol === "wss:" || relayUrl.protocol === "ws:") {
|
||||
const cmd: boolean = await invoke("remove_relay", { relay: relayUrl });
|
||||
return cmd;
|
||||
}
|
||||
} catch (e) {
|
||||
throw new Error(String(e));
|
||||
}
|
||||
}
|
||||
|
||||
public async get_activities(account: string, kind: "1" | "6" | "9735" = "1") {
|
||||
try {
|
||||
const events: Event[] = await invoke("get_activities", { account, kind });
|
||||
return events;
|
||||
} catch (e) {
|
||||
console.error(String(e));
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public async get_event(id: string) {
|
||||
try {
|
||||
const eventId: string = id.replace("nostr:", "").replace(/[^\w\s]/gi, "");
|
||||
@@ -463,16 +500,6 @@ export class Ark {
|
||||
}
|
||||
}
|
||||
|
||||
public async get_contact_metadata() {
|
||||
try {
|
||||
const cmd: Contact[] = await invoke("get_contact_metadata");
|
||||
return cmd;
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
public async follow(id: string, alias?: string) {
|
||||
try {
|
||||
const cmd: string = await invoke("follow", { id, alias });
|
||||
|
||||
Reference in New Issue
Block a user