import json from ..connection import connect from .ensure_quests_schema import ensure_quests_schema def _row_to_quest(row): quest = dict(row) try: quest["dialogues"] = json.loads(quest.pop("dialogues_json") or "{}") except (TypeError, ValueError): quest["dialogues"] = {} quest.pop("dialogues_json", None) return quest def list_quests(slug): ensure_quests_schema(slug) conn = connect(slug) rows = conn.execute("SELECT * FROM _quests ORDER BY created_at DESC, id DESC").fetchall() conn.close() return [_row_to_quest(r) for r in rows]