From a44fb4c84f25eadaf1e0f935765b0bd060ab606a Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Mon, 11 Sep 2023 15:36:09 -0500 Subject: [PATCH] Use default avatar and banner from repo, instead of linking out to image --- src/app.ts | 1 + src/transformers/nostr-to-mastoapi.ts | 23 +++++++++++++++-------- static/images/avi.png | Bin 0 -> 4138 bytes static/images/banner.png | Bin 0 -> 81 bytes 4 files changed, 16 insertions(+), 8 deletions(-) create mode 100644 static/images/avi.png create mode 100644 static/images/banner.png diff --git a/src/app.ts b/src/app.ts index d78c259..5d522e4 100644 --- a/src/app.ts +++ b/src/app.ts @@ -159,6 +159,7 @@ app.get('/api/v1/lists', emptyArrayController); app.use('/api/*', notImplementedController); app.get('*', serveStatic({ root: './public/' })); +app.get('*', serveStatic({ root: './static/' })); app.get('*', serveStatic({ path: './public/index.html' })); app.get('/', indexController); diff --git a/src/transformers/nostr-to-mastoapi.ts b/src/transformers/nostr-to-mastoapi.ts index b827df3..1e3b887 100644 --- a/src/transformers/nostr-to-mastoapi.ts +++ b/src/transformers/nostr-to-mastoapi.ts @@ -12,8 +12,8 @@ import { verifyNip05Cached } from '@/utils/nip05.ts'; import { findUser } from '@/db/users.ts'; import { DittoAttachment, renderAttachment } from '@/views/attachment.ts'; -const DEFAULT_AVATAR = 'https://gleasonator.com/images/avi.png'; -const DEFAULT_BANNER = 'https://gleasonator.com/images/banner.png'; +const defaultAvatar = () => Conf.local('/images/avi.png'); +const defaultBanner = () => Conf.local('/images/banner.png'); interface ToAccountOpts { withSource?: boolean; @@ -21,9 +21,16 @@ interface ToAccountOpts { async function toAccount(event: UnsignedEvent<0>, opts: ToAccountOpts = {}) { const { withSource = false } = opts; - const { pubkey } = event; - const { name, nip05, picture, banner, about } = jsonMetaContentSchema.parse(event.content); + + const { + name, + nip05, + picture = defaultAvatar(), + banner = defaultBanner(), + about, + } = jsonMetaContentSchema.parse(event.content); + const npub = nip19.npubEncode(pubkey); const [user, parsed05, followersCount, followingCount, statusesCount] = await Promise.all([ @@ -37,8 +44,8 @@ async function toAccount(event: UnsignedEvent<0>, opts: ToAccountOpts = {}) { return { id: pubkey, acct: parsed05?.handle || npub, - avatar: picture || DEFAULT_AVATAR, - avatar_static: picture || DEFAULT_AVATAR, + avatar: picture, + avatar_static: picture, bot: false, created_at: event ? nostrDate(event.created_at).toISOString() : new Date().toISOString(), discoverable: true, @@ -49,8 +56,8 @@ async function toAccount(event: UnsignedEvent<0>, opts: ToAccountOpts = {}) { followers_count: followersCount, following_count: followingCount, fqn: parsed05?.handle || npub, - header: banner || DEFAULT_BANNER, - header_static: banner || DEFAULT_BANNER, + header: banner, + header_static: banner, last_status_at: null, locked: false, note: lodash.escape(about), diff --git a/static/images/avi.png b/static/images/avi.png new file mode 100644 index 0000000000000000000000000000000000000000..6de33a5a49ef140a54261b3bac8e20c0199e9f35 GIT binary patch literal 4138 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 GG5-Vg%>KOq literal 0 HcmV?d00001 diff --git a/static/images/banner.png b/static/images/banner.png new file mode 100644 index 0000000000000000000000000000000000000000..26b59e75a08de1c5d3d7b0705e9fc19d317dc4cb GIT binary patch literal 81 zcmeAS@N?(olHy`uVBq!ia0vp^j35jm7|ip2ssJgbk|4ie28Oc9XDxs{E>9Q75RU7~ Y2_P8;#z%^KjDai$Pgg&ebxsLQ04O{U&j0`b literal 0 HcmV?d00001