Add JH work data page and database
This commit is contained in:
33
project_code_viewer_server.py
Normal file
33
project_code_viewer_server.py
Normal 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()
|
||||
Reference in New Issue
Block a user