diff --git a/config.js b/config.js index 4d2c653..3651721 100644 --- a/config.js +++ b/config.js @@ -3,6 +3,7 @@ import { getJsonFeedItemTitle, getLetterboxdActivity, getMalojaScrobble, + getRSSItemTitle, getTraktEpisode, markdownLinkRegex, } from './utils.js' @@ -42,4 +43,14 @@ export const items = [ getLatest: async () => getTraktEpisode('zicklepop', 'd0a982626d7793b5cf1857a2128277cc'), }, + { + id: 'link', + regex: markdownLinkRegex('melkat.link'), + getLatest: async () => getRSSItemTitle('https://melkat.link/feeds/shared'), + }, + { + id: 'dev', + regex: markdownLinkRegex('melkat.dev/melanie'), + getLatest: async () => getRSSItemTitle('https://melkat.dev/melanie.rss'), + }, ] diff --git a/utils.js b/utils.js index c6b314a..53f8ffe 100644 --- a/utils.js +++ b/utils.js @@ -9,6 +9,18 @@ export function markdownLinkRegex(url) { ) } +export async function getRSSItemTitle(feedUrl) { + const res = await fetch(feedUrl) + const data = await res.text() + const dom = new JSDOM(data) + const item = dom.window.document.querySelector('item') + const title = item.querySelector('title').textContent + return sanitizeHtml(title, { + allowedTags: [], + allowedAttributes: {}, + })?.trim() +} + export async function getJsonFeedItemTitle(feedUrl) { const res = await fetch(feedUrl) const data = await res.json()