irc2curl


Божественний 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. Але ж чим більше варіантів, тим веселіше :)