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}
+