diff --git a/crawler.py b/crawler.py index 8a70eee..4bbe7c3 100644 --- a/crawler.py +++ b/crawler.py @@ -310,9 +310,23 @@ def save_votes(bios, out): # Generate one markdown file per vote topic for key, votes in sorted(all_votes.items()): md = f"# {key}\n\n" - for name in sorted(votes, key=lambda n: votes[n]["party"]): - info = votes[name] - md += f"- {name} ({info['party']}): {info['vote']}\n" + # Group by party, then by vote result + by_party = {} + for name, info in votes.items(): + party = info["party"] + if party not in by_party: + by_party[party] = {} + result = info["vote"] + if result not in by_party[party]: + by_party[party][result] = [] + by_party[party][result].append(name) + for party in sorted(by_party): + md += f"## {party}\n\n" + for result in sorted(by_party[party]): + md += f"### {result}\n\n" + for name in sorted(by_party[party][result]): + md += f"- {name}\n" + md += "\n" safe_name = re.sub(r'[/<>:"|?*]', "_", key)[:200] with open(f"{dir}/{safe_name}.md", "w", encoding="utf-8") as f: f.write(md)