|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
×
from __future__ import annotations
import base64
import gzip
import json
import threading
import webbrowser
from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer
PAYLOAD = json.loads(r'''{"/assets/index-BSSqEg3Z.css":{"mime":"text/css; charset=utf-
class RoseHandler(BaseHTTPRequestHandler):
def do_GET(self) -> None:
path = self.path.split("?", 1)[0]
if path == "/":
path = "/index.html"
item = PAYLOAD.get(path)
if item is None:
self.send_error(404)
return
content = gzip.decompress(base64.b64decode(item["data"]))
self.send_response(200)
self.send_header("Content-Type", item["mime"])
self.send_header("Content-Length", str(len(content)))
self.send_header("Cache-Control", "no-store")
self.end_headers()
self.wfile.write(content)
def log_message(self, format: str, *args: object) -> None:
return
def main() -> None:
server = ThreadingHTTPServer(("127.0.0.1", 0), RoseHandler)
url = f"http://127.0.0.1:{server.server_port}/"
print(f"粒子玫瑰已启动:{url}")
print("关闭此窗口或按 Ctrl+C 即可停止。")
threading.Timer(0.5, webbrowser.open, args=(url,)).start()
try:
server.serve_forever()
except KeyboardInterrupt:
pass
finally:
server.server_close()
if __name__ == "__main__":
main()
|
|