2020-04-19 00:33:11 +00:00
|
|
|
from typing import Dict, Iterable, List, Optional
|
|
|
|
from irctokens import build
|
|
|
|
from ircstates.numerics import *
|
|
|
|
|
|
|
|
from .contexts import ServerContext
|
2020-04-27 00:28:46 +00:00
|
|
|
from .matching import Response, ANY, Folded
|
2020-04-19 00:33:11 +00:00
|
|
|
|
|
|
|
class WHOContext(ServerContext):
|
|
|
|
async def ensure(self, channel: str):
|
|
|
|
if self.server.isupport.whox:
|
|
|
|
await self.server.send(self.server.prepare_whox(channel))
|
|
|
|
else:
|
|
|
|
await self.server.send(build("WHO", [channel]))
|
|
|
|
|
|
|
|
line = await self.server.wait_for(
|
2020-04-28 10:45:46 +00:00
|
|
|
Response(RPL_ENDOFWHO, [ANY, Folded(channel)])
|
2020-04-19 00:33:11 +00:00
|
|
|
)
|