mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-12-17 05:50:25 +01:00
fix: extend remoteAnchorToLocalProfile ap helper to handle markdown content
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user