diff --git a/navpoint/about.py b/navpoint/about.py index 1b8a39d..b7ba151 100644 --- a/navpoint/about.py +++ b/navpoint/about.py @@ -1,30 +1,29 @@ import webbrowser -import tempfile -import time -import os +import threading import markdown +import tornado.ioloop +import tornado.web import navpoint.fix_path -def about(): - with open(navpoint.fix_path.fix_path("README.md")) as f: - readme = markdown.markdown( - f.read() - .replace("https://www.gnu.org/licenses/gpl-3.0.en.html", "#gpl") - .replace("https://creativecommons.org/licenses/by-sa/4.0/", "#cc") - ) +class AboutHandler(tornado.web.RequestHandler): + def get(self): + with open(navpoint.fix_path.fix_path("README.md")) as f: + readme = markdown.markdown( + f.read() + .replace("https://www.gnu.org/licenses/gpl-3.0.en.html", "#gpl") + .replace( + "https://creativecommons.org/licenses/by-sa/4.0/", "#cc" + ) + ) - with open(navpoint.fix_path.fix_path("GPL-3.0.txt")) as f: - gpl = f.read() + with open(navpoint.fix_path.fix_path("GPL-3.0.txt")) as f: + gpl = f.read() - with open(navpoint.fix_path.fix_path("CC-BY-SA-4.0.txt")) as f: - cc = f.read() + with open(navpoint.fix_path.fix_path("CC-BY-SA-4.0.txt")) as f: + cc = f.read() - fd, name = tempfile.mkstemp(suffix=".html") - os.close(fd) - - with open(name, "w") as f: - f.write( + self.write( f"""\ @@ -45,7 +44,19 @@ def about(): """ ) + tornado.ioloop.IOLoop.instance().stop() - webbrowser.open(name) - time.sleep(5) # Give the browser time to open the file - os.remove(name) + +def _run(): + app = tornado.web.Application( + [ + ("/", AboutHandler), + ] + ) + app.listen(9999, address="127.0.0.1") + tornado.ioloop.IOLoop.instance().start() + + +def about(): + threading.Thread(target=_run).start() + webbrowser.open("http://127.0.0.1:9999/")