From 5a560cb4c986b70e54955587671807457bb61b84 Mon Sep 17 00:00:00 2001 From: alex Date: Sun, 22 Mar 2026 17:58:57 +0100 Subject: Add gemget.py --- gemget.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 gemget.py diff --git a/gemget.py b/gemget.py new file mode 100644 index 0000000..c7bde68 --- /dev/null +++ b/gemget.py @@ -0,0 +1,27 @@ +import socket +import ssl +import sys +import urllib.parse + +context = ssl.create_default_context() +context.check_hostname = False +context.verify_mode = ssl.CERT_NONE + +url = sys.argv[1] +split_url = urllib.parse.urlsplit(url) + +with socket.create_connection((split_url.netloc, 1965)) as sock: + with context.wrap_socket(sock, server_hostname=split_url.netloc) as ssock: + ssock.sendall(url.encode("ascii") + b"\r\n") + recv = b"" + while True: + chunk = ssock.recv() + if not chunk: + break + recv += chunk + +header, rest = recv.split(b"\r\n", 1) +header = header.decode("utf8") +assert header.startswith("2"), f"Response header {header} is not 2*" + +sys.stdout.buffer.write(rest) -- cgit v1.2.3