try @nostr-ts/common

This commit is contained in:
Travis Shears 2024-07-04 18:13:57 +02:00
parent bec30f2ab0
commit c5e5e24802
3 changed files with 161 additions and 795 deletions

View file

@ -5,14 +5,18 @@
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^20.14.8", "@types/node": "^20.14.8",
"@types/ws": "^8",
"prettier": "^3.3.2", "prettier": "^3.3.2",
"serverless": "4" "serverless": "4"
}, },
"dependencies": { "dependencies": {
"@nostr-dev-kit/ndk": "^2.8.2", "@nostr-ts/common": "^0.0.5",
"@nostr-ts/node": "^0.0.5",
"nostr-tools": "^2.7.0",
"pino": "^9.2.0", "pino": "^9.2.0",
"pino-lambda": "^4.4.0", "pino-lambda": "^4.4.0",
"pocketbase": "^0.21.3" "pocketbase": "^0.21.3",
"ws": "^8.18.0"
}, },
"packageManager": "yarn@4.3.1" "packageManager": "yarn@4.3.1"
} }

View file

@ -1,7 +1,9 @@
import pino from "pino"; import pino from "pino";
import { lambdaRequestTracker, pinoLambdaDestination } from "pino-lambda"; import { lambdaRequestTracker, pinoLambdaDestination } from "pino-lambda";
import { MicroBlogBackend } from "./pocketbase"; import { MicroBlogBackend } from "./pocketbase";
import NDK, { type NDKFilter } from "@nostr-dev-kit/ndk"; import { RelayClient } from "@nostr-ts/node";
import { NFilters, EventsRequest, CLIENT_MESSAGE_TYPE } from "@nostr-ts/common";
import Client from "pocketbase";
// custom destination formatter // custom destination formatter
const destination = pinoLambdaDestination(); const destination = pinoLambdaDestination();
@ -10,15 +12,6 @@ const withRequest = lambdaRequestTracker();
const pb = new MicroBlogBackend(logger); const pb = new MicroBlogBackend(logger);
const npub = "npub1tcmsctewqs3yy0a9q2xh6r0tlm97dxdqcuehuyumyh4jkyfdg5xsmyvw2y";
const ndk = new NDK({
explicitRelayUrls: [
"wss://nos.lol",
// "wss://nostr.wine",
// "wss://nostr.einundzwanzig.space",
],
});
// const feedEvents = await npubA.feed(); // const feedEvents = await npubA.feed();
// type MastodonPost = { // type MastodonPost = {
@ -103,8 +96,51 @@ const ndk = new NDK({
exports.run = async (event: any, context: any) => { exports.run = async (event: any, context: any) => {
withRequest(event, context); withRequest(event, context);
logger.info("connecting to nostr relays"); logger.info("connecting to nostr relays");
await ndk.connect(); const npub =
logger.info("connected to nostr relays"); "npub1tcmsctewqs3yy0a9q2xh6r0tlm97dxdqcuehuyumyh4jkyfdg5xsmyvw2y";
// "wss://nos.lol",
// "wss://nostr.wine",
// "wss://nostr.einundzwanzig.space",
let client = new RelayClient([
{
url: "wss://travis-shears-nostr-relay-v2.fly.dev/",
read: true,
write: false,
},
// {
// url: "wss://nos.lol",
// read: true,
// write: false,
// },
// {
// url: "wss://nostr.einundzwanzig.space",
// read: true,
// write: false,
// },
]);
const info = await client.getRelayInformation();
logger.info({ info }, "relay info");
const filters = new NFilters();
filters.addAuthor(npub);
const req: EventsRequest = {
filters,
type: CLIENT_MESSAGE_TYPE.REQ,
options: {
timeoutIn: 10000,
},
};
client.subscribe(req);
client.listen((payload) => {
logger.info(
{ info: payload.meta.info, url: payload.meta.url },
"received event"
);
// logRelayMessage(payload.data);
});
client.disconnect();
// const lastSavedPostId = await pb.getLatestPostRemoteIDBySource("mastodon"); // const lastSavedPostId = await pb.getLatestPostRemoteIDBySource("mastodon");
// console.log({ lastSavedPostId }); // console.log({ lastSavedPostId });
// const posts = await getPostUntilId({ lastSavedId: lastSavedPostId }); // const posts = await getPostUntilId({ lastSavedId: lastSavedPostId });
@ -112,11 +148,6 @@ exports.run = async (event: any, context: any) => {
// npub, // npub,
// }); // });
// await user.fetchProfile(); // await user.fetchProfile();
const filter: NDKFilter = { kinds: [1], authors: [npub] };
const evt = await ndk.fetchEvent(filter, { closeOnEose: true });
logger.info({ evt }, "Got event");
// logger.info({ profile: user.profile }, "Got user profile");
// for (const post of posts) { // for (const post of posts) {
// logger.info({ post }, "saving post"); // logger.info({ post }, "saving post");

883
yarn.lock

File diff suppressed because it is too large Load diff