fix: extend remoteAnchorToLocalProfile ap helper to handle markdown content

This commit is contained in:
Julian Lam
2025-01-23 16:23:06 -05:00
parent 7687da00d1
commit db1f895933
3 changed files with 18 additions and 5 deletions

View File

@@ -367,13 +367,25 @@ Helpers.generateTitle = (html) => {
return title;
};
Helpers.remoteAnchorToLocalProfile = async (content) => {
const anchorRegex = /<a.*?href=['"](.+?)['"].*?>(.*?)<\/a>/ig;
Helpers.remoteAnchorToLocalProfile = async (content, isMarkdown = false) => {
let anchorRegex;
if (isMarkdown) {
anchorRegex = /\[(.*?)\]\((.+?)\)/ig;
} else {
anchorRegex = /<a.*?href=['"](.+?)['"].*?>(.*?)<\/a>/ig;
}
const anchors = content.matchAll(anchorRegex);
const urls = new Set();
const matches = [];
for (const anchor of anchors) {
const [match, url] = anchor;
let match;
let url;
if (isMarkdown) {
[match,, url] = anchor;
} else {
[match, url] = anchor;
}
matches.push([match, url]);
urls.add(url);
}

View File

@@ -176,9 +176,10 @@ Mocks.post = async (objects) => {
let edited = new Date(updated);
edited = Number.isNaN(edited.valueOf()) ? undefined : edited;
const sourceContent = source && source.mediaType === 'text/markdown' ? source.content : undefined;
let sourceContent = source && source.mediaType === 'text/markdown' ? source.content : undefined;
if (sourceContent) {
content = null;
sourceContent = await activitypub.helpers.remoteAnchorToLocalProfile(sourceContent, true);
} else if (content && content.length) {
content = sanitize(content, sanitizeConfig);
content = await activitypub.helpers.remoteAnchorToLocalProfile(content);

View File

@@ -183,7 +183,6 @@ Notes.assert = async (uid, input, options = { skipChecks: false }) => {
_activitypub: mainPost._activitypub,
}),
Notes.updateLocalRecipients(mainPid, { to, cc }),
posts.attachments.update(mainPid, attachment),
]);
unprocessed.shift();
@@ -193,6 +192,7 @@ Notes.assert = async (uid, input, options = { skipChecks: false }) => {
id: tid,
path: mainPost._activitypub.image,
}) : null,
posts.attachments.update(mainPid, attachment),
]);
if (context) {