My Petty Curseforge Search project

I play Minecraft a lot with my friends, it's a cool game to just chill and hang out and sometimes be mindless while other times be mentally invested. Modded Minecraft is even better for this with the absurd amount of mods and modpacks available for any type of player or play style.

For instance, I like tech mods or things with a sort of industrial automation feel to them while my friend (whose username on most things is Osmrt1 or some variation) prefers more magic based stuff like Botania or Thaumcraft.

If you've used Curseforge for any amount of time to find modpacks you'll probably have noticed there is no way (at least that I've found) that allows you to search by two or more different pack types (will now be referred to as tags) at the same time.

In other words, if you want a magic and tech modpack you need to pick one of those options to filter by for example magic, and then ignore all options that don't include the other option you want, tech. Rather than being able to filter out all except those that include magic and tech both.

I did not like this method, it's clunky and tedious. So I decided to work on a new project probably not in the most efficient method but it's mostly just a petty project that gave me a reason to learn more and just have something to do when I'm bored.

Now that the background is done let us get into the next part of this article.

Ok, so I decided to find a way to sort the modpacks on Curseforge by more than one tag at a time, but even though I decided that I didn't consider how I would do it, but I did have an idea of some necessary tasks.

  1. create some database to store the pack data for my backend since I probably can't use Curseforges's database (and it's practice creating and using a database)
    • I originally considered using MySQL or SQL Server since those I had experience in and knew what I was capable of, but later decided on a better option after learning a little bit about MongoDB
  2. I knew I'd have to pull data off of the Curseforge site since again they probably wouldn't give me access to their database,
    • I decided to use selenium for this since I know that technology well enough but still know I need more experience and practice with it.
  3. I had to pick a language to utilize, this wasn't as important to me since in the beginning, I thought I'd make this a "my use" only project, so in the future, I may have to rewrite in a better language or improve the codebase in the current language,
    • I chose java for the site parsing cause I know it well enough and I've used selenium with it a lot and have a lot of code already written for parsing I can implement it here with some smart refactoring.

There's more I'll have to consider and work with later, but this is where I'm at now with the project, I've gotten it to where it pulls all the data I want it to from each pack on the site and is capable of navigating pages. I'm going to add a function to slow the number of times my program hits the site to a reasonable amount to avoid spamming the site before I set it to pull all current pack data.

There are more places I plan to take this program and even though it's pointless it's giving me a project to build and learn with, and it's something to do.

I'm probably gonna expand on how I got to this point in more detail on each of the above points in different articles, so if you're interested look out for that.

I'm still learning both programming and blogging, please leave any advice or comments on both to help me improve in either category. Thank you for your time, have a nice day.