Blame


1 364f10db 2021-01-17 op #!/usr/bin/env python3
2 364f10db 2021-01-17 op
3 364f10db 2021-01-17 op # GeminiGet, aka gg
4 364f10db 2021-01-17 op # USAGE: ./gg path [port]
5 364f10db 2021-01-17 op
6 364f10db 2021-01-17 op import os
7 364f10db 2021-01-17 op import socket
8 364f10db 2021-01-17 op import ssl
9 364f10db 2021-01-17 op import urllib.parse
10 364f10db 2021-01-17 op import sys
11 364f10db 2021-01-17 op
12 364f10db 2021-01-17 op hostname = 'localhost'
13 364f10db 2021-01-17 op path = sys.argv[1]
14 364f10db 2021-01-17 op
15 364f10db 2021-01-17 op port = 1965
16 364f10db 2021-01-17 op if len(sys.argv) > 2:
17 364f10db 2021-01-17 op port = int(sys.argv[2])
18 364f10db 2021-01-17 op
19 364f10db 2021-01-17 op s = socket.create_connection((hostname, port))
20 364f10db 2021-01-17 op context = ssl.SSLContext()
21 364f10db 2021-01-17 op context.check_hostname = False
22 364f10db 2021-01-17 op context.verify_mode = ssl.CERT_NONE
23 364f10db 2021-01-17 op s = context.wrap_socket(s, server_hostname = hostname)
24 364f10db 2021-01-17 op s.sendall(("gemini://" + hostname + ":" + str(port) + path + "\r\n").encode('UTF-8'))
25 364f10db 2021-01-17 op
26 364f10db 2021-01-17 op fp = s.makefile("rb")
27 364f10db 2021-01-17 op for line in fp.read().splitlines():
28 364f10db 2021-01-17 op print(line.decode('UTF-8'))