ctorrentKilka lat temu, w dawnych mrocznych czasach kiedy transmission i rtorrent powstawały w pocie czoła dostępny był pewien program konsolowy o nazwie ctorrent. Później zaprzestano jego rozwoju, podniósł się z popiołów ponownie pod nazwą Enhanced ctorrent, który również został porzucony. Autor projektu postanowił dalej kontynuować pracę pod nazwą dtorrent, jednakże od 3 lat jest to tylko już zamiar.
Niezaprzeczalną zaletą tego programu jest wielkość - po skompilowaniu binarka ma 185KB, do swojego działania wymaga jeszcze pewnej biblioteki która całkiem możliwe znajduje się w systemie. Następną zaletą tego programu jest możliwość skompilowana go na większość platform, a także to, że ten program po prostu... działa. Nie jest on rozwijany, nie jest za bardzo optymalizowany, ale robi to co do niego należy - ściąga pliki torrent i ma stosunkowo niewielkie wymagania systemowe. Więc jeżeli komuś nie przeszkadza, że ulubiony serial zamiast 15min może ściągać się 2 godziny - ten program może być dla niego.
Program jest konsolowy (o gui za chwilę), po jego uruchomieniu dostajemy help, np:
root@OpenWrt:~# ctorrent
Enhanced CTorrent dnh3.3.2 Original code Copyright: YuHong(992126018601033)
WARNING: THERE IS NO WARRANTY FOR CTorrent. USE AT YOUR OWN RISK!!!
General Options:
-h/-H Show this message
-x Decode metainfo (torrent) file only, don't download
-c Check pieces only, don't download
-v Verbose output (for debugging)
Download Options:
-e int Exit while seed <int> hours later (default 72 hours)
-E num Exit after seeding to <num> ratio (UL:DL)
-i ip Listen for connections on specific IP address (default all/any)
-p port Listen port (default 2706 -> 2106)
-I ip Specify public/external IP address for peer connections
-u num or URL Use an alternate announce (tracker) URL
-s filename Download ("save as") to a different file or directory
-C cache_size Cache size, unit MB (default 16MB)
-f Force saved bitfield or seed mode (skip initial hash check)
-b filename Specify bitfield save file (default is torrent+".bf")
-M max_peers Max peers count (default 100)
-m min_peers Min peers count (default 1)
-z slice_size Download slice/block size, unit KB (default 16, max 128)
-n file_list Specify file number(s) to download
-D rate Max bandwidth down (unit KB/s)
-U rate Max bandwidth up (unit KB/s)
-P peer_id Set Peer ID prefix (default "-CD0303-")
-A user_agent Set User-Agent header (default "Enhanced-CTorrent/dnh3.3.2")
-S host:port Use CTCS server at host:port
-a Preallocate files on disk
-T Convert foreign filenames to printable text
-X command Run command upon download completion ("user exit")
-d Daemon mode (fork to background)
-dd Daemon mode with I/O redirection
Make metainfo (torrent) file options:
-t Create a new torrent file
-u URL Tracker's URL
-l piece_len Piece length (default 262144)
-s filename Specify metainfo file name
-p Private (disable peer exchange)
-c comment Include a comment/description
Example:
ctorrent -s new_filename -e 12 -C 32 -p 6881 example.torrent
home page: http://ctorrent.sourceforge.net/
see also: http://www.rahul.net/dholmes/ctorrent/
bug report: http://sourceforge.net/projects/dtorrent/ or dholmes@ct.boxmail.com
original author: bsdi@sina.com
Najprościej uruchomić go podając plik torrent, np:
ctorrent http://vodo.net/assets/torrents/Pioneer.One.S01E04.720p.x264-VODO.torrent
Chociaż warto podać parę opcji, np:
-C 2 (2MB cache w pamięci)
-T (zamienia znaki narodowe na kody)
-U 10 (max upload to 10KB)
-E 0.2 (wyjdź po osiągnięciu ratio 0.2)
-d (rób to w tle)
czyli
ctorrent -C 2 -T -U 10 -E 0.2 -d http://vodo.net/assets/torrents/Pioneer.One.S01E04.720p.x264-VODO.torrent
I tak trzeba postąpić dla każdego pliku torrent. Oczywiście można to zautomatyzować - przesyłać pliki *torrent do określonego katalogu, w cronie sprawdzać istnienie plików i uruchamiać ctorrenta dla każdego z nich. Sam ctorrent umożliwia także wykonywanie skryptów po zakończeniu pobierania.
GUISam ctorrnet umożliwia pracę w trybie "samodzielnym" jak również "serwerowym", gdzie nasłuchuje na określonym porcie i oczekuje poleceń do wykonania. Dzięki temu powstało kilka gui do niego, takich jak perlowy dctcs, udm czy yodcts.
Ten ostatni jest mieszanką demona napisanego w C oraz kodu w js napisanego przy użyciu GWT. Strona projektu:
http://sites.google.com/site/yodctcs/. Sam projekt jest martwy tak samo jak ctorrent, ale dostępne są źródła więc można przekompilować to na aktualne platformy i używać wraz z ctorrentem jako zamiennik np. transmission.
Przykładowy wygląd ekranu:

Instalacja jest prosta (opisane dla platformy ar71xx): należy zainstalować plik (dostępny jest u mnie w repo):
opkg update
opkg install http://ecco.selfip.net/backfire/packages/yodctcs_0.7.2-1-PL_ar71xx.ipk
A następnie uruchomić
/etc/init.d/dctcs enable
/etc/init.d/dctcs start
Plik konfiguracyjny znajduje się w
/etc/dctcs.conf, należy tam ustawić katalog w którym będą ściągane pliki (domyślnie:
/mnt/sda1), login/hasło do interfejsu (domyślnie
admin/admin) oraz port na którym nasłuchuje to GUI (domyślnie
18000). Czyli do gui domyślnie dostajemy się przez
http://192.168.1.1:18000Do swojego działania nie potrzebuje osobnego serwera www. GUI umieszczone w mojej paczce jest całkowicie w języku polskim. Dodatkowo możliwe jest ściąganie plików z http/ftp po instalacji pełnej wersji wget'a.