Add JH work data page and database

This commit is contained in:
2026-06-05 15:34:26 +09:00
commit c196a31e4a
58 changed files with 295313 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
#!/usr/bin/env python3
import os
import sqlite3
from http.server import ThreadingHTTPServer
from urllib.parse import urlparse
import mysql_preview_server as base
class ProjectCodeViewerHandler(base.Handler):
def do_GET(self):
parsed = urlparse(self.path)
if parsed.path == '/':
return self._html(base.PROJECT_CODES_HTML)
return super().do_GET()
if __name__ == '__main__':
os.makedirs(base.BASE_DIR, exist_ok=True)
try:
with sqlite3.connect(base.DB_PATH, timeout=30) as conn:
base.init_db(conn)
except sqlite3.OperationalError as error:
if 'locked' in str(error).lower():
print(f'Skip startup DB init because database is locked: {error}')
else:
raise
port = int(os.environ.get('PORT', '8092'))
host = '0.0.0.0'
print(f'Server running: http://{base.local_ip()}:{port}')
print(f'Local access: http://127.0.0.1:{port}')
print('Tip: root path serves the project code viewer page.')
ThreadingHTTPServer((host, port), ProjectCodeViewerHandler).serve_forever()