main.py 1023 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import json
  2. import os
  3. from fastapi import FastAPI
  4. app = FastAPI()
  5. def discover_sets():
  6. # find all set directories
  7. sets = []
  8. for root, dirs, files in os.walk("data/sets"):
  9. for dir in dirs:
  10. sets.append(dir)
  11. return sets
  12. @app.get("/sets")
  13. def read_sets():
  14. sets = discover_sets()
  15. return {"sets": sets}
  16. @app.get("/sets/{set_name}/cards")
  17. def read_item(set_name: str):
  18. if set_name not in discover_sets():
  19. return {"error": "Set not found"}
  20. card_data_path = os.path.join("data", "sets", set_name, "card-data.json")
  21. with open(card_data_path) as f:
  22. card_data = json.load(f)
  23. return {"data": card_data}
  24. @app.get("/sets/{set_name}/ratings")
  25. def read_item(set_name: str):
  26. if set_name not in discover_sets():
  27. return {"error": "Set not found"}
  28. card_ratings_path = os.path.join("data", "sets", set_name, "card-ratings-all.json")
  29. with open(card_ratings_path) as f:
  30. card_data = json.load(f)
  31. return {"data": card_data}