Mostly works! Image loading and caching seems slow

This commit is contained in:
2025-02-16 20:36:13 -05:00
parent de565fce4f
commit b2ed4cc4e5
14 changed files with 625 additions and 6 deletions

View File

@ -1,3 +1,43 @@
from pathlib import Path
from src.config.config import Configuration
from src.rendering.renderer import render_page, render_error_page
from flask import send_file
from src.rendering.image import generate_thumbnail
from functools import lru_cache
def default_route(path: str):
return f"Default route for {path}"
class RouteManager:
def __init__(self, config: Configuration):
self.config = config
def default_route(self, path: str):
file_path: Path = self.config.content_dir / (path if path else "index.md")
return render_page(
file_path,
base_path=self.config.content_dir,
template_path=self.config.templates_dir,
style_path=self.config.styles_dir,
)
def get_style(self, path: str):
file_path: Path = self.config.styles_dir / path
if file_path.exists():
return send_file(file_path)
else:
return render_error_page(404, "Not Found", "The requested resource was not found on this server.", self.config.templates_dir)
@lru_cache(maxsize=128)
def get_static(self, path: str):
file_path: Path = self.config.content_dir / path
if file_path.exists():
# Check to see if the file is an image, if it is, render a thumbnail
if file_path.suffix.lower() in [".jpg", ".jpeg", ".png", ".gif"]:
thumbnail_bytes, img_format = generate_thumbnail(str(file_path), 10, 300)
return (
thumbnail_bytes.getvalue(),
200,
{"Content-Type": f"image/{img_format.lower()}"},
)
return send_file(file_path)
else:
return render_error_page(404, "Not Found", "The requested resource was not found on this server.", self.config.templates_dir)