Kerikim commited on
Commit
51ea51b
·
1 Parent(s): b1305d1

elkay: api.py

Browse files
Files changed (1) hide show
  1. utils/api.py +13 -10
utils/api.py CHANGED
@@ -637,23 +637,26 @@ def record_profit_puzzler_play(user_id: int, puzzles_solved: int, mistakes: int,
637
 
638
 
639
  def generate_quiz(*, lesson_id: int | None, level_slug: str | None, lesson_title: str | None):
640
- """
641
- Ask the backend to build a quiz from lesson chunks.
642
- Returns a list of items: [{question, options:[...], answer_key:"A"}]
643
- """
644
  payload = {
645
  "lesson_id": int(lesson_id) if lesson_id is not None else None,
646
  "level_slug": level_slug,
647
  "lesson_title": lesson_title,
648
- "k": 12, # how many chunks to pull server-side (optional)
649
  }
650
 
651
- resp = _try_candidates("POST", [
652
- ("/quiz/auto", {"json": payload}), # only this
653
- ])
654
-
 
 
 
 
 
 
 
 
655
 
656
- # Normalize shapes: {"items":[...]} or just [...]
657
  if isinstance(resp, dict):
658
  return resp.get("items") or resp.get("quiz") or []
659
  return resp if isinstance(resp, list) else []
 
637
 
638
 
639
  def generate_quiz(*, lesson_id: int | None, level_slug: str | None, lesson_title: str | None):
 
 
 
 
640
  payload = {
641
  "lesson_id": int(lesson_id) if lesson_id is not None else None,
642
  "level_slug": level_slug,
643
  "lesson_title": lesson_title,
644
+ "k": 12,
645
  }
646
 
647
+ try:
648
+ resp = _try_candidates("POST", [
649
+ ("/quiz/auto", {"json": payload}),
650
+ ])
651
+ except RuntimeError:
652
+ # Fallback for older backend that only has /generate_quiz
653
+ resp = _try_candidates("POST", [
654
+ ("/generate_quiz", {"json": {
655
+ "lesson_id": payload["lesson_id"],
656
+ "level_slug": payload["level_slug"],
657
+ }}),
658
+ ])
659
 
 
660
  if isinstance(resp, dict):
661
  return resp.get("items") or resp.get("quiz") or []
662
  return resp if isinstance(resp, list) else []