|
The Python scripts below are what I and a few others use for torrenting Linux ISOs. Combined they offer 90% of the functionality in Azureus without the Java overhead, and coming in at around 1200 lines of code. See all the scripts in subversion. README.txt: Documentation. You should probably read this, hence the name. btrss.py: RSS feed monitoring. Will download a torrent based on expressed interests (regular expressions stored in a text file). cleartorrents: Clears a torrent from a user's ~/torrents.list file (maintained by 'stop', below). Appends downloaded torrent to ~/.fetched_files, moves 'expired' torrent to expired directory (defined in common.py, below) common.py: Setup module for everything, lots of defines and shared function calls. findexpired: Finds and removes expired (> 15 day old, configurable) torrents. Should be run from root's crontab. launchmanyxml: Custom front-end for LaunchMany, this emits XML and keeps track of upload/download stats in a DBM file. printlink: Allows users to download a torrent without stopping it via the use of hardlinks. showdownloads: Shows what's being downloaded by others. htmld: Generates a webpage showing what's being downloaded, speeds, ratio, etc. start: Starts torrents. Keeps track of torrent hashes that have been downloaded and won't process them without forcing (-f flag) the download. Can also fetch from URLs provided users have a Netscape-compatible cookies file. stop: Stops torrents. Can also pause (-p/--pause) torrents or flat out delete torrents (-d/--delete flag). Will escape unsafe shell characters for automation purposes, appends torrent name to ~/torrents.list for automation purposes. getfiles.sh: Client-side script that will download torrents from one machine to another. Calls cleartorrents on each torrent it processes. |