/labylib

Python API to modify LabyMod cosmetics

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Labylib

Cosmetics API for Labymod

GitHub release (latest by date including pre-releases) GitHub last commit Maintenance

Modify LabyMod cosmetics programmatically with Python.

labylib is in no way sponsored by or affiliated with LabyMod or LabyMedia GmbH.
This program is offered as-is and might stop working at any time.

Installation

  1. Download and install Python 3.
  2. Install the latest version of labylib with pip

PyPI PyPI - Wheel

$ python3 -m pip install labylib

Quickstart

  1. Import a labylib Module from the list of available modules.
from labylib import <MODULE>
  1. Each Module comes with a set of classes available to each cosmetic. Pick a class for your Module. (Visibility,Texture etc.)
  2. Initialize the class by passing it a PHPSESSID
    Here's what it is and where to find it
# Example
cape_vis = Cape.Visibility(PHPSESSID)
  1. Call update() with a value expected by the class. Just like Modules, the value expected depends on the class.
# Example
cape_vis.update("show")

Advanced Usage

Request headers and cookies:

Each class instance can be modified before update() is called to make changes to the request headers, cookies etc. You can even add additional encoded form data to the request body if necessary.

labylib uses Requests under the hood and request parameters like headers and cookies can be modified in accordance with Request's conventions.

# This will send add a "foo=bar" cookie and header with the request
cape_vis.cookies["foo"] = "bar"
cape_vis.headers["foo"] = "bar"

cape_vis.update("show")

Append form data to the request body of an instance:

For x-www-form-urlencoded requests: Append form data with the addEncodedFormData(key,value) method:

# This will add "foo=bar" to the URL encoded payload
cape_vis.addEncodedFormData("foo","bar")
cape_vis.update("show")

For multipart/form-data requests: Append binary form data with the addBinaryFormData(key,payload) method:

# This will create a new payload boundary containing "foo=bar"
cape_texture.addBinaryFormData(b"foor",b"bar")
cape_texture.update("show")

You can also append image/png files by passing "file" as the key argument. You can either pass binary data directly as a BLOB to payload or use bOpen(<Path_to_PNG>) to load an image from disk:

# This will create a new payload boundary with a "Content-Type: image/png" header and BLOB body
cape_texture.addBinaryFormData(b"file",cape_vis.bOpen("~/someImage.png"))
cape_texture.update("~/myAwesomeTexture.png")

Contribute

If you find any bugs with- or would like to suggest features to labylib, please submit them under Issues

License

GNU General Public License v3.0


VicW Created by VicW