commit 5c749e57812a8fb3757c5a2afe3cebd9deab3a36 from: Aleksey Ryndin date: Thu Sep 05 15:27:18 2024 UTC Fix:
rendering commit - 1f653a9870bcdabc5ca4dbbb3041ec60b4687b7a commit + 5c749e57812a8fb3757c5a2afe3cebd9deab3a36 blob - 23c3b5ca275d13889f071c1d91d57e8c7d8237bc blob + 7ae8f8fa63c794d6db3fa417a921f6fc05cc170d --- lonk.py +++ lonk.py @@ -1,3 +1,5 @@ +from sqlite3 import connect as sqlite3_connect +from argparse import ArgumentParser from json import loads as json_loads from pathlib import Path from socket import socket @@ -162,6 +164,9 @@ class HtmlToGmi(HTMLParser): src = img.get("src") if src: self.gmi_text.append(f"=> {urljoin(self.base_url, src)} {title}") + elif tag == "br": + if self.stack: + self.gmi_text.append(self.stack[-1].flush()) def handle_data(self, data): # print(f" . {data=}") @@ -229,16 +234,25 @@ def demo(): print(_format_honk(honk)) +def create_schema(dbcon): + pass + + def server(): - from argparse import ArgumentParser + parser = ArgumentParser() parser.add_argument("--address", default="127.0.0.1", help="bind to this address (default: %(default)s)") parser.add_argument("--port", default=1965, type=int, help="bind to this port (default: %(default)s)") - parser.add_argument("--settings", required=True, help="path to server settings (JSON file)") parser.add_argument("--certfile", required=True, help="path server certificate file") parser.add_argument("--keyfile", required=True, help="path certificate private key file") parser.add_argument("--dbfile", required=True, help="path to databale file") args = parser.parse_args() + need_to_create_schema = not Path(args.dbfile).exists() + dbcon = sqlite3_connect(args.dbfile) + if need_to_create_schema: + with dbcon: + create_schema(dbcon) + ssl_ctx = SSLContext(PROTOCOL_TLS_SERVER) ssl_ctx.load_cert_chain(args.certfile, args.keyfile) @@ -247,6 +261,9 @@ def server(): sock.listen() with ssl_ctx.wrap_socket(sock, server_side=True) as ssl_sock: conn, addr = ssl_sock.accept() + if conn.getpeercert() is None: + raise NotImplementedError() + raise NotImplementedError() if __name__ == '__main__': blob - 645ae6bd91a6c1d866d6cfd9f1b19c544531bca7 blob + b4f00241cdc9d1d15900206ebe3aa4860a9f2f8f --- tests.py +++ tests.py @@ -3,6 +3,14 @@ from lonk import HtmlToGmi class TestHtmlToGmi(TestCase): + def test_br(self): + html = '

head
tail

' + self.assertEqual(HtmlToGmi("https://localhost/api").feed(html), """\ +head + +tail +""") + def test_img_realtive(self): html = '' self.assertEqual(HtmlToGmi("https://localhost/api").feed(html), "=> https://localhost/d/xxxx.jpg yyy")