mirror of
https://codeberg.org/vlw/labylib.git
synced 2025-09-13 17:43:41 +02:00
Compare commits
8 commits
Author | SHA1 | Date | |
---|---|---|---|
5ea6e6314c | |||
8d1eb7181f | |||
f64206f022 | |||
f1505c67ad | |||
69f46ec52b | |||
c8fe34620d | |||
4a5cd81eef | |||
![]() |
939a306c6f |
6 changed files with 613 additions and 15 deletions
33
README.md
33
README.md
|
@ -1,28 +1,28 @@
|
||||||

|

|
||||||
|
|
||||||
### Cosmetics API for Labymod
|
### Cosmetics API for Labymod
|
||||||
|
|
||||||

|

|
||||||

|

|
||||||

|

|
||||||
|
|
||||||
Modify LabyMod cosmetics programmatically with Python.
|
Modify LabyMod cosmetics programmatically with Python.
|
||||||
|
|
||||||
| | Created by VicW |
|
### [Supported cosmetics](https://github.com/VictorWesterlund/labylib/wiki/labylib-Modules)
|
||||||
|--|--|
|
|
||||||
|
|
||||||
_labylib or Victor Westerlund is in no way sponsored by or affiliated with LabyMod or LabyMedia GmbH._<br>
|
_labylib is in no way sponsored by or affiliated with LabyMod or LabyMedia GmbH._<br>
|
||||||
_This program is offered as-is and might stop working at any time_
|
_This program is offered as-is and might stop working at any time._
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
1. Download and install [Python 3](https://www.python.org/downloads/) for your architecture.
|
1. Download and install [Python 3](https://www.python.org/downloads/).
|
||||||
2. Install the latest version of labylib with [`pip3`](https://pypi.org/project/labylib/)
|
2. Install the latest version of labylib with [`pip`](https://pypi.org/project/labylib/)
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ python3 -m pip install labylib
|
$ python3 -m pip install labylib
|
||||||
```
|
```
|
||||||
*..or if that doesn't work*
|
|
||||||
```python
|
|
||||||
$ pip3 install labylib
|
|
||||||
```
|
|
||||||
|
|
||||||
## Quickstart
|
## Quickstart
|
||||||
1. Import a labylib Module from the [list of available modules](https://github.com/VictorWesterlund/labylib/wiki/labylib-Modules).
|
1. Import a labylib Module from the [list of available modules](https://github.com/VictorWesterlund/labylib/wiki/labylib-Modules).
|
||||||
|
@ -43,7 +43,7 @@ cape_vis.update("show")
|
||||||
```
|
```
|
||||||
|
|
||||||
# Advanced Usage
|
# Advanced Usage
|
||||||
## Request headers, cookies and body
|
### 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.
|
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`](https://requests.readthedocs.io/en/master/) under the hood and request parameters like headers and cookies can be modified in accordance with `Request`'s conventions.
|
labylib uses [`Requests`](https://requests.readthedocs.io/en/master/) under the hood and request parameters like headers and cookies can be modified in accordance with `Request`'s conventions.
|
||||||
|
@ -55,7 +55,7 @@ cape_vis.headers["foo"] = "bar"
|
||||||
cape_vis.update("show")
|
cape_vis.update("show")
|
||||||
```
|
```
|
||||||
|
|
||||||
### To append form data to the request body of an instance:
|
### 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:
|
**For `x-www-form-urlencoded` requests:** Append form data with the `addEncodedFormData(key,value)` method:
|
||||||
```python3
|
```python3
|
||||||
|
@ -81,8 +81,11 @@ cape_texture.update("~/myAwesomeTexture.png")
|
||||||
|
|
||||||
If you find any bugs with- or would like to suggest features to labylib, please submit them under [Issues](https://github.com/VictorWesterlund/labylib/issues)
|
If you find any bugs with- or would like to suggest features to labylib, please submit them under [Issues](https://github.com/VictorWesterlund/labylib/issues)
|
||||||
|
|
||||||
Pull requests to labylib are highly encouraged!
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
[GNU General Public License v3.0](https://github.com/VictorWesterlund/labylib/blob/master/LICENSE)
|
[GNU General Public License v3.0](https://github.com/VictorWesterlund/labylib/blob/master/LICENSE)
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
| | Created by VicW |
|
||||||
|
|--|--|
|
||||||
|
|
138
labylib/Backpack.py
Normal file
138
labylib/Backpack.py
Normal file
|
@ -0,0 +1,138 @@
|
||||||
|
import requests
|
||||||
|
|
||||||
|
class Visibility:
|
||||||
|
|
||||||
|
endpoint = "https://www.labymod.net/api/change"
|
||||||
|
|
||||||
|
def __init__(self,cookie):
|
||||||
|
self.cookies = dict(PHPSESSID = cookie)
|
||||||
|
|
||||||
|
self.headers = {
|
||||||
|
"accept": "*/*",
|
||||||
|
"accept-encoding": "gzip, deflate, br",
|
||||||
|
"accept-language": "en-US,en;q=0.9,sv;q=0.8",
|
||||||
|
"cache-control": "no-cache",
|
||||||
|
"dnt": "1",
|
||||||
|
"user-agent": "Mozilla/5.0 (Windows NT 5.1; rv:33.0) Gecko/20100101 Firefox/33.0",
|
||||||
|
"origin": "https://www.labymod.net",
|
||||||
|
"pragma": "no-cache",
|
||||||
|
"referer": "https://www.labymod.net/dashboard",
|
||||||
|
"sec-fetch-dest": "empty",
|
||||||
|
"sec-fetch-mode": "cors",
|
||||||
|
"sec-fetch-site": "same-origin",
|
||||||
|
"x-requested-with": "XMLHttpRequest",
|
||||||
|
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
|
||||||
|
}
|
||||||
|
|
||||||
|
self.body = ""
|
||||||
|
|
||||||
|
# Payload
|
||||||
|
self.addEncodedFormData("type","switch")
|
||||||
|
self.addEncodedFormData("item",525800)
|
||||||
|
self.addEncodedFormData("site","control")
|
||||||
|
|
||||||
|
# -----------------------------------
|
||||||
|
|
||||||
|
# Add URLEncoded form data (x-www-form-urlencoded)
|
||||||
|
def addEncodedFormData(self,key,value):
|
||||||
|
body = "&"
|
||||||
|
|
||||||
|
# Remove '&' delimiter for first item
|
||||||
|
if(self.body == ""):
|
||||||
|
body = ""
|
||||||
|
|
||||||
|
body += f"{key}={value}"
|
||||||
|
|
||||||
|
self.body += body
|
||||||
|
|
||||||
|
# -----------------------------------
|
||||||
|
|
||||||
|
def update(self,value):
|
||||||
|
# Interpret strings
|
||||||
|
if(type(value) != int):
|
||||||
|
if(value == "show"):
|
||||||
|
value = 1
|
||||||
|
else:
|
||||||
|
value = 0
|
||||||
|
|
||||||
|
self.addEncodedFormData("value",value)
|
||||||
|
|
||||||
|
request = requests.post(Visibility.endpoint,
|
||||||
|
headers = self.headers,
|
||||||
|
cookies = self.cookies,
|
||||||
|
data = self.body
|
||||||
|
)
|
||||||
|
|
||||||
|
# Raise exception if request fails
|
||||||
|
request.raise_for_status()
|
||||||
|
|
||||||
|
class Multi:
|
||||||
|
|
||||||
|
endpoint = "https://www.labymod.net/api/change"
|
||||||
|
|
||||||
|
def __init__(self,cookie):
|
||||||
|
self.cookies = dict(PHPSESSID = cookie)
|
||||||
|
|
||||||
|
self.headers = {
|
||||||
|
"accept": "*/*",
|
||||||
|
"accept-encoding": "gzip, deflate, br",
|
||||||
|
"accept-language": "en-US,en;q=0.9,sv;q=0.8",
|
||||||
|
"cache-control": "no-cache",
|
||||||
|
"dnt": "1",
|
||||||
|
"user-agent": "Mozilla/5.0 (Windows NT 5.1; rv:33.0) Gecko/20100101 Firefox/33.0",
|
||||||
|
"origin": "https://www.labymod.net",
|
||||||
|
"pragma": "no-cache",
|
||||||
|
"referer": "https://www.labymod.net/dashboard",
|
||||||
|
"sec-fetch-dest": "empty",
|
||||||
|
"sec-fetch-mode": "cors",
|
||||||
|
"sec-fetch-site": "same-origin",
|
||||||
|
"x-requested-with": "XMLHttpRequest",
|
||||||
|
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
|
||||||
|
}
|
||||||
|
|
||||||
|
self.body = ""
|
||||||
|
self.values = (000000,000000)
|
||||||
|
|
||||||
|
# Payload
|
||||||
|
self.addEncodedFormData("type","multi")
|
||||||
|
self.addEncodedFormData("item",525800)
|
||||||
|
self.addEncodedFormData("site","control")
|
||||||
|
|
||||||
|
# -----------------------------------
|
||||||
|
|
||||||
|
def color(color,color2 = None):
|
||||||
|
if(color2):
|
||||||
|
self.values[0] = color
|
||||||
|
self.values[1] = color2
|
||||||
|
return
|
||||||
|
|
||||||
|
self.values[0] = color[0]
|
||||||
|
self.values[1] = color[1]
|
||||||
|
|
||||||
|
# -----------------------------------
|
||||||
|
|
||||||
|
# Add URLEncoded form data (x-www-form-urlencoded)
|
||||||
|
def addEncodedFormData(self,key,value):
|
||||||
|
body = "&"
|
||||||
|
|
||||||
|
# Remove '&' delimiter for first item
|
||||||
|
if(self.body == ""):
|
||||||
|
body = ""
|
||||||
|
|
||||||
|
body += f"{key}={value}"
|
||||||
|
|
||||||
|
self.body += body
|
||||||
|
|
||||||
|
def update(self,value):
|
||||||
|
value = ",".join(self.values)
|
||||||
|
|
||||||
|
self.addEncodedFormData("value",value)
|
||||||
|
|
||||||
|
request = requests.post(Visibility.endpoint,
|
||||||
|
headers = self.headers,
|
||||||
|
cookies = self.cookies,
|
||||||
|
data = self.body
|
||||||
|
)
|
||||||
|
|
||||||
|
# Raise exception if request fails
|
||||||
|
request.raise_for_status()
|
152
labylib/Cap.py
Normal file
152
labylib/Cap.py
Normal file
|
@ -0,0 +1,152 @@
|
||||||
|
import requests
|
||||||
|
|
||||||
|
class Visibility:
|
||||||
|
|
||||||
|
endpoint = "https://www.labymod.net/api/change"
|
||||||
|
|
||||||
|
def __init__(self,cookie):
|
||||||
|
self.cookies = dict(PHPSESSID = cookie)
|
||||||
|
|
||||||
|
self.headers = {
|
||||||
|
"accept": "*/*",
|
||||||
|
"accept-encoding": "gzip, deflate, br",
|
||||||
|
"accept-language": "en-US,en;q=0.9,sv;q=0.8",
|
||||||
|
"cache-control": "no-cache",
|
||||||
|
"dnt": "1",
|
||||||
|
"user-agent": "Mozilla/5.0 (Windows NT 5.1; rv:33.0) Gecko/20100101 Firefox/33.0",
|
||||||
|
"origin": "https://www.labymod.net",
|
||||||
|
"pragma": "no-cache",
|
||||||
|
"referer": "https://www.labymod.net/dashboard",
|
||||||
|
"sec-fetch-dest": "empty",
|
||||||
|
"sec-fetch-mode": "cors",
|
||||||
|
"sec-fetch-site": "same-origin",
|
||||||
|
"x-requested-with": "XMLHttpRequest",
|
||||||
|
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
|
||||||
|
}
|
||||||
|
|
||||||
|
self.body = ""
|
||||||
|
|
||||||
|
# Payload
|
||||||
|
self.addEncodedFormData("type","switch")
|
||||||
|
self.addEncodedFormData("item",630683)
|
||||||
|
self.addEncodedFormData("site","control")
|
||||||
|
|
||||||
|
# -----------------------------------
|
||||||
|
|
||||||
|
# Add URLEncoded form data (x-www-form-urlencoded)
|
||||||
|
def addEncodedFormData(self,key,value):
|
||||||
|
body = "&"
|
||||||
|
|
||||||
|
# Remove '&' delimiter for first item
|
||||||
|
if(self.body == ""):
|
||||||
|
body = ""
|
||||||
|
|
||||||
|
body += f"{key}={value}"
|
||||||
|
|
||||||
|
self.body += body
|
||||||
|
|
||||||
|
# -----------------------------------
|
||||||
|
|
||||||
|
def update(self,value):
|
||||||
|
# Interpret strings
|
||||||
|
if(type(value) != int):
|
||||||
|
if(value == "show"):
|
||||||
|
value = 1
|
||||||
|
else:
|
||||||
|
value = 0
|
||||||
|
|
||||||
|
self.addEncodedFormData("value",value)
|
||||||
|
|
||||||
|
request = requests.post(Visibility.endpoint,
|
||||||
|
headers = self.headers,
|
||||||
|
cookies = self.cookies,
|
||||||
|
data = self.body
|
||||||
|
)
|
||||||
|
|
||||||
|
# Raise exception if request fails
|
||||||
|
request.raise_for_status()
|
||||||
|
|
||||||
|
class Multi:
|
||||||
|
|
||||||
|
endpoint = "https://www.labymod.net/api/change"
|
||||||
|
|
||||||
|
def __init__(self,cookie):
|
||||||
|
self.cookies = dict(PHPSESSID = cookie)
|
||||||
|
|
||||||
|
self.headers = {
|
||||||
|
"accept": "*/*",
|
||||||
|
"accept-encoding": "gzip, deflate, br",
|
||||||
|
"accept-language": "en-US,en;q=0.9,sv;q=0.8",
|
||||||
|
"cache-control": "no-cache",
|
||||||
|
"dnt": "1",
|
||||||
|
"user-agent": "Mozilla/5.0 (Windows NT 5.1; rv:33.0) Gecko/20100101 Firefox/33.0",
|
||||||
|
"origin": "https://www.labymod.net",
|
||||||
|
"pragma": "no-cache",
|
||||||
|
"referer": "https://www.labymod.net/dashboard",
|
||||||
|
"sec-fetch-dest": "empty",
|
||||||
|
"sec-fetch-mode": "cors",
|
||||||
|
"sec-fetch-site": "same-origin",
|
||||||
|
"x-requested-with": "XMLHttpRequest",
|
||||||
|
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
|
||||||
|
}
|
||||||
|
|
||||||
|
self.body = ""
|
||||||
|
self.values = (0,"",000000,0) # Direction,texture,color,unknown
|
||||||
|
|
||||||
|
# Payload
|
||||||
|
self.addEncodedFormData("type","multi")
|
||||||
|
self.addEncodedFormData("item",630683)
|
||||||
|
self.addEncodedFormData("site","control")
|
||||||
|
|
||||||
|
# -----------------------------------
|
||||||
|
|
||||||
|
def direction(value):
|
||||||
|
if(value == 1 or value == "front"):
|
||||||
|
self.values[0] = 1
|
||||||
|
return
|
||||||
|
|
||||||
|
self.values[0] = 0
|
||||||
|
|
||||||
|
def template(name == "default"):
|
||||||
|
templates = [
|
||||||
|
"default": "7a9c8635-d64f-47ee-a373-5faceffc1915",
|
||||||
|
"2021": "7ec142d2-fc29-42f5-9659-0d84b104d4c6"
|
||||||
|
]
|
||||||
|
|
||||||
|
if(name not in dictionary):
|
||||||
|
name = dictionary[0]
|
||||||
|
|
||||||
|
self.values[1] = name
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def color(color = "ffffff"):
|
||||||
|
self.values[2] = color
|
||||||
|
|
||||||
|
# -----------------------------------
|
||||||
|
|
||||||
|
# Add URLEncoded form data (x-www-form-urlencoded)
|
||||||
|
def addEncodedFormData(self,key,value):
|
||||||
|
body = "&"
|
||||||
|
|
||||||
|
# Remove '&' delimiter for first item
|
||||||
|
if(self.body == ""):
|
||||||
|
body = ""
|
||||||
|
|
||||||
|
body += f"{key}={value}"
|
||||||
|
|
||||||
|
self.body += body
|
||||||
|
|
||||||
|
def update(self,value):
|
||||||
|
value = ",".join(self.values)
|
||||||
|
|
||||||
|
self.addEncodedFormData("value",value)
|
||||||
|
|
||||||
|
request = requests.post(Visibility.endpoint,
|
||||||
|
headers = self.headers,
|
||||||
|
cookies = self.cookies,
|
||||||
|
data = self.body
|
||||||
|
)
|
||||||
|
|
||||||
|
# Raise exception if request fails
|
||||||
|
request.raise_for_status()
|
171
labylib/Mask.py
Normal file
171
labylib/Mask.py
Normal file
|
@ -0,0 +1,171 @@
|
||||||
|
import requests
|
||||||
|
|
||||||
|
class Visibility:
|
||||||
|
|
||||||
|
endpoint = "https://www.labymod.net/api/change"
|
||||||
|
|
||||||
|
def __init__(self,cookie):
|
||||||
|
self.cookies = dict(PHPSESSID = cookie)
|
||||||
|
|
||||||
|
self.headers = {
|
||||||
|
"accept": "*/*",
|
||||||
|
"accept-encoding": "gzip, deflate, br",
|
||||||
|
"accept-language": "en-US,en;q=0.9,sv;q=0.8",
|
||||||
|
"cache-control": "no-cache",
|
||||||
|
"dnt": "1",
|
||||||
|
"user-agent": "Mozilla/5.0 (Windows NT 5.1; rv:33.0) Gecko/20100101 Firefox/33.0",
|
||||||
|
"origin": "https://www.labymod.net",
|
||||||
|
"pragma": "no-cache",
|
||||||
|
"referer": "https://www.labymod.net/dashboard",
|
||||||
|
"sec-fetch-dest": "empty",
|
||||||
|
"sec-fetch-mode": "cors",
|
||||||
|
"sec-fetch-site": "same-origin",
|
||||||
|
"x-requested-with": "XMLHttpRequest",
|
||||||
|
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
|
||||||
|
}
|
||||||
|
|
||||||
|
self.body = ""
|
||||||
|
|
||||||
|
# Payload
|
||||||
|
self.addEncodedFormData("type","switch")
|
||||||
|
self.addEncodedFormData("item",544349)
|
||||||
|
self.addEncodedFormData("site","control")
|
||||||
|
|
||||||
|
# -----------------------------------
|
||||||
|
|
||||||
|
# Add URLEncoded form data (x-www-form-urlencoded)
|
||||||
|
def addEncodedFormData(self,key,value):
|
||||||
|
body = "&"
|
||||||
|
|
||||||
|
# Remove '&' delimiter for first item
|
||||||
|
if(self.body == ""):
|
||||||
|
body = ""
|
||||||
|
|
||||||
|
body += f"{key}={value}"
|
||||||
|
|
||||||
|
self.body += body
|
||||||
|
|
||||||
|
# -----------------------------------
|
||||||
|
|
||||||
|
def update(self,value):
|
||||||
|
# Interpret strings
|
||||||
|
if(type(value) != int):
|
||||||
|
if(value == "show"):
|
||||||
|
value = 1
|
||||||
|
else:
|
||||||
|
value = 0
|
||||||
|
|
||||||
|
self.addEncodedFormData("value",value)
|
||||||
|
|
||||||
|
request = requests.post(Visibility.endpoint,
|
||||||
|
headers = self.headers,
|
||||||
|
cookies = self.cookies,
|
||||||
|
data = self.body
|
||||||
|
)
|
||||||
|
|
||||||
|
# Raise exception if request fails
|
||||||
|
request.raise_for_status()
|
||||||
|
|
||||||
|
class Multi:
|
||||||
|
|
||||||
|
endpoint = "https://www.labymod.net/api/change"
|
||||||
|
|
||||||
|
def __init__(self,cookie):
|
||||||
|
self.cookies = dict(PHPSESSID = cookie)
|
||||||
|
|
||||||
|
self.headers = {
|
||||||
|
"accept": "*/*",
|
||||||
|
"accept-encoding": "gzip, deflate, br",
|
||||||
|
"accept-language": "en-US,en;q=0.9,sv;q=0.8",
|
||||||
|
"cache-control": "no-cache",
|
||||||
|
"dnt": "1",
|
||||||
|
"user-agent": "Mozilla/5.0 (Windows NT 5.1; rv:33.0) Gecko/20100101 Firefox/33.0",
|
||||||
|
"origin": "https://www.labymod.net",
|
||||||
|
"pragma": "no-cache",
|
||||||
|
"referer": "https://www.labymod.net/dashboard",
|
||||||
|
"sec-fetch-dest": "empty",
|
||||||
|
"sec-fetch-mode": "cors",
|
||||||
|
"sec-fetch-site": "same-origin",
|
||||||
|
"x-requested-with": "XMLHttpRequest",
|
||||||
|
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
|
||||||
|
}
|
||||||
|
|
||||||
|
self.body = ""
|
||||||
|
self.values = (000000,000000,0,0) # Color,Color,Size,Texture
|
||||||
|
|
||||||
|
# Payload
|
||||||
|
self.addEncodedFormData("type","multi")
|
||||||
|
self.addEncodedFormData("item",544349)
|
||||||
|
self.addEncodedFormData("site","control")
|
||||||
|
|
||||||
|
# -----------------------------------
|
||||||
|
|
||||||
|
def color(color,color2 = None):
|
||||||
|
if(color2):
|
||||||
|
self.values[0] = color
|
||||||
|
self.values[1] = color2
|
||||||
|
return
|
||||||
|
|
||||||
|
self.values[0] = color[0]
|
||||||
|
self.values[1] = color[1]
|
||||||
|
|
||||||
|
def size(size):
|
||||||
|
# Interpret strings
|
||||||
|
if(type(size) != int):
|
||||||
|
if(size == "big"):
|
||||||
|
size = 1
|
||||||
|
else:
|
||||||
|
size = 0
|
||||||
|
|
||||||
|
self.values[2] = size
|
||||||
|
|
||||||
|
def template(value):
|
||||||
|
templates = {
|
||||||
|
"None": "null",
|
||||||
|
"3": "26b459ce-2f09-4b50-97ad-c589262b0268",
|
||||||
|
":3": "3b7492c6-4239-4e4b-9906-d510e722a96b",
|
||||||
|
":*)": "4120f1eb-19e6-4f34-8417-d7bd6a01d85a",
|
||||||
|
":#)": "43e1b6bf-2a18-40f4-b0b0-38b7c74a6ddb",
|
||||||
|
":'3": "4b498414-5894-4124-98f6-b6c5a531b6e8",
|
||||||
|
":)": "84456b05-85ba-48bf-a0c8-ca4ba981ff8e",
|
||||||
|
":p)": "a387dde9-a1a8-41b8-9e77-8446f8d6d3cd",
|
||||||
|
":P": "aaa3db95-6537-4ef0-aa66-050b20412ef6",
|
||||||
|
":')": "bb9006f9-b67c-4fff-996b-6d74a1b691d6",
|
||||||
|
"::)": "c6aa01db-bd10-4948-9632-afe6bd0c3f3c",
|
||||||
|
"X": "e93ec7b5-4148-4d1c-aefd-26c3f125cec7",
|
||||||
|
";p": "ed2c847c-5b2b-4916-843d-438b6c039804",
|
||||||
|
":~)": "f9e4f616-e697-441e-be57-1b64cc5c5e41"
|
||||||
|
}
|
||||||
|
|
||||||
|
if(value not in templates):
|
||||||
|
raise ValueError(f"'{value}' is not a valid template.")
|
||||||
|
|
||||||
|
self.values[3] = templates[value]
|
||||||
|
|
||||||
|
# -----------------------------------
|
||||||
|
|
||||||
|
# Add URLEncoded form data (x-www-form-urlencoded)
|
||||||
|
def addEncodedFormData(self,key,value):
|
||||||
|
body = "&"
|
||||||
|
|
||||||
|
# Remove '&' delimiter for first item
|
||||||
|
if(self.body == ""):
|
||||||
|
body = ""
|
||||||
|
|
||||||
|
body += f"{key}={value}"
|
||||||
|
|
||||||
|
self.body += body
|
||||||
|
|
||||||
|
def update(self,value):
|
||||||
|
value = ",".join(self.values)
|
||||||
|
|
||||||
|
self.addEncodedFormData("value",value)
|
||||||
|
|
||||||
|
request = requests.post(Visibility.endpoint,
|
||||||
|
headers = self.headers,
|
||||||
|
cookies = self.cookies,
|
||||||
|
data = self.body
|
||||||
|
)
|
||||||
|
|
||||||
|
# Raise exception if request fails
|
||||||
|
request.raise_for_status()
|
67
labylib/MooseHat.py
Normal file
67
labylib/MooseHat.py
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
import requests
|
||||||
|
|
||||||
|
class Visibility:
|
||||||
|
|
||||||
|
endpoint = "https://www.labymod.net/api/change"
|
||||||
|
|
||||||
|
def __init__(self,cookie):
|
||||||
|
self.cookies = dict(PHPSESSID = cookie)
|
||||||
|
|
||||||
|
self.headers = {
|
||||||
|
"accept": "*/*",
|
||||||
|
"accept-encoding": "gzip, deflate, br",
|
||||||
|
"accept-language": "en-US,en;q=0.9,sv;q=0.8",
|
||||||
|
"cache-control": "no-cache",
|
||||||
|
"dnt": "1",
|
||||||
|
"user-agent": "Mozilla/5.0 (Windows NT 5.1; rv:33.0) Gecko/20100101 Firefox/33.0",
|
||||||
|
"origin": "https://www.labymod.net",
|
||||||
|
"pragma": "no-cache",
|
||||||
|
"referer": "https://www.labymod.net/dashboard",
|
||||||
|
"sec-fetch-dest": "empty",
|
||||||
|
"sec-fetch-mode": "cors",
|
||||||
|
"sec-fetch-site": "same-origin",
|
||||||
|
"x-requested-with": "XMLHttpRequest",
|
||||||
|
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
|
||||||
|
}
|
||||||
|
|
||||||
|
self.body = ""
|
||||||
|
|
||||||
|
# Payload
|
||||||
|
self.addEncodedFormData("type","switch")
|
||||||
|
self.addEncodedFormData("item",576242)
|
||||||
|
self.addEncodedFormData("site","control")
|
||||||
|
|
||||||
|
# -----------------------------------
|
||||||
|
|
||||||
|
# Add URLEncoded form data (x-www-form-urlencoded)
|
||||||
|
def addEncodedFormData(self,key,value):
|
||||||
|
body = "&"
|
||||||
|
|
||||||
|
# Remove '&' delimiter for first item
|
||||||
|
if(self.body == ""):
|
||||||
|
body = ""
|
||||||
|
|
||||||
|
body += f"{key}={value}"
|
||||||
|
|
||||||
|
self.body += body
|
||||||
|
|
||||||
|
# -----------------------------------
|
||||||
|
|
||||||
|
def update(self,value):
|
||||||
|
# Interpret strings
|
||||||
|
if(type(value) != int):
|
||||||
|
if(value == "show"):
|
||||||
|
value = 1
|
||||||
|
else:
|
||||||
|
value = 0
|
||||||
|
|
||||||
|
self.addEncodedFormData("value",value)
|
||||||
|
|
||||||
|
request = requests.post(Visibility.endpoint,
|
||||||
|
headers = self.headers,
|
||||||
|
cookies = self.cookies,
|
||||||
|
data = self.body
|
||||||
|
)
|
||||||
|
|
||||||
|
# Raise exception if request fails
|
||||||
|
request.raise_for_status()
|
67
labylib/XMAS.py
Normal file
67
labylib/XMAS.py
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
import requests
|
||||||
|
|
||||||
|
class Visibility:
|
||||||
|
|
||||||
|
endpoint = "https://www.labymod.net/api/change"
|
||||||
|
|
||||||
|
def __init__(self,cookie):
|
||||||
|
self.cookies = dict(PHPSESSID = cookie)
|
||||||
|
|
||||||
|
self.headers = {
|
||||||
|
"accept": "*/*",
|
||||||
|
"accept-encoding": "gzip, deflate, br",
|
||||||
|
"accept-language": "en-US,en;q=0.9,sv;q=0.8",
|
||||||
|
"cache-control": "no-cache",
|
||||||
|
"dnt": "1",
|
||||||
|
"user-agent": "Mozilla/5.0 (Windows NT 5.1; rv:33.0) Gecko/20100101 Firefox/33.0",
|
||||||
|
"origin": "https://www.labymod.net",
|
||||||
|
"pragma": "no-cache",
|
||||||
|
"referer": "https://www.labymod.net/dashboard",
|
||||||
|
"sec-fetch-dest": "empty",
|
||||||
|
"sec-fetch-mode": "cors",
|
||||||
|
"sec-fetch-site": "same-origin",
|
||||||
|
"x-requested-with": "XMLHttpRequest",
|
||||||
|
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
|
||||||
|
}
|
||||||
|
|
||||||
|
self.body = ""
|
||||||
|
|
||||||
|
# Payload
|
||||||
|
self.addEncodedFormData("type","switch")
|
||||||
|
self.addEncodedFormData("item",520292)
|
||||||
|
self.addEncodedFormData("site","control")
|
||||||
|
|
||||||
|
# -----------------------------------
|
||||||
|
|
||||||
|
# Add URLEncoded form data (x-www-form-urlencoded)
|
||||||
|
def addEncodedFormData(self,key,value):
|
||||||
|
body = "&"
|
||||||
|
|
||||||
|
# Remove '&' delimiter for first item
|
||||||
|
if(self.body == ""):
|
||||||
|
body = ""
|
||||||
|
|
||||||
|
body += f"{key}={value}"
|
||||||
|
|
||||||
|
self.body += body
|
||||||
|
|
||||||
|
# -----------------------------------
|
||||||
|
|
||||||
|
def update(self,value):
|
||||||
|
# Interpret strings
|
||||||
|
if(type(value) != int):
|
||||||
|
if(value == "show"):
|
||||||
|
value = 1
|
||||||
|
else:
|
||||||
|
value = 0
|
||||||
|
|
||||||
|
self.addEncodedFormData("value",value)
|
||||||
|
|
||||||
|
request = requests.post(Visibility.endpoint,
|
||||||
|
headers = self.headers,
|
||||||
|
cookies = self.cookies,
|
||||||
|
data = self.body
|
||||||
|
)
|
||||||
|
|
||||||
|
# Raise exception if request fails
|
||||||
|
request.raise_for_status()
|
Loading…
Add table
Reference in a new issue