generated from justuser-31/mrl_v1_license
54 lines
1.3 KiB
Python
54 lines
1.3 KiB
Python
import os
|
|
import threading
|
|
from datetime import datetime
|
|
from http.server import HTTPServer, ThreadingHTTPServer
|
|
from time import sleep
|
|
|
|
import yaml
|
|
|
|
import database
|
|
from cleanup import session_cleanup
|
|
from config import load_config
|
|
from database import init_db
|
|
from handlers import FileServerHandler
|
|
|
|
global CONFIG
|
|
CONFIG = load_config()
|
|
|
|
|
|
def log(message):
|
|
if CONFIG.get("logging", {}).get("enabled", True):
|
|
print(f"[{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] {message}")
|
|
|
|
|
|
def main():
|
|
init_db()
|
|
|
|
log("Starting SimpliestFS server...")
|
|
|
|
# Start session cleanup thread
|
|
cleanup_thread = threading.Thread(target=session_cleanup, daemon=True)
|
|
cleanup_thread.start()
|
|
|
|
# Start server
|
|
server_address = (CONFIG["server"]["host"], CONFIG["server"]["port"])
|
|
server = ThreadingHTTPServer(server_address, FileServerHandler)
|
|
log(
|
|
f"SimpliestFS server running on {CONFIG['server']['host']}:{CONFIG['server']['port']}"
|
|
)
|
|
server.serve_forever()
|
|
|
|
# Old version which work in one thread (work in one thread not allow to work more than one user)
|
|
# httpd = HTTPServer(server_address, FileServerHandler)
|
|
# httpd.serve_forever()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
while True:
|
|
try:
|
|
main()
|
|
except KeyboardInterrupt:
|
|
exit(0)
|
|
except:
|
|
pass
|