mirror of
https://github.com/sipeed/picoclaw.git
synced 2026-06-12 18:08:54 +00:00
feat(channels): add IRC channel integration
Add IRC as a new channel for picoclaw, supporting server connections, channel joins, DMs, mention-based group triggers, and IRCv3 typing indicators. Uses ergochat/irc-go for connection management with SASL, NickServ, and automatic reconnection support. Closes #1137
This commit is contained in:
Executable
+56
@@ -0,0 +1,56 @@
|
||||
#!/bin/sh
|
||||
# Starts a local Ergo IRC server for testing the IRC channel.
|
||||
#
|
||||
# Requirements: docker
|
||||
# Usage: ./scripts/test-irc.sh
|
||||
|
||||
set -e
|
||||
|
||||
CONTAINER_NAME="picoclaw-test-ergo"
|
||||
IRC_PORT=6667
|
||||
|
||||
# Clean up any previous instance
|
||||
docker rm -f "$CONTAINER_NAME" >/dev/null 2>&1 || true
|
||||
|
||||
echo "Starting Ergo IRC server on port $IRC_PORT..."
|
||||
docker run -d \
|
||||
--name "$CONTAINER_NAME" \
|
||||
-p "$IRC_PORT:6667" \
|
||||
ghcr.io/ergochat/ergo:stable
|
||||
|
||||
for i in $(seq 1 10); do
|
||||
if nc -z localhost "$IRC_PORT" 2>/dev/null; then
|
||||
break
|
||||
fi
|
||||
if [ "$i" -eq 10 ]; then
|
||||
echo "ERROR: Server did not start within 10s"
|
||||
exit 1
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "IRC server ready on localhost:$IRC_PORT"
|
||||
echo ""
|
||||
echo "Add this to your ~/.picoclaw/config.json under \"channels\":"
|
||||
echo ""
|
||||
echo ' "irc": {'
|
||||
echo ' "enabled": true,'
|
||||
echo ' "server": "localhost:6667",'
|
||||
echo ' "tls": false,'
|
||||
echo ' "nick": "picobot",'
|
||||
echo ' "channels": ["#test"],'
|
||||
echo ' "allow_from": [],'
|
||||
echo ' "group_trigger": { "mention_only": true }'
|
||||
echo ' }'
|
||||
echo ""
|
||||
echo "Then run picoclaw:"
|
||||
echo " cd packages/picoclaw && go run ./cmd/picoclaw gateway"
|
||||
echo ""
|
||||
echo "Connect with an IRC client:"
|
||||
echo " irssi: /connect localhost $IRC_PORT"
|
||||
echo " weechat: /server add test localhost/$IRC_PORT && /connect test"
|
||||
echo " Join #test, then: picobot: hello"
|
||||
echo ""
|
||||
echo "To stop the IRC server:"
|
||||
echo " docker rm -f $CONTAINER_NAME"
|
||||
Reference in New Issue
Block a user