starfriend commited on
Commit
fffec10
·
verified ·
1 Parent(s): ea5127c

Upload app.py

Browse files
Files changed (1) hide show
  1. metadata_search/app.py +11 -11
metadata_search/app.py CHANGED
@@ -91,6 +91,7 @@ from metadata_search.paper_figures import (
91
  figure_paper_count,
92
  figures_payload_for_paper,
93
  figures_dir,
 
94
  )
95
  from metadata_search.mcp_retrieval import (
96
  list_saved_papers,
@@ -274,18 +275,17 @@ def paper_pdf_file(filename: str):
274
 
275
  @app.get("/figures/<path:paper_key>/<path:filename>")
276
  def paper_figure_file(paper_key: str, filename: str):
277
- root = figures_dir()
278
- if root is None:
279
- return jsonify({"error": "Figure assets are not configured."}), 404
280
- paper_dir = root / paper_key
281
- if not paper_dir.is_dir():
282
- return jsonify({"error": "Paper figures not found."}), 404
283
- target = (paper_dir / filename).resolve()
284
- if not str(target).startswith(str(paper_dir.resolve())):
285
- return jsonify({"error": "Invalid figure path."}), 400
286
- if not target.is_file():
287
  return jsonify({"error": "Figure file not found."}), 404
288
- return send_from_directory(paper_dir, filename)
 
 
 
 
289
 
290
 
291
  @app.get("/api/papers/figures")
 
91
  figure_paper_count,
92
  figures_payload_for_paper,
93
  figures_dir,
94
+ resolve_figure_asset,
95
  )
96
  from metadata_search.mcp_retrieval import (
97
  list_saved_papers,
 
275
 
276
  @app.get("/figures/<path:paper_key>/<path:filename>")
277
  def paper_figure_file(paper_key: str, filename: str):
278
+ safe_paper_key = Path(paper_key).name
279
+ safe_name = Path(filename).name
280
+
281
+ target = resolve_figure_asset(safe_paper_key, safe_name)
282
+ if target is None:
 
 
 
 
 
283
  return jsonify({"error": "Figure file not found."}), 404
284
+
285
+ return send_from_directory(
286
+ target.parent,
287
+ target.name,
288
+ )
289
 
290
 
291
  @app.get("/api/papers/figures")