Python API for MineTest
Go to file
Pascal Engélibert 953094d751 Conversion tool 2020-05-10 15:45:42 +02:00
LICENSE Initial commit 2020-05-09 14:39:38 +02:00
README.md Add cbor, gzip, lzma 2020-05-09 20:11:59 +02:00
convert.py Conversion tool 2020-05-10 15:45:42 +02:00
getblocks.py Add cbor, gzip, lzma 2020-05-09 20:11:59 +02:00

README.md

MineTest Python API

This code is dirty for the moment. Experimental purpose only.

Install

Requires MineTest blocks table to be on PostgreSQL.

Requires python3-psycopg2 (which requires libpq-dev) and cbor:

sudo apt install libpq-dev
sudo pip3 install psycopg2 cbor

Configure

Change CONFIG_DB_CONNECT with your PostgreSQL config string, and CONFIG_LISTEN with your IP and port. (leave 0.0.0.0 to listen on all addresses)

Run

python3 getblocks.py

Use

Beware of browsers which may replace > and < by &lt; and &rt; in url. Use commandline instead:

curl "http://127.0.0.1:8060/z=0/x>-5/x<5/y>20/y<=30"

Response is a JSON list of the blocks of which position verifies these conditions: a rectangle of 8×9×1 blocks.

{
    "blocks": [
        [x, y, z, data], // data is hexadecimal form of raw binary from MineTest blocks DB
        ...
    ]
}

Options:

  • fmt Response format: json (default), cbor
  • cpr Response compression: none (default), gzip, lzma

Example:

curl "http://127.0.0.1:8060/x>=0/x<100/y>=0/y<100/z>=0/z<100/fmt/cbor/cpr/gzip" > test_gzip.cbor

Prefer cbor+gzip for big imports. lzma is much slower than gzip but produces slightly smaller files. cbor is much smaller than json.

License

GNU AGPL 3.0

CopyLeft 2020 Pascal Engélibert