Skip to content

Commit

Permalink
Improve update logic
Browse files Browse the repository at this point in the history
  • Loading branch information
ZechCodes committed Sep 17, 2023
1 parent dbc37c5 commit 152f691
Showing 1 changed file with 8 additions and 10 deletions.
18 changes: 8 additions & 10 deletions extensions/member_counter.py
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand All @@ -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

0 comments on commit 152f691

Please sign in to comment.