From e9bbba26ac35710ee124deea74a854591ef89ccf Mon Sep 17 00:00:00 2001 From: Marcel Gansfusz Date: Thu, 30 Jan 2025 23:20:35 +0100 Subject: [PATCH] some improvements regurading filepaths --- app.js | 10 ++++++---- app/__pycache__/main.cpython-313.pyc | Bin 4503 -> 4745 bytes app/main.py | 18 +++++++++++++----- index.html | 2 +- 4 files changed, 20 insertions(+), 10 deletions(-) diff --git a/app.js b/app.js index 805e6fd..71967fe 100644 --- a/app.js +++ b/app.js @@ -111,9 +111,10 @@ class Rectangle { } } class PDFDocument { - constructor(filename) { + constructor(filename, fileID) { this.pdf = new PDFView(filename); this.fname = filename; + this.fID = fileID; this.rects = []; this.cnv = document.querySelector("#drw_cnv"); this.ctx = this.cnv.getContext("2d"); @@ -264,7 +265,8 @@ function submitPdf(eve) { console.log(doc.paramRects); formdata.append("rects", JSON.stringify(doc.paramRects)); formdata.append("pagescales", JSON.stringify(doc.pagescales.slice(1))); - formdata.append("fname", doc.fname); + formdata.append("fileId", doc.fID); + formdata.append("filename", doc.filename); console.log(formdata); submitForm(formdata); } @@ -310,7 +312,7 @@ async function uploadFile(formData) { console.log(response); delete doc.pdf; delete doc; - doc = new PDFDocument(responseJSON.path); + doc = new PDFDocument(responseJSON.path, responseJSON.fid); } else { console.log("upload failed"); } @@ -338,7 +340,7 @@ function initListeners() { }); } const startPdf = () => { - doc = new PDFDocument("./VO_Mathematik_3.pdf"); + doc = new PDFDocument("./VO_Mathematik_3.pdf", 0); //pdf = new PDFView("./VO_Mathematik_3.pdf"); initDraw(); initUpload(); diff --git a/app/__pycache__/main.cpython-313.pyc b/app/__pycache__/main.cpython-313.pyc index 4fe65ecf577d81b6c04b57ce6938b1f701d61c56..721923a4db2e48211362168e1a9d074c792f4b05 100644 GIT binary patch delta 2062 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 XziXqF@Nkfjv*|{kbvQ7_LdpIESC*8j diff --git a/app/main.py b/app/main.py index 4fdcb57..365d55e 100644 --- a/app/main.py +++ b/app/main.py @@ -1,16 +1,17 @@ from typing import Annotated from typing import List, Dict, Tuple -from datetime import date from fastapi import FastAPI, File, UploadFile, Request, Form from fastapi.staticfiles import StaticFiles import pymupdf -import pdf2image import json +import os app = FastAPI() app.mount("/static", StaticFiles(directory="./"), name="static") +locpaths = ["./VO_Mathematik_3.pdf"] # replace this with a database + @app.post("/files/") async def create_file(file: Annotated[bytes, File()]): @@ -21,10 +22,16 @@ async def create_file(file: Annotated[bytes, File()]): async def create_upload_file(file: UploadFile): content = await file.read() filename = file.filename if file.filename is not None else "None" - with open("./app/files/" + filename, "wb") as f: + locpath = "./app/files/" + filename + locpaths.append(locpath) + with open(locpath, "wb") as f: f.write(content) app.mount("/files", StaticFiles(directory="./app/files/"), name="files") - return {"filename": filename, "path": "/files/" + filename} + return { + "filename": filename, + "path": "/files/" + filename, + "fid": len(locpaths) - 1, + } @app.post("/submit/") @@ -32,6 +39,7 @@ async def get_submittion( lva: Annotated[str, Form()], # LVA Name and Number prof: Annotated[str, Form()], # Vortragender fname: Annotated[str, Form()], # Path to pdf File + fileId: Annotated[int, Form()], sem: Annotated[str, Form()], # Semester eg. 2024W stype: Annotated[str, Form()], # Type of File eg. Prüfung ex_date: Annotated[str, Form()], # Date of Exam only when type is exam @@ -45,7 +53,7 @@ async def get_submittion( print(lva, prof, fname, stype, sem, ex_date, rects, pagescales) rects_p = json.loads(rects) scales_p = json.loads(pagescales) - censor_pdf(fname, "./app/files/censored.pdf", rects_p, scales_p) + censor_pdf(locpaths[fileId], "./app/files/censored.pdf", rects_p, scales_p) return {"done": "ok"} diff --git a/index.html b/index.html index 85b9f16..ced4506 100644 --- a/index.html +++ b/index.html @@ -1,5 +1,5 @@ - + Unizeug uploader