now-updater/utils.js

40 lines
1.1 KiB
JavaScript
Raw Normal View History

2025-12-18 01:57:14 +00:00
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;
}
2025-12-18 02:39:27 +00:00
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}<br />by ${artists.join(", ")}`;
}