diff --git a/markdown/incoming/.md b/markdown/incoming/.md new file mode 100644 index 0000000..93edccd --- /dev/null +++ b/markdown/incoming/.md @@ -0,0 +1,74 @@ +--- +title: "" +published: "2024-05-01T20:28:09.000000Z" +updated: "2024-05-01T20:28:09.000000Z" +--- + +It's been a few months since I shared how I had [integrated (near) realtime weather station data](https://runtimeterror.dev/display-tempest-weather-static-site/) into my [omg.lol profile page](https://jbowdre.lol). I've since done a little bit more work to start managing that (and the related [/now](https://now.jbowdre.lol) page) [with GitOps](https://scribbles.jbowdre.lol/post/gitops-for-omg-lol). Not only has that allowed me to update my pages from my terminal, but it's also made it easier (and safer) for me to tinker with the presentation. + +So today I knocked out something I'd been intended to do for ages: I set up my /now page to pull the latest album or track from my ["Now Playing" thread on MusicThread](https://musicthread.app/thread/2aVjZUocjk96LELFbV5JvJjm14v). I opted for this approach rather than direct last.fm (or other scrobbler) integration for two important reasons: + +1. It was easier, and +2. I want there to still be some degree of personal curation occurring. + +I want it to answer the question, "Hey, what are you listening to lately?" rather than just blindly reporting whatever happens to be queued up. As a visitor to someone's page, I'm less interested in what song is currently playing than I am in what music has caught their ear recently. So that's what I wanted to present on my page. + +All that is to say, this integration was pretty straight forward and I didn't even need to mess with any messy authentication. MusicThread has a [very simple API](https://musicthread.app/api), so I quickly determine that all I needed to do was make a `GET` request against: + +``` +https://musicthread.app/api/v0/thread/2aVjZUocjk96LELFbV5JvJjm14v +``` + +And it would return the thread in JSON: + +``` +{ + "links": [ + { + "artist": "Stone Sour", + "description": "", + "key": "2fnI6uEVJdT5kPyRho6XQhebmVO", + "page_url": "https://musicthread.app/link/2fnI6uEVJdT5kPyRho6XQhebmVO", + "submitted_at": "2024-04-29T22:37:22.740999Z", + "thumbnail_url": "https://img.musicthread.app/37d8a80b52457eba701fedba13a39f4687c290da/68747470733a2f2f692e7363646e2e636f2f696d6167652f61623637363136643030303062323733623432346165623531303031366461613162633032353163", + "title": "Through Glass", + "type": "track" + }, + { + "artist": "Logic, Eminem", + "description": "", + "key": "2fWfoHJysUL8LlwyiIZoo6Vjmck", + "page_url": "https://musicthread.app/link/2fWfoHJysUL8LlwyiIZoo6Vjmck", + "submitted_at": "2024-04-24T01:25:27.31569Z", + "thumbnail_url": "https://img.musicthread.app/ff084172da28a68d863de47e1e1481ba6a201fae/68747470733a2f2f692e7363646e2e636f2f696d6167652f61623637363136643030303062323733343163306164336533393338386162333332666662303233", + "title": "Homicide (feat. Eminem)", + "type": "track" + } + ] +} +``` + +I'm only interested in the newest (0th) entry, and I only need the title, artist, and page\_url. So here's the JS I hastily threw together to throw into the head element of my web/now page: + +``` + +``` + +And then I can just replace the list-item where I'd been manually inputting the music info (like a cave person) with something like this: + +``` +- Silence {headphones} +``` + +So that's now live on [now.jbowdre.lol](https://now.jbowdre.lol), and the source for the whole shebang is in [my GitHub](https://github.com/jbowdre/lolz). I even have a quick [musicthread.html](https://github.com/jbowdre/lolz/blob/main/musicthread.html)page I made for testing in case you want a quick peak at just this piece. + +=> https://scribbles.jbowdre.lol/post/2024-05-01 📡 Originally posted on Scribbles \ No newline at end of file