118 lines
No EOL
4 KiB
Markdown
118 lines
No EOL
4 KiB
Markdown
# now-updater
|
|
|
|
Automatically updates your omg.lol Now page with your latest activity.
|
|
|
|
> Fork of [melanie/now-updater](https://source.tube/melanie/now-updater) with added support for HTML output links, Mastodon, Last.fm, and dynamic URLs.
|
|
|
|
Demo: [dylan.omg.lol/now](https://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):
|
|
```html
|
|
<a href="https://your-blog.com">tktk</a>
|
|
```
|
|
**Markdown links** (before):
|
|
```markdown
|
|
[tktk](https://your-blog.com)
|
|
```
|
|
|
|
to this:
|
|
|
|
**HTML links** (after):
|
|
```html
|
|
<a href="https://your-blog.com/2025/12/my-latest-post">My Latest Post</a>
|
|
```
|
|
**Markdown links** (after):
|
|
```markdown
|
|
[My Latest Post](https://your-blog.com/2025/12/my-latest-post)
|
|
```
|
|
|
|
## Setup
|
|
|
|
1. Fork this repo
|
|
2. Enable Actions in repo settings
|
|
3. Add Actions variables: `OMGLOL_USERNAME` (your omg.lol username)
|
|
4. Add Actions secrets: `OMGLOL_KEY` (your API key), `TRAKT_SLURM` (optional, see [Trakt](#trakt) for details)
|
|
5. Add your sources in `config.js`
|
|
|
|
For local development, copy `.env.example` to `.env` with your credentials.
|
|
|
|
## Basic Example
|
|
|
|
**Now page template:**
|
|
```html
|
|
I wrote this: [tktk](https://your-blog.com)
|
|
I watched this: [tktk](trakt.tv/users/username)
|
|
```
|
|
|
|
**config.js:**
|
|
```js
|
|
export const linkFormat = 'markdown'
|
|
|
|
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 logs
|
|
- `regex`: pattern to match your link
|
|
- `getLatest`: 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 feeds
|
|
- `getJsonFeedItemTitle(feedUrl, showImage)` - JSON feeds
|
|
- `getLetterboxdActivity(username, showImage)` - Letterboxd activity
|
|
- `getTraktEpisode(username, id, showImage)` - Latest TV episode
|
|
- `getTraktMovie(username, id, showImage)` - Latest movie
|
|
- `getTraktEpisodeAndMovie(username, id, showImage)` - Latest episode and movie combined
|
|
- `getMastodonPost(feedUrl)` - Latest non-reply Mastodon post
|
|
- `getMalojaScrobble(url)` - Latest music scrobble from [maloja](https://github.com/krateng/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:
|
|
|
|
1. Go to your History page on Trakt: `https://trakt.tv/users/your-username/history`
|
|
2. There should be an RSS feed icon on the top right of the page. Click it.
|
|
3. The URL it shows will look something like this: `https://trakt.tv/users/crankle/history.atom?slurm=your-slurm-key`
|
|
4. Copy the `slurm` value from the URL and add it as a secret in your Actions settings named `TRAKT_SLURM`.
|
|
|
|
There may be a better way to get this key, but this is how I found it.
|
|
|
|
## Credits
|
|
|
|
Original project by [melanie kat](https://source.tube/melanie/now-updater). Without her work, this fork would not exist.
|
|
|
|
Thank you also to [xiffy](https://github.com/xiffy/lfm) for the Last.fm scrobble fetching service this uses.
|
|
|
|
## Support
|
|
|
|
Did you find this useful like I did? Melanie asks that you donate to [Trans Lifeline](https://translifeline.org) or [The Trevor Project](https://thetrevorproject.org) if you can. I will also add [Belong To](https://www.belongto.org) to that list. |