3.9 KiB
now-updater
Automatically updates your omg.lol Now page with your latest activity.
Fork of melanie/now-updater with added support for HTML output links, Mastodon, Last.fm, and dynamic URLs.
Demo: dylan.omg.lol/now
How It Works
Fetches content from RSS feeds, JSON feeds, and different services (Letterboxd, Trakt, Mastodon, Last.fm) and updates HTML or markdown links on your Now page. Runs every 3 hours via Forgejo Actions, only updating your page when changes are detected.
Example
Your Now page links will be automatically updated from this:
HTML links (before):
<a href="https://your-blog.com">tktk</a>
Markdown links (before):
[tktk](https://your-blog.com)
to this:
HTML links (after):
<a href="https://your-blog.com/2025/12/my-latest-post">My Latest Post</a>
Markdown links (after):
[My Latest Post](https://your-blog.com/2025/12/my-latest-post)
Setup
- Fork this repo
- Enable Actions in repo settings
- Add Actions variables:
OMGLOL_USERNAME(your omg.lol username) - Add Actions secrets:
OMGLOL_KEY(your API key),TRAKT_SLURM(optional, see Trakt for details) - Add your sources in
config.js
For local development, copy .env.example to .env with your credentials.
Basic Example
Now page template:
I wrote this: [tktk](https://your-blog.com)
I watched this: [tktk](trakt.tv/users/username)
config.js:
export const linkFormat = 'html'
export const items = [
{
id: 'blog',
regex: htmlLinkRegex('your-blog.com'),
getLatest: async () => getJsonFeedItemTitle('https://your-blog.com/feed.json'),
},
{
id: 'letterboxd',
regex: htmlLinkRegex('letterboxd.com/username'),
getLatest: async () => getLetterboxdActivity('username', true), // with image
},
{
id: 'trakt-movie',
regex: htmlLinkRegex('trakt.tv/users/username'),
getLatest: async () => getTraktMovie('username', 'your-trakt-id', false), // text only
},
]
Configuration
Edit config.js to define your content sources. Each item needs:
id: identifier for logsregex: pattern to match your linkgetLatest: async function that fetches and returns latest content
Set linkFormat to 'html' or 'markdown' depending on your Now page format.
Available Functions
getRSSItemTitle(feedUrl)- Standard RSS feedsgetJsonFeedItemTitle(feedUrl, showImage)- JSON feedsgetLetterboxdActivity(username, showImage)- Letterboxd activitygetTraktEpisode(username, id, showImage)- Latest TV episodegetTraktMovie(username, id, showImage)- Latest moviegetTraktEpisodeAndMovie(username, id, showImage)- Latest episode and movie combinedgetMastodonPost(feedUrl)- Latest non-reply Mastodon postgetMalojaScrobble(url)- Latest music scrobble from maloja
Note: showImage (defaults to true) controls whether images/posters are included in the output. Set it to false to show text only.
Trakt
To get your Trakt slurm key, follow these steps:
- Go to your History page on Trakt:
https://trakt.tv/users/your-username/history - There should be an RSS feed icon on the top right of the page. Click it.
- The URL it shows will look something like this:
https://trakt.tv/users/crankle/history.atom?slurm=your-slurm-key - Copy the
slurmvalue from the URL and add it as a secret in your Actions settings namedTRAKT_SLURM.
There may be a better way to get this key, but this is how I found it.
Credits
Original project by melanie kat. Without her work, this fork would not exist.
Support
Did you find this useful like I did? Melanie asks that you donate to Trans Lifeline or The Trevor Project if you can. I will also add Belong To to that list.