Deploy folkugat web

This commit is contained in:
marc
2025-03-30 20:52:47 +02:00
parent d596861a2e
commit 6962d70468
20 changed files with 182 additions and 1101 deletions

View File

@@ -1,11 +1,15 @@
import mimetypes
import os
import re
import uuid
from collections.abc import Iterator
from pathlib import Path
import magic
from fastapi import HTTPException, UploadFile
from folkugat_web.config import db
from folkugat_web.dal.sql.temes import links as links_dal
from folkugat_web.log import logger
async def get_mimetype(upload_file: UploadFile) -> str:
@@ -56,3 +60,17 @@ async def store_file(tema_id: int, upload_file: UploadFile) -> str:
def list_files(tema_id: str) -> list[str]:
filedir = db.DB_FILES_DIR / str(tema_id)
return [get_db_file_path(f) for f in filedir.iterdir()]
def get_orphan_files() -> Iterator[Path]:
alive_files = {link.url for link in links_dal.get_links()}
return filter(
lambda p: p.is_file() and get_db_file_path(p) not in alive_files,
db.DB_FILES_DIR.rglob("*"),
)
def clean_orphan_files():
for path in get_orphan_files():
logger.info(f"Deleting the orphan file: {path}")
os.remove(path)