Metadata-Version: 2.1
Name: parrot-feeder
Version: 0.10.0
Summary: Advanced multi-channel file-sharing tool
Home-page: https://github.com/le-p0pug-labs/parrot-feeder
Author: LE POPUG
Author-email: fixions@protonmail.com
Project-URL: Bug Reports, https://github.com/le-p0pug-labs/parrot-feeder/issues
Project-URL: Source, https://github.com/le-p0pug-labs/parrot-feeder
Keywords: file-sharing,ngrok,flask
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: Other Audience
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3 :: Only
Requires-Python: >=3.6, <4
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: flask
Requires-Dist: flask-autoindex
Requires-Dist: pyngrok
Requires-Dist: python-telegram-bot (==12.0.0b1)

## General Information
Advanced multichannel file sharing web server.

See also:
- https://hub.docker.com/r/lep0puglabs/parrot-feeder
- https://pypi.org/project/parrot-feeder/

Parrot-feeder is an all-in-one combination of the following tools:

- https://github.com/cyberhexe/ngflask
- https://github.com/mtalimanchuk/flask-filebox
- https://github.com/mtalimanchuk/file-squire-bot

It makes file transferring over Internet easier by giving you a tool to share a local directory through the Ngrok network. 
It lists the given directory, creates a local web server with Flask, make this server sharing the listed files and creates an Ngrok tunnel to the port used by the Flask server. In other words, exposing them on the Internet.

It also exposes an HTML page under the `/api/upload` path with a form for uploading files to the remote machine.

If you supply the tool with a telegram bot token via the `--telegram-bot-token` argument or 
via the `TELEGRAM_BOT_TOKEN` env variable, 
you will also activate a telegram bot that will `/fetch` or `/tail` files for you from remote.


*Note-1: you also need to supply the `--telegram-bot-whitelist` or `TELEGRAM_BOT_WHITELIST` 
env variable to specify the users allowed to interact with the bot.*

*Note-2: you may need to sign up for Ngrok for tunneling HTML pages.*


## Screenshots or it didn't happen.
![image info](https://i.imgur.com/nZfsTEH.png)


## Installation

Download the Docker image:

```bash
docker pull lep0puglabs/parrot-feeder:latest
```

or build the Docker image yourself:

```bash
docker build -t parrot-feeder -f ./Dockerfile .
```

Run the Docker image:

```bash
docker run --rm -it -p 4200:4200 parrot-feeder
```

Or install the package using PyPI:

```bash
pip3 install parrot-feeder
```

After starting the server, you can navigate to the following URLs:

- / - for seeing the listing
- /api/upload - for access the API for uploading files

## Usage

Serve files and folder from the current working directory 

`parrot-feeder`

or 

`docker run --rm -it -p 4200:4200 parrot-feeder`

Serve files and folders from the /tmp directory 

`parrot-feeder --directory /tmp`

Print served files to the console on startup 

`parrot-feeder --directory /tmp -pf`

Bind the server to a specific address 

`parrot-feeder --ip 10.10.10.10 --port 5050`

Print help

`parrot-feeder -h`

On startup print the actual files being shared over Ngrok

`parrot-feeder -pf`

Use a telegram bot to serve you files from the remote server:

`parrot-feeder --telegram-bot-token token --telegram-bot-whitelist username1,username2`
