~comcloudway/pages

9e7de57d48e156ae6067e14c5501b523646bb0c1 — Jakob Meier 8 months ago 2ebfe3c
Finally wrote the introducting oomph blog post

(didn't take me about one year sth sth)
1 files changed, 82 insertions(+), 0 deletions(-)

A content/blog/projects/oomph.org
A content/blog/projects/oomph.org => content/blog/projects/oomph.org +82 -0
@@ 0,0 1,82 @@
#+TITLE: Oomph
#+DESCRIPTION: Introduction Oomph! A mastodon music-genre bot
#+KEYWORDS: music fediverse mastodon bot
#+DATE: <2024-02-09 Fri 15:50>

* Why?
About two years ago I had a friend reach out to me asking whether it would be possible,
to build an app that notifies its users every day / every other day / every week,
and introduces them to a new genre of music.

After some back and forth, said friend agreed to create a mastodon account and follow the bot I had yet to write.

You might be wondering: Why not a normal app with notifications?
And that is a great question, because it would probably be better for the users,
however, I don't really like Google Firebase, nor did I own a server that was guaranteed to be up 24/7.

* How
As I mentioned before, when I started the bot, I didn't own a server that was running every day,
so running a service people depended on (or at least one person) was kind of impossible.

This is where mastodon comes into play,
basically, most Mastodon servers allow you to schedule posts.
And when the time specified when scheduling the post is reached,
it will automatically post the message for you.
Which is great - especially because I don't think there is a message limit,
or at least I've never reached the limit in [[https://botsin.space/][botsin.space]],
which is where the official oomph account has been hosted since ~Sep 22, 2022~.

* Getting the data
After figuring out the /server setup/ it was time to get my hands on a lot of genres - and with a lot I mean a lot.

My friend recommended this list [[https://everynoise.com/everynoise1d.html][from everynoise.com]],
which appears to be created by Spotify,
based on all the genres on their platform.

I then performed these steps to get the data:
1. ~Ctrl-A~
2. ~Ctrl-C~
3. Open a new file in ~neovim~
4. ~Ctrl-Shift-V~
5. use neovim macros and regex to fix the file

Afterwards, I shuffled the list and saved it.

* Iterations
The first version of oomph was written using bash and can still be found [[https://codeberg.org/comcloudway/oomph/src/branch/shell][here]],
after getting somewhat annoyed by bash and the fact the code was really hard to read and extend,
I decided to rewrite it in ~vlang~,
which turned out great, and you can have a look at the ~vlang~ version [[https://codeberg.org/comcloudway/oomph/src/branch/vlang][here]],
however I still wasn't happy,
because I thought that the cli pages weren't as beautiful as they could be.

Which is how the current version of oomph was born,
which is completely rewritten in rust.
Because, why not?

If you want to have a look at the source code and usage instructions,
if you want to host oomph for yourself,
head over to the [[https://codeberg.org/comcloudway/oomph/releases/tag/v0.3.0][codeberg page]].

Also, the rust rewrite featured a user-friendly ~.toml~ file to configure the bot,
because I always lost my token and the number of the last genre,
which is now handled by a config file.
This file also gives you control about nearly everything the bot can do,
so you could totally repurpose it to share recipe ideas or something like that.

* The future
To be honest, I didn't expect oomph to get many, if any, followers at all,
and whilst I'd love to see more people following the account,
I'm sure there are better bots out there,
but this one doesn't require a running server (only me going in and scheduling a new set of posts ever other month).

In fact,
if we keep going at the rate we are currently going (posting a genre every other day),
we'll last for about 30 years - I think.

The genre list currently has ~5963~ lines,
and we've had the first ~280~ genres so far.

* Follow Me
If this post sparked your interest, and you want to get to know a new music genre every other day,
then head over to [[https://botsin.space/@oomph][Mastodon]].