Metadata-Version: 2.1
Name: gigafile
Version: 3.2.2
Summary: A python module to download and upload from gigafile.nu
Home-page: https://github.com/fireattack/gfile
Author: Sraqzit, fireattack
License: GNU 3.0
Project-URL: Source, https://github.com/fireattack/gfile
Project-URL: Tracker, https://github.com/fireattack/gfile/issues
Platform: Linux
Platform: Mac OS-X
Platform: Windows
Platform: Unix
Description-Content-Type: text/markdown; charset=UTF-8
License-File: LICENSE
Requires-Dist: requests>=2.25.1
Requires-Dist: requests_toolbelt>=0.9.1
Requires-Dist: tqdm>=4.61.2
Requires-Dist: beautifulsoup4>=4

[![PyPI Version](https://img.shields.io/pypi/v/gigafile.svg)](https://pypi.python.org/pypi/gigafile)

# gfile

A python CLI/module to download and upload from [gigafile](https://gigafile.nu/).

Note: PyPI package name is `gigafile` since `gfile` wasn't available. Both CLI and module names are still `gfile`.

A major update from [the original](https://github.com/Sraq-Zit/gfile). Highlights:

* Fixed multi-thread uploading (and made sure each threads finish in order so the final file is not broken)
* Fixed download filename issue
* Some refactoring and QoL changes.

## Install
    $ pip install -U gigafile
or

    $ pip install -U git+https://github.com/fireattack/gfile.git

## Usage
### CLI
```bash
$ gfile upload path/to/file

$ gfile download https://66.gigafile.nu/0320-b36ec21d4a56b143537e12df7388a5367

$ gfile -h
usage: Gfile [-h] [-p] [-o OUTPUT] [--aria2 [ARIA2]] [-n THREAD_NUM] [-s CHUNK_SIZE] [-m CHUNK_COPY_SIZE] [-t TIMEOUT] [-k KEY] {download,upload} uri

positional arguments:
  {download,upload}     upload or download
  uri                   filename to upload or url to download

options:
  -h, --help            show this help message and exit
  -p, --hide-progress   hide progress bar
  -o OUTPUT, --output OUTPUT
                        output filename for download (default: use original name)
  --aria2 [ARIA2]       download with aria2. You can also specify optional arguments (default: "-x10 -s10", make sure to quote). `-o` is already automatically included.
  -n THREAD_NUM, --thread-num THREAD_NUM
                        number of threads used for upload [default: 8]
  -s CHUNK_SIZE, --chunk-size CHUNK_SIZE
                        chunk size per upload in bytes; note: chunk_size*thread will be loaded into memory [default: 100MB]
  -m CHUNK_COPY_SIZE, --copy-size CHUNK_COPY_SIZE
                        specifies size to copy the main file into pieces [default: 1MB]
  -t TIMEOUT, --timeout TIMEOUT
                        specifies timeout time (in seconds) [default: 10]
  -k KEY, --key KEY, --password KEY
                        specifies the key/password for the file
```

### Module
#### Import
```py
from gfile import GFile
```
#### Download
```py
filename = GFile('https://XX.gigafile.nu/YYY').download()
```

#### Upload
```py
url = GFile('path/to/file', progress=True).upload().get_download_page()
```
