From 412e18f6280177ac0efa97fcb49755332a8517df Mon Sep 17 00:00:00 2001 From: ari Date: Mon, 21 Apr 2025 00:32:40 -0400 Subject: [PATCH 1/9] More explicit type defs --- src/lib/pdsfetch.ts | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/src/lib/pdsfetch.ts b/src/lib/pdsfetch.ts index d48e1b9..2296e94 100644 --- a/src/lib/pdsfetch.ts +++ b/src/lib/pdsfetch.ts @@ -111,13 +111,13 @@ const rpc = new XRPC({ }), }); -const getDidsFromPDS = async () => { +const getDidsFromPDS = async () : Promise => { const { data } = await rpc.get("com.atproto.sync.listRepos", { params: {}, }); - return data.repos.map((repo: any) => (repo.did)); + return data.repos.map((repo: any) => (repo.did)) as At.Did[]; }; -const getAccountMetadata = async (did: `did:${string}:${string}`) => { +const getAccountMetadata = async (did: `did:${string}:${string}`) : Promise => { // gonna assume self exists in the app.bsky.actor.profile try { const { data } = await rpc.get("com.atproto.repo.getRecord", { @@ -146,11 +146,12 @@ const getAccountMetadata = async (did: `did:${string}:${string}`) => { did: "error", displayName: "", avatarCid: null, + handle: "error", }; } }; -const getAllMetadataFromPds = async () => { +const getAllMetadataFromPds = async () : Promise => { const dids = await getDidsFromPDS(); const metadata = await Promise.all( dids.map(async (repo: `did:${string}:${string}`) => { @@ -239,12 +240,5 @@ const fetchAllPosts = async () => { posts.sort((a, b) => b.timestamp - a.timestamp); return posts; }; - -const testApiCall = async () => { - const { data } = await rpc.get("com.atproto.sync.listRepos", { - params: {}, - }); - console.log(data); -}; export { fetchAllPosts, getAllMetadataFromPds, Post }; export type { AccountMetadata }; From 9fe004f4a415303540182e4bf50ac3ff31e5fb45 Mon Sep 17 00:00:00 2001 From: ari Date: Mon, 21 Apr 2025 00:36:16 -0400 Subject: [PATCH 2/9] Use ProcessAtUri function where applicable --- src/lib/pdsfetch.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/pdsfetch.ts b/src/lib/pdsfetch.ts index 2296e94..0dec969 100644 --- a/src/lib/pdsfetch.ts +++ b/src/lib/pdsfetch.ts @@ -48,7 +48,7 @@ class Post { account: AccountMetadata, ) { this.postCid = record.cid; - this.recordName = record.uri.split("/").slice(-1)[0]; + this.recordName = processAtUri(record.uri).rkey; this.authorDid = account.did; this.authorAvatarCid = account.avatarCid; this.authorHandle = account.handle; From e1665b6c5567b80bb665c7c0fa4503cefc876e87 Mon Sep 17 00:00:00 2001 From: ari Date: Mon, 21 Apr 2025 00:42:32 -0400 Subject: [PATCH 3/9] Time in a more human readable format --- deno.lock | 5 +++++ package.json | 3 ++- src/lib/PostComponent.svelte | 6 +++++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/deno.lock b/deno.lock index df8c920..0616852 100644 --- a/deno.lock +++ b/deno.lock @@ -6,6 +6,7 @@ "npm:@atcute/identity-resolver@~0.1.2": "0.1.2_@atcute+identity@0.1.3", "npm:@sveltejs/vite-plugin-svelte@^5.0.3": "5.0.3_svelte@5.28.1__acorn@8.14.1_vite@6.3.2__picomatch@4.0.2", "npm:@tsconfig/svelte@^5.0.4": "5.0.4", + "npm:moment@^2.30.1": "2.30.1", "npm:svelte-check@^4.1.5": "4.1.6_svelte@5.28.1__acorn@8.14.1_typescript@5.7.3", "npm:svelte@^5.23.1": "5.28.1_acorn@8.14.1", "npm:typescript@~5.7.2": "5.7.3", @@ -337,6 +338,9 @@ "@jridgewell/sourcemap-codec" ] }, + "moment@2.30.1": { + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==" + }, "mri@1.2.0": { "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==" }, @@ -470,6 +474,7 @@ "npm:@atcute/identity-resolver@~0.1.2", "npm:@sveltejs/vite-plugin-svelte@^5.0.3", "npm:@tsconfig/svelte@^5.0.4", + "npm:moment@^2.30.1", "npm:svelte-check@^4.1.5", "npm:svelte@^5.23.1", "npm:typescript@~5.7.2", diff --git a/package.json b/package.json index 59269d2..9f84465 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,8 @@ "dependencies": { "@atcute/bluesky": "^2.0.2", "@atcute/client": "^3.0.1", - "@atcute/identity-resolver": "^0.1.2" + "@atcute/identity-resolver": "^0.1.2", + "moment": "^2.30.1" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.3", diff --git a/src/lib/PostComponent.svelte b/src/lib/PostComponent.svelte index 894540d..c33b7f8 100644 --- a/src/lib/PostComponent.svelte +++ b/src/lib/PostComponent.svelte @@ -2,6 +2,7 @@ import { Post } from "./pdsfetch"; import { Config } from "../../config"; import { onMount } from "svelte"; + import moment from "moment"; let { post }: { post: Post } = $props(); @@ -76,7 +77,9 @@ {post.timenotstamp}{moment(post.timenotstamp).isBefore(moment().subtract(1, 'month')) + ? moment(post.timenotstamp).format('MMM D, YYYY') + : moment(post.timenotstamp).fromNow()}

@@ -131,6 +134,7 @@ {/if} {#if post.videosLinkCid} +