diff --git a/stdplugins/who.py b/stdplugins/who.py index ac42800..af9bf0d 100644 --- a/stdplugins/who.py +++ b/stdplugins/who.py @@ -2,6 +2,7 @@ # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. import html +import time from telethon import events from telethon import utils @@ -43,8 +44,18 @@ async def _(event): @borg.on(events.NewMessage(pattern=r"\.members", outgoing=True)) async def _(event): + last = 0 + index = 0 members = [] - async for member in borg.iter_participants(event.chat_id): + + it = borg.iter_participants(event.chat_id) + async for member in it: + index += 1 + now = time.time() + if now - last > 0.5: + last = now + await event.edit(f'counting member stats ({index / it.total:.2%})…') + messages = await borg.get_messages( event.chat_id, from_user=member, @@ -58,25 +69,4 @@ async def _(event): m[1] for m in sorted(members, key=lambda m: m[0], reverse=True) ) - await event.edit("\n".join(members), parse_mode='html') - - -@borg.on(events.NewMessage(pattern=r"\.active_members", outgoing=True)) -async def _(event): - members = [] - async for member in borg.iter_participants(event.chat_id): - messages = await borg.get_messages( - event.chat_id, - from_user=member, - limit=1 - ) - date = messages[0].date - members.append(( - date, - f"{date:%Y-%m-%d} - {get_who_string(member)}" - )) - members = ( - m[1] for m in sorted(members, key=lambda m: m[0], reverse=True) - ) - - await event.edit("\n".join(members), parse_mode='html') + await event.edit("\n".join(members), parse_mode='html') \ No newline at end of file