Squash Odysseus development history

This commit is contained in:
pewdiepie-archdaemon
2026-09-11 06:04:19 +00:00
parent c9dd68d890
commit 84aa9a91de
871 changed files with 265870 additions and 27854 deletions
+21 -4
View File
@@ -190,7 +190,8 @@ def setup_upload_routes(upload_handler):
return None
return session_id
def _promote_chat_image_to_gallery(meta: dict, owner: str | None, session_id: str | None = None) -> str | None:
def _promote_chat_image_to_gallery(meta: dict, owner: str | None, session_id: str | None = None,
gallery_id: str | None = None) -> str | None:
"""Make chat-uploaded images visible in Gallery without changing chat storage."""
is_image_file = getattr(upload_handler, "is_image_file", None)
if not callable(is_image_file):
@@ -205,6 +206,21 @@ def setup_upload_routes(upload_handler):
db = SessionLocal()
try:
file_hash = meta.get("hash")
if gallery_id:
existing = db.query(GalleryImage).filter(
GalleryImage.id == gallery_id,
GalleryImage.is_active == True, # noqa: E712
).first()
if existing and (not owner or existing.owner == owner):
image_dir = Path(GENERATED_IMAGES_DIR)
image_dir.mkdir(parents=True, exist_ok=True)
shutil.copy2(source_path, image_dir / existing.filename)
existing.file_hash = file_hash
existing.file_size = meta.get("size")
existing.width = meta.get("width")
existing.height = meta.get("height")
db.commit()
return existing.id
if file_hash:
q = db.query(GalleryImage).filter(
GalleryImage.file_hash == file_hash,
@@ -259,6 +275,7 @@ def setup_upload_routes(upload_handler):
request: Request,
files: List[UploadFile] = File(...),
session_id: Optional[str] = Form(None),
gallery_id: Optional[str] = Form(None),
):
"""Upload files with enhanced security and organization."""
if not isinstance(session_id, str):
@@ -289,7 +306,7 @@ def setup_upload_routes(upload_handler):
try:
owner = effective_user(request)
meta = upload_handler.save_upload(u, client_ip, owner=owner)
gallery_id = _promote_chat_image_to_gallery(meta, owner, session_id)
promoted_gallery_id = _promote_chat_image_to_gallery(meta, owner, session_id, gallery_id)
item = {
"id": meta["id"],
"name": meta["name"],
@@ -303,8 +320,8 @@ def setup_upload_routes(upload_handler):
"height": meta.get("height"),
"is_duplicate": meta.get("is_duplicate", False)
}
if gallery_id:
item["gallery_id"] = gallery_id
if promoted_gallery_id:
item["gallery_id"] = promoted_gallery_id
out.append(item)
except HTTPException:
raise