blob: 6318e6d9507cca16bf2f5b886cff4d104d039dfc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
from . import irc_client
from dataclasses import dataclass
import irctokens
import trio
@dataclass
class Config:
clients: list[irc_client.Config]
async def start(config):
async with trio.open_nursery() as nursery:
channel, inbox = trio.open_memory_channel(0)
for client in config.clients:
nursery.start_soon(irc_client.connect, client, channel)
async for source, line in inbox:
outbox, client = source
print(f'Got line: {line.format()}')
reply_target = None
if line.params[0] == client.current_nick:
reply_target = line.hostmask.nickname
elif line.params[1].startswith(','):
reply_target = line.params[0]
if reply_target:
await outbox.send(irctokens.build('PRIVMSG', [reply_target, f'Hi {line.hostmask.nickname}']))
|