Giter Site home page Giter Site logo

docker-usenetter's Introduction

This docker project automatically downloads torrents from RSS feeds and reuploads them to usenet. This project uses rtorrent and GoPostStuff. GoPostStuff has been precompiled for ease of use.

Disclaimer: What you do with this software is your business. I am not responsible for any illegal use of usenetter or associated software.

Usage

Make sure you have a host with docker installed and configured. While the scripts can be used by manually installing the necessary tools on a host, using docker makes the process much smoother. If you have never used docker before, please visit docker's Getting Started page.

Run the following:

git clone https://github.com/papersackpuppet/docker-usenetter.git
cd docker-usenetter

To configure the container, you need to pass environment variables to the container. You can do this by modifying the Dockerfile and replacing each ENTERME with the appropriate values for your needs. The recommended way to do this is set up defaults in the Dockerfile (such as usenet server, username, password), build the image, and pass variables as needed for each new container(such as RSS feeds, usenet groups). You can have multiple RSS feeds per container but each torrent downloaded will be uploaded to only the groups passed in.

Expected environment variables:

RSS_FEEDS
RSS_REFRESH_TIME (in minutes, default 3)
USENET_SERVER
USENET_PORT
USENET_TLS (default on)
USENET_USERNAME
USENET_PASSWORD
USENET_POST_GROUP
USENET_POST_AS

Edit the Dockerfile to set default environment variables. Afterwards, run the following command.

docker build -t papersackpuppet/usenetter .

Next, you will need to create an environment variable file to pass to the new docker container. The contents of the file will be like below. Remove any lines that you configured in the Dockerbuild file. Options here will override options created in the Dockerbuild file.

nano envVars
RSS_FEEDS=http://linuxtracker.org/rss_torrents.php?feed=dl&cat[]=563&pid=00000000000000000000000000000000
RSS_REFRESH_TIME=3
USENET_SERVER=news.usenet.com
USENET_PORT=443
USENET_TLS=on
USENET_USERNAME=myusername
USENET_PASSWORD=mypassword
USENET_POST_GROUP=alt.binaries.cd.image.linux
USENET_POST_AS=LinuxUploader

The above example will follow the Ubuntu release RSS feed on Linuxtracker, download the images, and upload them to alt.binaries.cd.image.linux as LinuxUploader. Multiple RSS feeds can be used if they are space delimited.

Run a new container:

docker run -dti --env-file envVars papersackpuppet/usenetter

The container will now be running and will soon be picking up torrents. You can attach to the running container to see which torrents are being downloaded or processed. Replace runningContainerId below with the appropriate container ID for usenetter.

docker ps
docker attach [runningContainerId]

When you attach, you will see Rtorrent running inside tmux. Standard rtorrent and tmux commands will work. However, if rtorrent is exited, it will need to be restarted. From here, you can open a new pane inside tmux and check log files if necessary. To exit the attached container but not kill rtorrent, use Ctrl+P & Ctrl+Q.

Usenetter keeps track of which torrents it has downloaded inside finished.pickle. This is a pickle file for a python list containing the urls downloaded. If this is cleared for any reason, usenetter will pick up torrents that have been downloaded previously. Therefore, it is recommended RSS feeds include a date limited feature such as maxage.

When uploading is complete, the files are deleted.

docker-usenetter's People

Contributors

johndoe65535 avatar josharrington avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.