diff --git a/labylib/MooseHat.py b/labylib/MooseHat.py new file mode 100644 index 0000000..de97099 --- /dev/null +++ b/labylib/MooseHat.py @@ -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() \ No newline at end of file