timesafari
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

59 lines
1.8 KiB

import webview
import os
import sys
from http.server import HTTPServer, SimpleHTTPRequestHandler
import threading
def get_dist_path():
if getattr(sys, 'frozen', False):
base_path = sys._MEIPASS
else:
base_path = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
dist_path = os.path.join(base_path, 'dist')
print(f"Dist path: {dist_path}")
return dist_path
class CustomHandler(SimpleHTTPRequestHandler):
def __init__(self, *args, **kwargs):
dist_dir = get_dist_path()
print(f"Serving from directory: {dist_dir}")
super().__init__(*args, directory=dist_dir, **kwargs)
def log_message(self, format, *args):
# Override to show more detailed logging
print(f"Request: {format%args}")
if hasattr(self, 'path'):
print(f"Requested path: {self.path}")
full_path = os.path.join(self.directory, self.path.lstrip('/'))
print(f"Full path: {full_path}")
print(f"File exists: {os.path.exists(full_path)}")
if self.path.endswith('.html'):
print(f"HTML content: {open(full_path).read()[:200]}...")
def run_server(port=8000):
server_address = ('localhost', port)
httpd = HTTPServer(server_address, CustomHandler)
print(f"Serving files from {get_dist_path()} at http://localhost:{port}")
httpd.serve_forever()
def main():
dist_path = get_dist_path()
# Start local server
server_thread = threading.Thread(target=run_server)
server_thread.daemon = True
server_thread.start()
# Create window using local server
window = webview.create_window(
'TimeSafari',
url='http://localhost:8000',
width=1200,
height=800
)
webview.start(debug=True)
if __name__ == '__main__':
main()