# TorMadeEasy: Effortless File Sharing with Friends and Family

## Share and Download Files with Ease!

TorMadeEasy is a powerful yet simple command-line tool designed to streamline the process of sharing and downloading large files using the BitTorrent protocol. Whether you want to send vacation photos to family or share a project with friends, TorMadeEasy makes it incredibly simple by leveraging Docker and ngrok for seamless, secure transfers.

No more dealing with file size limits on email or slow cloud storage uploads! TorMadeEasy sets up a personal, temporary file-sharing server right from your machine, allowing your friends and family to download directly from you with a simple magnet link.

## Features

*   **Background Downloads:** Use `tormadeeasy down` to easily start downloading files from any magnet link in the background.
*   **Simple File Sharing:** Use `tormadeeasy up` to create a magnet link for your local files, ready to be shared with anyone.
*   **Progress Monitoring:** Use `tormadeeasy progress` to check the status of your downloads.
*   **Easy Cleanup:** Use `tormadeeasy stop` to stop all services.
*   **Secure Tunnelling:** Leverages `ngrok` to create a public web seed for your shared files, bypassing complex network configurations.
*   **Dockerized:** Runs qBittorrent in a Docker container, ensuring a clean and isolated environment.
*   **Easy Installation:** Install directly via pip.

## Installation

You can install TorMadeEasy using pip:

```bash
pip install tormadeeasy
```

## Usage

### 1. Initial Setup (ngrok Authtoken)

The first time you use `up` or `down`, TorMadeEasy will prompt you for your ngrok authtoken. This token is essential for creating public links for your shared files.

1.  **Get your ngrok authtoken:** If you don't have one, sign up for a free account at [ngrok.com](https://ngrok.com) and find your authtoken on your dashboard.
2.  **Enter the token:** When prompted, paste your authtoken. It will be securely saved for future use.

### 2. Share a File (`tormadeeasy up`)

To create a magnet link for a local file and share it:

```bash
tormadeeasy up /path/to/your/file.zip
```

Replace `/path/to/your/file.zip` with the full path to the file you wish to share.

TorMadeEasy will:
*   Copy your file to a temporary uploads directory.
*   Start the qBittorrent, ngrok, and web server containers.
*   Create a magnet link for your file, including a public web seed URL powered by ngrok.
*   Start seeding the file.
*   Print the magnet link to your terminal.

The command will exit, but the containers will continue to run in the background, seeding your file.

### 3. Start a Download (`tormadeeasy down`)

To start downloading a file from a magnet link in the background:

```bash
tormadeeasy down "magnet:?xt=urn:btih:..."
```

The command will start the download and exit.

### 4. Check Progress (`tormadeeasy progress`)

To check the progress of your downloads:

```bash
tormadeeasy progress
```

This will display a progress bar for each active torrent.

### 5. Stop All Services (`tormadeeasy stop`)

When you are finished seeding or downloading, you can stop all the services with:

```bash
tormadeeasy stop
```

This will gracefully stop and remove the Docker containers.

## How it Works

TorMadeEasy orchestrates a set of Docker containers running `linuxserver/qbittorrent`, `ngrok`, and a simple Python web server. When sharing files, it uses `ngrok` to create a secure tunnel from your local machine to the internet, serving your file via the web server. This ngrok URL is embedded in the magnet link as a "web seed," allowing others to download your file even if you're behind a firewall or NAT.