Spaces:
Sleeping
Sleeping
import random | |
def randomly_select_from_json(world_data): | |
world_name = world_data["name"] | |
world_description = world_data["description"] | |
valid_kingdoms = { | |
k_name: k_data | |
for k_name, k_data in world_data["kingdoms"].items() | |
if any("npcs" in town_data and town_data["npcs"] for town_data in k_data["towns"].values()) | |
} | |
if not valid_kingdoms: | |
raise ValueError("No kingdoms with valid towns and NPCs found.") | |
kingdom_name, kingdom_data = random.choice(list(valid_kingdoms.items())) | |
kingdom_description = kingdom_data["description"] | |
valid_towns = { | |
t_name: t_data | |
for t_name, t_data in kingdom_data["towns"].items() | |
if "npcs" in t_data and t_data["npcs"] | |
} | |
if not valid_towns: | |
raise ValueError(f"No towns with NPCs found in kingdom: {kingdom_name}") | |
town_name, town_data = random.choice(list(valid_towns.items())) | |
town_description = town_data["description"] | |
npcs = town_data["npcs"] | |
character_name, character_data = random.choice(list(npcs.items())) | |
character_description = character_data["description"] | |
return { | |
"world": {"name": world_name, "description": world_description}, | |
"kingdom": {"name": kingdom_name, "description": kingdom_description}, | |
"town": {"name": town_name, "description": town_description}, | |
"character": {"name": character_name, "description": character_description}, | |
} | |