Include 2019 in counts
All checks were successful
Build and Publish / build_and_publish (push) Successful in 1m20s

This commit is contained in:
Nexus 2024-07-05 00:42:12 +01:00
parent 5a5752eae7
commit 0874ad78e0

View file

@ -127,7 +127,7 @@ class ElectionCog(commands.Cog):
except ValueError: except ValueError:
self.log.error("failed to parse %r", span) self.log.error("failed to parse %r", span)
continue continue
results[party] = [seats, change, 0] results[party] = [seats, change, 0, 0]
# if not span: # if not span:
# self.log.warning("%r did not have a 'span' element.", child_ul) # self.log.warning("%r did not have a 'span' element.", child_ul)
# continue # continue
@ -148,6 +148,17 @@ class ElectionCog(commands.Cog):
# int(groups["net"].strip()) * MULTI[groups["net_change"]], # int(groups["net"].strip()) * MULTI[groups["net_change"]],
# int(find_colour(child_ul.next["class"][0])[1:], base=16) # int(find_colour(child_ul.next["class"][0])[1:], base=16)
# ] # ]
for child_li in good_soups[1].children:
span = list(child_li.children)[-1]
try:
party, extra = span.get_text().strip().split(":", 1)
seats, _ = extra.split(" ", 1)
seats = int(seats)
except ValueError:
self.log.error("failed to parse %r", span)
continue
if party in results:
results[party][3] = seats
return results return results
async def _get_embed(self) -> discord.Embed | None: async def _get_embed(self) -> discord.Embed | None:
@ -170,11 +181,11 @@ class ElectionCog(commands.Cog):
description_parts = [] description_parts = []
for party_name, values in results.items(): for party_name, values in results.items():
councillors, net, colour = values councillors, net, colour, last_election = values
colour_scores[party_name] = councillors colour_scores[party_name] = councillors
symbol = "+" if net > 0 else '' symbol = "+" if net > 0 else ''
description_parts.append( description_parts.append(
f"**{party_name}**: {symbol}{net:,} ({councillors:,} total)" f"**{party_name}**: {symbol}{net:,} ({councillors:,} total, {last_election:,} in 2019)"
) )
top_party = list(sorted(colour_scores.keys(), key=lambda k: colour_scores[k], reverse=True))[0] top_party = list(sorted(colour_scores.keys(), key=lambda k: colour_scores[k], reverse=True))[0]