Serve script that sends correct MIME types

Python...
This commit is contained in:
space-nuko
2023-05-11 11:29:41 -05:00
parent baa24f4d36
commit 68eca7cffb
4 changed files with 60 additions and 18 deletions

View File

@@ -1,11 +1,4 @@
@echo off
echo Starting ComfyBox.
echo Be sure you've started ComfyUI already using this command:
echo[
echo python main.py --enable-cors-header
echo[
echo Serving at http://localhost:8000
echo[
python -m http.server 8000
cd /D "%~dp0"
python serve.py

View File

@@ -1,11 +1,4 @@
#!/usr/bin/env sh
echo "Starting ComfyBox."
echo "Be sure you've started ComfyUI already using this command:"
echo ""
echo " python main.py --enable-cors-header"
echo ""
echo "Serving at http://localhost:8000"
echo ""
python -m http.server 8000
cd "${0%/*}"
python serve.py

52
bin/serve.py Normal file
View File

@@ -0,0 +1,52 @@
#!/usr/bin/env python
import http.server
import socketserver
PORT = 8000
message = f"""Starting ComfyBox.
Be sure you've started ComfyUI already using this command:
python main.py --enable-cors-header
Serving at http://localhost:{PORT}...
"""
# python -m http.server will sometimes send incorrect MIME types.
# But most people have a system python already installed so this method is most convenient.
# So here is a list of MIME types for the server to send back per file extension.
# Hopefully this will cover everything.
class HttpRequestHandler(http.server.SimpleHTTPRequestHandler):
extensions_map = {
'': 'application/octet-stream',
'.manifest': 'text/cache-manifest',
'.html': 'text/html',
'.png': 'image/png',
'.jpg': 'image/jpg',
'.jpeg': 'image/jpeg',
'.gif': 'image/gif',
'.svg': 'image/svg+xml',
'.css': 'text/css',
'.js': 'application/x-javascript',
'.wasm': 'application/wasm',
'.json': 'application/json',
'.xml': 'application/xml',
'.xml': 'application/xml',
'.pdf': 'application/pdf',
'.webp': 'image/webp',
'.avif': 'image/avif',
'.heic': 'image/heic',
'.heif': 'image/heif',
'.mp3': 'audio/mpeg',
'.mp4': 'video/mp4',
'.m4v': 'video/mp4'
}
httpd = socketserver.TCPServer(("localhost", PORT), HttpRequestHandler)
try:
print(message)
httpd.serve_forever()
except KeyboardInterrupt:
pass