summaryrefslogtreecommitdiffstats
path: root/columbo/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'columbo/__init__.py')
-rw-r--r--columbo/__init__.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/columbo/__init__.py b/columbo/__init__.py
new file mode 100644
index 0000000..6318e6d
--- /dev/null
+++ b/columbo/__init__.py
@@ -0,0 +1,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}']))