Jarr


Unit Testing NZB/Torrent Parsers with Custom String Interpolations
Jun 11, 2024 • 9 minute(s)

Disclaimer: This work is something I pursue on my own time and is neither endorsed nor supported by my employer

I’m working on an all-in one alternative to Sonarr/Radarr/Prowlarr written entirely in Swift. I call it “Jarr” (as in Jacob’s *arr). It’s been a very interesting project to work on and has let me explore lots new concepts. There are a lot of parts to the various pieces of *arr software but the one I’ll be focusing on in this post is the parsing of various details (which I’ll call ‘features’) from the titles of NZB and Torrent files.

Some of the challenges that these kinds of software face are that uploaders don’t follow a standard naming format, nor do they all include the same features in their titles. For example:

  • Some uploaders might decide that including the video codec used is important while others might decide to include the audio codec instead.
  • Some might put the resolution at the beginning of the title, others at the end.

You can probably see where I’m going with this: How do we extract the features of an upload and, more importantly, how do we test our feature extracting code?

Continue reading ...