From ab8ce81e1848f2ec93fec7356c32160df2a85cff Mon Sep 17 00:00:00 2001 From: dusk Date: Mon, 16 Dec 2024 17:14:29 +0300 Subject: [PATCH] feat: add reply to functionality to log --- bun.lockb | Bin 177928 -> 178400 bytes package.json | 22 ++++++++--------- src/lib/bluesky.ts | 22 +++++++---------- src/lib/notes.ts | 16 ++++++++++++ src/routes/log/+page.svelte | 9 ++++++- src/routes/log/create/+server.ts | 41 ++++++++++++++++++++++++++++--- 6 files changed, 81 insertions(+), 29 deletions(-) diff --git a/bun.lockb b/bun.lockb index 3e978011e5c7df7254a53a03c4c68d096242926e..6853be83687f49e3bb57f817b766a87d784db315 100755 GIT binary patch delta 32868 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 LVU2zke*OOde~BO+ delta 32570 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 Jiyi!-{{h4SdF22A diff --git a/package.json b/package.json index ac16773..91b370d 100644 --- a/package.json +++ b/package.json @@ -13,35 +13,35 @@ }, "devDependencies": { "@sveltejs/enhanced-img": "^0.3.10", - "@sveltejs/kit": "^2.8.4", + "@sveltejs/kit": "^2.11.1", "@sveltejs/vite-plugin-svelte": "^3.1.2", "@tailwindcss/forms": "^0.5.9", "@tailwindcss/typography": "^0.5.15", "@types/eslint": "^9.6.1", - "@types/node": "^22.10.0", + "@types/node": "^22.10.2", "autoprefixer": "^10.4.20", - "eslint": "^9.15.0", + "eslint": "^9.17.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-svelte": "^2.46.0", - "globals": "^15.12.0", + "eslint-plugin-svelte": "^2.46.1", + "globals": "^15.13.0", "mdsvex": "^0.12.3", "postcss": "^8.4.49", - "prettier": "^3.4.1", + "prettier": "^3.4.2", "prettier-plugin-svelte": "^3.3.2", "svelte": "^4.2.19", "svelte-adapter-bun": "^0.5.2", "svelte-check": "^3.8.6", "sveltekit-rate-limiter": "^0.6.1", - "tailwindcss": "^3.4.15", + "tailwindcss": "^3.4.16", "tslib": "^2.8.1", "typescript": "^5.7.2", - "typescript-eslint": "^8.16.0", + "typescript-eslint": "^8.18.0", "vite": "^5.4.11" }, "type": "module", "dependencies": { - "@atproto/api": "^0.13.18", - "@neodrag/svelte": "^2.0.6", + "@neodrag/svelte": "^2.2.0", + "@skyware/bot": "^0.3.8", "@std/toml": "npm:@jsr/std__toml", "base64url": "^3.0.1", "nanoid": "^5.0.9", @@ -49,7 +49,7 @@ "rehype-slug": "^6.0.0", "robots-parser": "^3.0.1", "steamgriddb": "^2.2.0", - "typescript-svelte-plugin": "^0.3.43" + "typescript-svelte-plugin": "^0.3.44" }, "trustedDependencies": [ "@sveltejs/kit", diff --git a/src/lib/bluesky.ts b/src/lib/bluesky.ts index 1835db0..671b7a5 100644 --- a/src/lib/bluesky.ts +++ b/src/lib/bluesky.ts @@ -1,8 +1,8 @@ import { env } from '$env/dynamic/private' -import { Agent, CredentialSession, RichText } from '@atproto/api' +import { Bot } from "@skyware/bot"; import { get, writable } from 'svelte/store' -const bskyClient = writable(null) +const bskyClient = writable(null) export const getBskyClient = async () => { let client = get(bskyClient) @@ -13,19 +13,15 @@ export const getBskyClient = async () => { return client } -export const postToBsky = async (text: string) => { - let client = await getBskyClient() - const rt = new RichText({ text }) - await rt.detectFacets(client) - const {uri} = await client.post({ - text: rt.text, - facets: rt.facets, - }) +export const parseAtUri = (uri: string) => { + if (uri.startsWith("https://bsky.gaze.systems")) { + return uri + } return `https://bsky.gaze.systems/post/${uri.split('/').pop()}` } const loginToBsky = async () => { - const creds = new CredentialSession(new URL("https://bsky.social")) - await creds.login({ identifier: 'gaze.systems', password: env.BSKY_PASSWORD ?? "" }) - return new Agent(creds) + const bot = new Bot({ service: "https://bsky.social" }) + await bot.login({ identifier: 'gaze.systems', password: env.BSKY_PASSWORD ?? "" }) + return bot } \ No newline at end of file diff --git a/src/lib/notes.ts b/src/lib/notes.ts index 1f31ff4..e124e74 100644 --- a/src/lib/notes.ts +++ b/src/lib/notes.ts @@ -11,6 +11,7 @@ export interface Note { content: string, published: number, outgoingLinks?: OutgoingLinkData[], + replyTo?: NoteId, } type NoteId = string @@ -30,6 +31,21 @@ export const noteExists = (id: NoteId) => { return existsSync(getNotePath(id)) } export const readNote = (id: NoteId): Note => { return JSON.parse(readFileSync(getNotePath(id)).toString()) } +export const findReplyRoot = (id: NoteId): {rootNote: Note, rootNoteId: NoteId} => { + let currentNoteId: string | null = id + let currentNote: Note | null = null + while (currentNoteId !== null) { + currentNote = readNote(currentNoteId) + currentNoteId = currentNote.replyTo ?? null + } + if (currentNote === null || currentNoteId === null) { + throw "no note with id found" + } + return { + rootNote: currentNote, + rootNoteId: currentNoteId, + } +} export const writeNote = (id: NoteId, note: Note) => { writeFileSync(getNotePath(id), JSON.stringify(note)) // only append to note list if its not in it yet diff --git a/src/routes/log/+page.svelte b/src/routes/log/+page.svelte index 0aa9a9a..43c3c61 100644 --- a/src/routes/log/+page.svelte +++ b/src/routes/log/+page.svelte @@ -1,6 +1,7 @@