BTQueue

Handling duplicate filename properly in BTQueue

Long time ago, I used BTQueue for massively downloading large amount of files automatically by crawling trackers periodically. Then I got a problem due to duplicate filename, e.g., AVSEQ01.DAT or MUSIC01.DAT. This problem was caused by users who didn’t rename filename to what it should be. In addition, BTQueue have never asked destination directory, filename, or directory name because I designed it for fully automatic downloading. Interactive actions must not be used here at all. At that time, I solved this problem by automatically renaming that files to somewhat unique. However, this feature disappeared since BTQueue 0.1.0. Now, it’s time to solve it again.

Synchronize data mirror with BitTorrent

Assuming that you are a part of large-scale international collaboration. In this collaboration, you are focusing on analyzing large amount of data. To read the data efficiently, the data should be stored as near as your computer. By the way, parties locate on different network and different country. As a result, the data must be mirrored from the origin server to each party dedicated server. There are so many options to satisfy this requirement. For example, rsync and mirror. Anyway, both tools do not scale well for big network. We are talking about content distribution problem that initially there are only one complete source. BitTorrent fits in this situation perfectly.

Access trackers in BTQueue by wget and wpost

I developed BTQueue especially for running in pure text mode without any graphical interface to make it easy to run on any machines (mostly Linux). So you are able to add new metadata by given URL. However, there are so many private trackers around this world. BTQueue can’t access to the given URL of private trackers directly due to unauthentication problem. As a result I added wget and wpost commands for a year.

Peer backs with verbose log

Since BTQueue has been moved its core back to BitTorrent, "peer" command was malfunction. Now, it backs again. You can see peers which the tracker responses by just as below.

peer [id]

In addition, you might want to see what is going on at current time. "last_message" also has been re-enabled. Anyway, there is only one message to indicate announce URL.

BTQueue 0.1.2 454

I’m very proud to announce the release of BTQueue 0.1.2 454. This release is mainly targeted to handling incorrect data sent from some private trackers gracefully. Actually, I was inspired by a post in forum. It turned out that BTQueue can’t talk to some private trackers and raised error message like: bad data from tracker - invalid bencoded value (data after valid prefix). Million thanks to dodgy, I managed to find the problem. Let me give you some example. Assuming that a tracker returns below data after receiving an announce message.

d8:intervali1800e5:peers6:B__}__ee 

BTQueue 0.1.1 451

I am very happy to announce the release of BTQueue 0.1.1 at release number 451. In this version, I focused on fixing race condition, handling error and integrating to external frontend. There is one change that you have to know. resume command now just changes any state of given ID to waiting for the next scheduling. If you want to force it to run immediately, you have to use option "-f". Two commands are introduced in this version: du (disk usage) and df (disk free). These commands are to help integration with external frontend with quota support. Lastly, you are able to see latest error message again.