import sanitizeHtml from "sanitize-html"; export function markdownLinkRegex(url) { return new RegExp( `(\\[).*?(\\]\\(https:\\/\\/${url.replaceAll(".", "\\.")}\\))`, "i", ); } export async function getJsonFeedItemTitle(feedUrl) { const res = await fetch(feedUrl); const data = await res.json(); const post = data.items[0]; const { title, image } = post; return image ? `![${title}](${image}) ${title}` : data.items[0].title; } export async function getJsonFeedItemContent(feedUrl) { const res = await fetch(feedUrl); const data = await res.json(); const post = data.items[0]; const { content_html, image } = post; const title = sanitizeHtml(content_html, { allowedTags: [], allowedAttributes: {}, })?.trim(); return image ? `![${title}](${image}) ${title}` : title; } export async function getMalojaScrobble(malojaUrl) { const res = await fetch(`${malojaUrl}/apis/mlj_1/scrobbles?perpage=1`); const data = await res.json(); const scrobble = data.list[0]; const { title, album: { artists }, } = scrobble.track; return `${title}
by ${artists.join(", ")}`; }