Seedbox tools (seedboxtools)
============================

Seedbox tools is a software package that automates the process of fetching
finished torrents from your seedbox, and dispatching new torrents on your
seedbox as well.

Package contents
----------------

This package contains several tools:
    
    1. leechtorrents: a tool that leeches finished downloads from a torrent
       seedbox to your local computer.
    2. configleecher: a configuration wizard to set up the clients to work
       properly against your seedbox.

Requirements
------------
    
    - Python 2.7 on your local machine
    - Python iniparse
    - an SSH server on your seedbox, and a public key-authenticated user
      account in it, with read access to the torrents and downloads directories
    - an SSH client on your local machine
    - rsync on both machines
    - if you are using TorrentFlux-b4rt on your seedbox:
        * the command torrentinfo-console from the BitTorrent package, installed
          on the seedbox
        * the command fluxcli installed and operational on the seedbox
    - if you are using Transmission on your seedbox:
        * the command transmission-remote from the Transmission package,
          installed on your local machine
        * the API server port open so that transmission-remote can query it

Installation
------------

You will need to install this package on your local machine.

You can install this package directly from PyPI using pip::

    pip install seedboxtools

If you are on an RPM-based distribution, build an RPM from the source package
and install the resulting RPM::
    
    python setup.py bdist_rpm

Otherwise, just use the standard Python installation system::

    python setup.py install

You can also run it directly from the unpacked source directory::
    
    export PYTHONPATH=src
    bin/leechtorrents --help

Configuration
-------------

The tools require some configuration after installation.  There is a nifty
configuration wizard that will set the configuration file up.  Run it and
answer a few questions::
    
    leechtorrents

The script will ask you for the necessary configuration values before you can
run the tools here.

Note: Both TorrentFlux and Transmission protect their download and torrent
directories using permissions.  You should become part of the UNIX group
they use to protect those directories, and change the permissions
accordingly so you have at least read and list permissions (rx).
    
How to run the downloader script periodically
---------------------------------------------

You can do it with cron, or in a systemd unit file.

With cron
~~~~~~~~~

Put this in your crontab to run it every minute::

    * * * * * leechtorrents -Dql

With systemd
~~~~~~~~~~~~

Create a unit file::

    # Listing: /etc/systemd/system/leechtorrents.service
    # ====================================================

    [Unit]
    Description=Torrentleecher
    After=network.target
    
    [Service]
    Type=simple
    ExecStart=leechtorrents -g .torrentleecher.log -ql -t 30
    User=<YOUR_USERNAME_GOES_HERE>
    Restart=always
    
    [Install]
    WantedBy=network.target

Then run as root::

    systemctl reload
    systemctl enable leechtorrents.service
    systemctl start leechtorrents.service