Skip to main content

API to modify LabyMod cosmetics

Project description

Labylib

Cosmetics API for Labymod

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

Modify LabyMod cosmetics programmatically with Python.

VicW Created by VicW

labylib or Victor Westerlund 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 for your architecture.
  2. Install the latest version of labylib with pip3
$ python3 -m pip install labylib

..or if that doesn't work

$ pip3 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, cookies and body

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")

To 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

Pull requests to labylib are highly encouraged!

License

GNU General Public License v3.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

labylib-0.2.0.tar.gz (4.8 kB view hashes)

Uploaded Source

Built Distribution

labylib-0.2.0-py3-none-any.whl (18.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page