From 152f6915207915ab6074fe27238b829472346f74 Mon Sep 17 00:00:00 2001 From: Zech Zimmerman Date: Sun, 17 Sep 2023 07:16:20 -0400 Subject: [PATCH] Improve update logic --- extensions/member_counter.py | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/extensions/member_counter.py b/extensions/member_counter.py index 61174ab..89a2d88 100644 --- a/extensions/member_counter.py +++ b/extensions/member_counter.py @@ -9,18 +9,18 @@ class MemberCounterExtension(dippy.Extension): def __init__(self): super().__init__() - self._last_count = 0 + self._current_counter = "" @dippy.Extension.listener("ready") async def on_ready(self): - if self._last_count == 0: + if self._current_counter == "": self.log.info("Starting member counter") self._parse_counter() self._update_member_counter() def _parse_counter(self): channel = self.client.get_channel(968972011407826954) - self._last_count = int(float(channel.name.replace("k", "").replace(",", "")".split()[-1]) * 1000) + self._current_counter = channel.name.split()[-1] def _update_member_counter(self): self._schedule_update() @@ -39,10 +39,8 @@ async def _do_update(self): members = sum(not member.bot for member in guild.default_role.members) members_k = floor(members / 100) / 10 decimal_format = ".0" if members_k.is_integer() else ".1" - self.log.info(f"Updating counter {members:,} {self._last_count:,}") - close_achievement = self._last_count // 250 < (members + 5) // 250 - new_members = members > self._last_count - substantial_drop = members < self._last_count - 5 - if new_members or substantial_drop or close_achievement: - await channel.edit(name=f"📊Members: {members_k:{decimal_format}f}k") - self._last_count = members + members_counter = f"{members_k:{decimal_format}f}k" + self.log.info(f"Updating counter {members_k} {self._current_counter}") + if members_counter != self._current_counter: + await channel.edit(name=f"📊Members: {members_counter}") + self._current_counter = members_counter