Torrent Updater - OS X Open Source program for checking new versions of .torrent files on popular trackers

    Torrent updater

    A year ago I had a problem. The problem was that I was tired of watching the release of new episodes of my favorite series, downloading the .torrent file from the tracker, and putting it on a jump. I wanted to automate this business somehow.

    If there is a problem, then it is necessary to solve it. I did not have an OS X development experience with Obj-c, but I had the time and desire to try it.

    About two weeks it took me to study the theory and another month to write a program. The program worked only with the tracker and was wildly buggy. Initially, I was going to put the sources on GitHub, but, looking at the quality of the resulting code, I changed my mind. I myself could barely find anything in this code. The program posted on the same RuTracker, received a lot of good reviews, but also a lot of bugs and requests. After two intermediate releases, I fixed all the bugs, changed the application graphics (thanks to olenyev from the forum) and added a couple of functions.

    Out of inexperience, I came up with a bunch of crutches and made a lot of mistakes:
    • Login / password was stored in a regular plist file, not protected in any way.
    • Most of the code was right in AppDelegate.
    • The update system worked like this: on my site I made a page where the actual release number was simply written in plain text. The program compared this number with the release number of the running program, and, if anything, offered to switch to to download the latest version of the program.
    • Variables are named differently everywhere.
    • There is no single code style.

    For almost a whole year, I did not return to this project, as well as to Objective-C in general. Gone with the roots in web development, and there was no time for the development of the program. And so nothing would have changed if I had not written to the person who thanked me for such a useful program. And then he carefully asked if support for could be made.

    I myself have long wanted to make support for, but lacked motivation. I didn’t want to touch that code even with a long stick from a safe distance, but a grateful letter awakened my faith in humanity, and I decided to rewrite everything from scratch.

    For five days I did not work, I did only this project. He wrote everything honestly from scratch, copy-pasted the old code only a couple of times. Olenyevdrew new graphics, I made a website on GitHub Pages. Another month for testing and fixing bugs, and I am ready to present my creation to the world.

    Here is the result:
    • In theory, support 10.7 - 10.9 (in practice, 10.7 - 10.8 was not tested, because I have few beta testers).
    • All tracker settings are in the .plist file => you can add new trackers for a minimum amount of time.
    • The code, in my purely unprofessional (in this area) view, is readable.
    • Update system using the Sparkle framework.
    • Logins / passwords are generally not entered or stored anywhere. Used by the cookie jar of the Safari browser.

    A couple more screenshots

    Now I’m not ashamed to show the source code to the world, you can see the project repositories in GitHub .
    You can download the program on the official website of the project .

    Also popular now: