24 lines
1.8 KiB
Python
24 lines
1.8 KiB
Python
#!/usr/bin/python3
|
|
"""counts.py — what each app holds now, read through the app's own API (B4/B5/B7 comparisons). Env names are args."""
|
|
import json, os, subprocess, sys
|
|
sys.path.insert(0, "/root/work"); import apps
|
|
from apps import http, basic
|
|
def paperless(u, p):
|
|
st, out, _ = http("GET", "https://paperless.tester4.test/api/documents/?page_size=1", None, {"Authorization": basic(os.environ[u], os.environ[p])})
|
|
t = json.loads(out).get("count") if st == 200 else out[:120]
|
|
st2, out2, _ = http("GET", "https://paperless.tester4.test/api/tasks/?status=FAILURE", None, {"Authorization": basic(os.environ[u], os.environ[p])})
|
|
fails = [x.get("task_file_name") for x in json.loads(out2)] if st2 == 200 else out2[:100]
|
|
print("paperless documents:", t, "| failed tasks:", fails)
|
|
def immich(e, p):
|
|
st, out, _ = http("POST", "https://photos.tester4.test/api/auth/login", {"email": os.environ[e], "password": os.environ[p]})
|
|
tok = {"Authorization": "Bearer " + json.loads(out)["accessToken"]}
|
|
st, out, _ = http("GET", "https://photos.tester4.test/api/assets/statistics", None, tok)
|
|
print("immich assets:", out.decode()[:200])
|
|
def nextcloud(u, p):
|
|
obs = subprocess.run(["rclone", "obscure", "-"], input=os.environ[p], capture_output=True, text=True).stdout.strip()
|
|
env = dict(os.environ, RCLONE_CONFIG_NC_TYPE="webdav", RCLONE_CONFIG_NC_URL=f"https://cloud.tester4.test/remote.php/dav/files/{os.environ[u]}",
|
|
RCLONE_CONFIG_NC_VENDOR="nextcloud", RCLONE_CONFIG_NC_USER=os.environ[u], RCLONE_CONFIG_NC_PASS=obs)
|
|
r = subprocess.run(["rclone", "size", "--no-check-certificate", "nc:/Csalad"], env=env, capture_output=True, text=True)
|
|
print("nextcloud Csalad:", (r.stdout + r.stderr).strip().replace("\n", " | ")[:300])
|
|
globals()[sys.argv[1]](*sys.argv[2:])
|