First commit
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
# mam_seedbox.py
|
||||
|
||||
import json
|
||||
import urllib.error
|
||||
import urllib.request
|
||||
from http.cookies import SimpleCookie
|
||||
from pathlib import Path
|
||||
|
||||
__location__ = Path(__file__).parent.resolve()
|
||||
cookie_file = __location__.joinpath("mam_id")
|
||||
api_url = "https://t.myanonamouse.net/json/dynamicSeedbox.php"
|
||||
|
||||
|
||||
def save_cookie(headers):
|
||||
set_cookie_header = headers.get("Set-Cookie")
|
||||
if set_cookie_header:
|
||||
cookie = SimpleCookie(set_cookie_header)
|
||||
if "mam_id" in cookie:
|
||||
cookie_file.write_text(cookie["mam_id"].value)
|
||||
|
||||
|
||||
def load_cookie() -> str:
|
||||
if not cookie_file.exists():
|
||||
print("Warning: mam_id file not found. Proceeding without it...", flush=True)
|
||||
return ""
|
||||
|
||||
mam_id = cookie_file.read_text().strip()
|
||||
return f"mam_id={mam_id}"
|
||||
|
||||
|
||||
def main():
|
||||
print("Updating MaM Dynamic Seedbox IP...", flush=True)
|
||||
|
||||
req = urllib.request.Request(api_url)
|
||||
cookie_val = load_cookie()
|
||||
if cookie_val:
|
||||
req.add_header("Cookie", cookie_val)
|
||||
|
||||
status_code = None
|
||||
data = {}
|
||||
headers = {}
|
||||
|
||||
try:
|
||||
with urllib.request.urlopen(req) as response:
|
||||
status_code = response.status
|
||||
data = json.loads(response.read().decode("utf-8"))
|
||||
headers = response.headers
|
||||
except urllib.error.HTTPError as e:
|
||||
status_code = e.code
|
||||
try:
|
||||
data = json.loads(e.read().decode("utf-8"))
|
||||
except json.JSONDecodeError:
|
||||
data = {"msg": "Unknown server error"}
|
||||
except urllib.error.URLError as e:
|
||||
print(f"Failed to connect to MaM: {e.reason}", flush=True)
|
||||
return
|
||||
|
||||
msg = data.get("msg", "No message provided")
|
||||
|
||||
match status_code:
|
||||
case 200:
|
||||
print(f"Successfully updated MaM seedbox: {msg}", flush=True)
|
||||
save_cookie(headers)
|
||||
case 429:
|
||||
print(f"Failed to update MaM seedbox (Rate Limited): {msg}", flush=True)
|
||||
case 403:
|
||||
print(f"Failed to update MaM seedbox (Forbidden): {msg}", flush=True)
|
||||
case _:
|
||||
print(f"Something went VERY wrong... HTTP {status_code}: {msg}", flush=True)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user