Make .members fancy
parent
0953826ee3
commit
508bf638bd
|
@ -2,6 +2,7 @@
|
||||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
# 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/.
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
import html
|
import html
|
||||||
|
import time
|
||||||
|
|
||||||
from telethon import events
|
from telethon import events
|
||||||
from telethon import utils
|
from telethon import utils
|
||||||
|
@ -43,8 +44,18 @@ async def _(event):
|
||||||
|
|
||||||
@borg.on(events.NewMessage(pattern=r"\.members", outgoing=True))
|
@borg.on(events.NewMessage(pattern=r"\.members", outgoing=True))
|
||||||
async def _(event):
|
async def _(event):
|
||||||
|
last = 0
|
||||||
|
index = 0
|
||||||
members = []
|
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(
|
messages = await borg.get_messages(
|
||||||
event.chat_id,
|
event.chat_id,
|
||||||
from_user=member,
|
from_user=member,
|
||||||
|
@ -58,25 +69,4 @@ async def _(event):
|
||||||
m[1] for m in sorted(members, key=lambda m: m[0], reverse=True)
|
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')
|
||||||
|
|
||||||
|
|
||||||
@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')
|
|
Reference in New Issue