Stop adding unnecessary newlines to the top of posts with images only

This commit is contained in:
Alex Gleason 2024-12-26 20:33:26 -06:00
parent bb50ad7a43
commit f72fdf79bb
No known key found for this signature in database
GPG key ID: 7211D1F99744FBB7

View file

@ -149,26 +149,6 @@ const createStatusController: AppController = async (c) => {
const pubkeys = new Set<string>(); const pubkeys = new Set<string>();
const content = await asyncReplaceAll(
data.status ?? '',
/(?<![\w/])@([\w@+._]+)(?![\w/\.])/g,
async (match, username) => {
const pubkey = await lookupPubkey(username);
if (!pubkey) return match;
// Content addressing (default)
if (!data.to) {
pubkeys.add(pubkey);
}
try {
return `nostr:${nip19.nprofileEncode({ pubkey, relays: [Conf.relay] })}`;
} catch {
return match;
}
},
);
// Explicit addressing // Explicit addressing
for (const to of data.to ?? []) { for (const to of data.to ?? []) {
const pubkey = await lookupPubkey(to); const pubkey = await lookupPubkey(to);
@ -190,18 +170,6 @@ const createStatusController: AppController = async (c) => {
} }
} }
const mediaUrls: string[] = media
.map(({ url }) => url)
.filter((url): url is string => Boolean(url));
const quoteCompat = quoted
? `\n\nnostr:${
nip19.neventEncode({ id: quoted.id, kind: quoted.kind, author: quoted.pubkey, relays: [Conf.relay] })
}`
: '';
const mediaCompat = mediaUrls.length ? `\n\n${mediaUrls.join('\n')}` : '';
const pubkey = await c.get('signer')?.getPublicKey()!; const pubkey = await c.get('signer')?.getPublicKey()!;
const author = pubkey ? await getAuthor(pubkey) : undefined; const author = pubkey ? await getAuthor(pubkey) : undefined;
@ -235,9 +203,49 @@ const createStatusController: AppController = async (c) => {
} }
} }
const mediaUrls: string[] = media
.map(({ url }) => url)
.filter((url): url is string => Boolean(url));
let content = await asyncReplaceAll(
data.status ?? '',
/(?<![\w/])@([\w@+._]+)(?![\w/\.])/g,
async (match, username) => {
const pubkey = await lookupPubkey(username);
if (!pubkey) return match;
// Content addressing (default)
if (!data.to) {
pubkeys.add(pubkey);
}
try {
return `nostr:${nip19.nprofileEncode({ pubkey, relays: [Conf.relay] })}`;
} catch {
return match;
}
},
);
if (quoted) {
if (content) {
content += '\n\n';
}
content += `nostr:${
nip19.neventEncode({ id: quoted.id, kind: quoted.kind, author: quoted.pubkey, relays: [Conf.relay] })
}`;
}
if (mediaUrls.length) {
if (content) {
content += '\n\n';
}
content += mediaUrls.join('\n');
}
const event = await createEvent({ const event = await createEvent({
kind: 1, kind: 1,
content: content + quoteCompat + mediaCompat, content,
tags, tags,
}, c); }, c);