diff --git a/README.md b/README.md index 9a07cd6..b5457b2 100644 --- a/README.md +++ b/README.md @@ -2,17 +2,76 @@ Update your Now page, automatically +[**Demo**](https://melanie.lol/now) + ## How It Works -tktk +You define a connection and a URL in the `config.js` file so that it looks for a Markdown link with the URL and replaces the text with the connection's value. + +For example: +```markdown +- {blog} [tktk](https://melkat.blog) +``` + +Becomes: +```markdown +- {blog} [My Latest Post](https://melkat.blog) +``` + +To keep this going automatically, we use a Forgejo Action runner configured to run every three hours. + +While it does run every three hours, it only updates your now page when there has been a change. ## Getting Started -tktk +1. Fork this repo, and go to theTRAKT_SLURM _Settings_ tab, select _Actions_ and go to _Variables_ +2. Create a variable `OMGLOL_USERNAME` and set it to your omg.lol username. So for me, it's `melanie` + - This is where you store nonsensitive variables. Currently this is only used for your omg.lol username. +3. Also in _Settings_ under _Actions_, select _Secrets_ +4. Create a secret `OMGLOL_KEY` and set it to your omg.lol API key + - This is where you will define any sensitive keys, for example I use `TRAKT_SLURM` to store my _SLURM_ key. + +If you're running this locally, you may also want to copy the `.env.example` to `.env` and store those values there too. The `.env` file is git ignored for a reason, so be sure not to commit it. -## Questions +## Configuring -tktk +Configuring is all done within the `config.js` in the `items` array. + +For example, to get the latest post from my blog's JSON feed. + +```js +{ + id: 'blog', + regex: markdownLinkRegex('melkat.blog'), + getLatest: async () => + getJsonFeedItemTitle('https://melkat.blog/feed.json'), +}, +``` + +- `id`: Used for logs +- `regex`: The regex used for finding the markdown link to replace the link text of +- `getLatest`: an async function to fetch the data and return a string used to be the new link text + +### Available Functions + +#### Basics + +- `getJsonFeedItemContent(JSONFEED_URL)`: For getting the `content_html` of a JSON feed item and when available the item's `image` +- `getJsonFeedItemTitle(JSONFEED_URL)`: For getting the `title` of a JSON feed item and when available the item's `image` +- `getRSSItemTitle(RSS_URL)`: For getting the `title` of a RSS feed item + +#### Service Specific + +- `getLetterboxdActivity(LETTERBOXD_USERNAME)`: For getting the latest item from your Letterboxd RSS feed and the image from the description +- `getMalojaScrobble(MALOJA_URL)`: For getting the latest scrobble artist and track title +- `getTraktEpisode(TRAKT_USERNAME, TRAKT_ID)`: For getting the latest watched TV episode's show name, season and episode number, episode title, and episode image + + +## Support + +Got a question? Reach out to me on Mastodon, [@zicklepop@nyan.lol](https://nyan.lol/@zicklepop) and I will do my best. + +Did you find this useful? Donate to [Trans Lifeline](https://translifeline.org) or [The Trevor Project](https://thetrevorproject.org).