Божественний ii та трошки shell-скриптів. Короткий брудний пост без пояснень.
Запуск ii
Перед тим, як лізти на публічні мережі IRC, краще спробувати локально.
Локальний ircd це не страшно, це просто apt install ngircd
і все.
Так от.
ii -s 127.0.0.1 -n ii -i $(pwd)/ii
Каталог ii/127.0.0.1/
буде містити певну кількість текстових файлів та FIFO, через які можна комунікувати з ii
.
Прийом
Власне, ось скрипт, через який я написав пост.
#!/bin/sh
echo Press Ctrl-C to exit
echo "/j #test" > ii/127.0.0.1/in
stdbuf -oL -eL tail -f -n0 ii/127.0.0.1/\#test/out | \
stdbuf -oL -eL grep -P "^\d+\s\<\w+\>" | \
while read line
do
msg=$(echo $line | cut -d' ' -f3-)
echo "Incoming message: $msg"
# mplayer -really-quiet /usr/share/sounds/freedesktop/stereo/dialog-information.oga
# curl -X POST http://localhost/some-service.php -d "message=$msg"
done
Рядок з curl
закоментовано, редагуйте на свій смак щоб надсилати ці дані до свого сервісу.
Рядок з grep
теж можна трошки підправити, щоб він реагував на певного користувача. Наразі воно просто реагує на всі повідомлення від всіх користувачів, ігноруючи повідомлення про вхід та вихід.
Нахіба
Один з прикладів застосування: скрипт rss2irc (в цьому жанрі є декілька скриптів, я взяв цей).
А взагалі, як я припускаю, щось подібне можна було б зробити через node-red-node-irc. Але ж чим більше варіантів, тим веселіше :)