In 2007, LottaNZB started as a nice little project with great ambitions. With joined forces of numerous contributors, it made fast progress in the following year, with the goal of providing the most easy and convenient way of downloading files from the Usenet for Linux desktops.
For a long time, LottaNZB’s backend, HellaNZB, served us well as the piece of software that did the actual work for our graphical application. However, to our regret, the project hadn’t been maintained since the time LottaNZB was initially born. First, this wasn’t that severe, but we spent more and more time thinking about how to overcome and work around the limitations of HellaNZB’s capabilities, especially the ones of its API. The HellaNZB developers didn’t really express interest in continuing the development of HellaNZB, mostly due to the lack of time. Additionally, with the release of Python 2.6 and Python 3.0, we’re entering a new age of Python that requires developers to update their applications.
We initially thought that we could revive the HellaNZB project by providing patches and implementing new features. The problem is that diving in to another applications code always takes a long time and that some changes LottaNZB would really benefit from would probably require quite an amount of work. Additionally, we, the core developers of LottaNZB, don’t have much knowledge about networking stuff, that might be required to fix the inherently broken bandwidth throttling. A simple patch fixing Python 2.6 deprecation warnings that was submitted to the HellaNZB developers wasn’t applied to the code-base.
Being one of the core developers of LottaNZB I started to realize that developing a third-party application for a dead and more and more broken project is kind of frustrating. What I knew for sure is that I don’t want LottaNZB to die because as an NZB grabber, it’s a quite unique and valuable application with its simple and tidy user interface.
In the past year, other NZB grabbers gained more and more attention, notably SABnzbd, while HellaNZB presumably didn’t attract many new users. Especially SABnzbd, which is a NZB grabber with a browser interface, is being developed at an incredible pace and has a large active community. During the past months, I saw this project as a competitor and disliked that they had that many downloads. But during a conversation with a LottaNZB user from Portugal named VuDu, the following idea came up:
What if LottaNZB was ported to SABnzbd?
I felt guilty when I first thought about this, but the longer I think about it, the more reasonable it appears to me. The upcoming SABnzbd 0.5 offers an API that offers much more information and methods than HellaNZB’s one. Surprisingly, there are still no GTK applications based on SABnzbd, except for a tiny tray applet for the GNOME desktop. This means that LottaNZB would definitely fill a gap because personally, I prefer a shiny and well-integrated GTK application over a web interface in my browser of choice while it still leaves the possibility of accessing it from a remote location. SABnzbd runs equally well on Windows, Linux and Mac OS X. Because of the project’s large user base, we would probably even attract more users than we do now.
Such a transition would require quite an amount of changes in LottaNZB’s code, but overall it wouldn’t be necessary to make much changes to the GUI and rewriting the invisible parts of LottaNZB can also be seen as an opportunity to make it much better than before thanks to the things we’ve learned about it in the past.
I got in touch with the lead developers of SABnzbd a while ago. Telling them about the potential future of LottaNZB, they expressed interest and told me that they would be eager to help us with the transition.
In the past days, I’ve been working closely together with Shypike, a very friendly and collaborative SABnzbd developer, and provided him with a couple of fixes for SABnzb’s API, which soon after showed up in SABnzbd’s codebase. Collaboration between application and team boundaries: A crucial element in the world of Free Software everyone profits from and that motivates people to create amazing software!
Suppose we make this migration, there are couple of goals we would intend to achieve: Firstly, the migration from HellaNZB to SABnzbd should be as painless as possible for every LottaNZB user, that’s why we will provide an automatic import of configuration data. Ideally, user shouldn’t even notice that LottaNZB uses a different backend. Next, with the new version, it should be possible to do everything that was possible in past version of LottaNZB, which the same or an improved friendly graphical user interface.
In the past weeks, I’ve been working on code that can handle SABnzbd configuration data and is able to import existing HellaNZB configuration files. Next, I’ve started to implement the new backend, which aims to be much more modular and extensible and to make the UI more responsive. But there are still lots of things to do.
We will definitely release LottaNZB 0.5 in the near future, which will be based on HellaNZB and contain the cool stuff we’ve been working on since January. You may find a preview of this version on this blog soon as well as a post about what cool piece of software Sander has been working on in the past weeks! Stay tuned!
And of course, we would like to know from you, the LottaNZB users, what you think about the whole thing!