A year ago, I had a problem. The problem was that I was tired of following the release of new episodes of my favorite series, downloading the .torrent file from the tracker, and putting it on the jump. I wanted to automate this business somehow.
If there is a problem, then it is necessary to solve it. I didn’t have experience in developing OS X on Obj-c, but I had time and desire to try.
')
It took me two weeks to study the theory and another month to write the program. The program worked only with the tracker
RuTracker.org and wildly buggy. Initially, I was going to put the source code on GitHub, but, having looked at the quality of the resulting code, I changed my mind. I could barely find anything in this code. I put the program on the same
RuTracker , received many good reviews, but also many bugs and requests. After two intermediate releases, I fixed all the bugs, changed the graphics of the application (thanks to the user
olenyev from the forum RuTracker.org) and added a couple of functions.
Due to inexperience, I made up a bunch of crutches and made a lot of mistakes:
- Login / password was stored in the usual plist file, not protected at all.
- Most of the code was right in AppDelegate.
- The update system worked like this: I made a page on my website, where the actual release number was written in plain text. The program compared this number with the release number of the launched program, and, if anything, suggested switching to RuTracker.org in order to download the latest version of the program.
- Variables are named differently.
- There is no uniform code style.
For almost a year, I have not returned to this project, nor to Objective-C in general. Gone with roots in web development, and there was no time to develop the program. And so nothing would have changed if I had not written a person who thanked me for such a useful program. And then I carefully asked if it was possible to make support for New-Rutor.org.
I myself have long wanted to make support for Kinozal.tv, but I lacked motivation. I did not 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. I wrote everything honestly from scratch, copy-paste the old code only a couple of times.
Olenyev drew new graphics, I made a site on GitHub Pages. Another month for testing and fixing bugs, and I am ready to present my creation to the world.
Here's what happened in the end:
- In theory, support for 10.7 - 10.9 (in practice, 10.7 - 10.8 has not been verified, because I have few beta testers).
- All tracker settings are in the .plist file => new trackers can be added in the minimum amount of time.
- The code, in my opinion, unprofessional (in this area) opinion, is readable.
- System updates using the Sparkle framework.
- Logins / passwords are not entered or stored anywhere at all. Safari's Cookie Jar is used.
A couple more screenshots
Now I am not ashamed to show the source code to the world; you can see it in
the project's GitHub repository .
You can download the program on the
official website of the project .