{
  pkgs,
  url,
  ...
}:
pkgs.writers.writePython3Bin "memeSelector" { libraries = with pkgs.python3Packages; [ requests ]; }
  ''
    import requests
    import xml.etree.ElementTree as ET
    import urllib.parse
    import sys
    import os
    import tempfile
    import subprocess

    BASE_URL = "${url}"
    headers = {"Depth": "1"}
    resp = requests.request(
      "PROPFIND",
      BASE_URL,
      headers=headers,
      verify="${"" + ../../system/extra/ca.crt}"
    )

    if resp.status_code not in (200, 207):
        print(f"Error: Http {resp.status_code}")
        sys.exit(1)

    root = ET.fromstring(resp.text)
    ns = {"d": "DAV:"}

    files = []
    for href in root.findall(".//d:href", ns):
        path = href.text
        if not path:
            continue
        filename = urllib.parse.unquote(path.split("/")[-1])

        if filename and not filename.endswith("/"):
            files.append(filename)

    if not files:
        print("No files found")
        sys.exit(0)

    rofi = subprocess.run(
      ["rofi", "-i", "-dmenu", "-p", "Meme"],
      input="\n".join(files).encode(),
      stdout=subprocess.PIPE
    )

    selected = rofi.stdout.decode().strip()
    if not selected:
        sys.exit(0)

    url = BASE_URL + urllib.parse.quote(selected)
    tmpfile = os.path.join(tempfile.gettempdir(), selected)

    subprocess.run(["wget", "-q", "-O", tmpfile, url], check=True)

    with open(tmpfile, "rb") as f:
        subprocess.run("wl-copy", stdin=f)

    subprocess.run([
      "notify-send",
      "-i", tmpfile,
      "Meme Copied: ",
      f"{selected}"
    ])
  ''
