Use local server instead of temporary file

This commit is contained in:
Samuel Sloniker 2024-07-29 08:26:03 -07:00
parent 84d05ac06e
commit 950c052e3f

View File

@ -1,17 +1,20 @@
import webbrowser
import tempfile
import time
import os
import threading
import markdown
import tornado.ioloop
import tornado.web
import navpoint.fix_path
def about():
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")
.replace(
"https://creativecommons.org/licenses/by-sa/4.0/", "#cc"
)
)
with open(navpoint.fix_path.fix_path("GPL-3.0.txt")) as f:
@ -20,11 +23,7 @@ def about():
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"""\
<!DOCTYPE html>
<html>
@ -45,7 +44,19 @@ def about():
</html>
"""
)
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/")