From 940627fb076287826e0dfcf5d6153971048e6f5c Mon Sep 17 00:00:00 2001 From: Melanie Kat <318003+ZicklePop@users.noreply.github.com> Date: Sun, 21 Dec 2025 18:42:53 -0800 Subject: [PATCH] booklogr support --- config.js | 7 +++++++ utils.js | 9 +++++++++ 2 files changed, 16 insertions(+) diff --git a/config.js b/config.js index 3651721..1c4f8a9 100644 --- a/config.js +++ b/config.js @@ -3,6 +3,7 @@ import { getJsonFeedItemTitle, getLetterboxdActivity, getMalojaScrobble, + getReadingBooklogr, getRSSItemTitle, getTraktEpisode, markdownLinkRegex, @@ -32,6 +33,12 @@ export const items = [ regex: markdownLinkRegex('scrobbles.melkat.dev'), getLatest: async () => getMalojaScrobble('https://scrobbles.melkat.dev'), }, + { + id: 'books', + regex: markdownLinkRegex('reads.melkat.dev/profile/melanie'), + getLatest: async () => + getReadingBooklogr('https://reads-api.melkat.dev', 'melanie'), + }, { id: 'letterboxd', regex: markdownLinkRegex('letterboxd.com/zicklepop'), diff --git a/utils.js b/utils.js index b016db0..25220be 100644 --- a/utils.js +++ b/utils.js @@ -98,3 +98,12 @@ export async function getTraktEpisode(username, id) { const cleanTitle = markdownCharEscape(title) return `${cleanTitle} ![${cleanTitle}](https://widgets.trakt.tv/users/${id}/watched/thumb@2x.jpg?type=episode&image_only=1)` } + +export async function getReadingBooklogr(booklogrUrl, booklogrUser) { + const res = await fetch(`${booklogrUrl}/v1/profiles/${booklogrUser}`) + const data = await res.json() + const books = data.books.filter( + ({ reading_status }) => reading_status === 'Currently reading', + ) + return books.map(({ title }) => title).join(', ') +}