LoginSignup
3
4

More than 5 years have passed since last update.

slackとIRCをIRCボットで連携してみた

Posted at

もともとプライベートなネットワーク内でコミュニケーションツールとしてIRCを利用していたが、外部とのやりとりでslackも利用することになった。
その際にslackとIRCを連携できたら便利だなと思ってIRCボットで連携してみた。
この文書では連携内容をメモしておく。

同じようなことをされている方がいた!
Scala - SlackとIRCを相互リレーする話 - Qiita

連携例

IRCボットでこんな感じに連携してみた。

slack側
slack_irc_bot.png

最後2行がIRCでの発言

IRC側
irc_slack_irc_bot.png

最後2行以外がslackでの発言

システム構成

slack_irc_bot.png

IRCボットはrubyで作成

特徴

IRCへの連携

  • ボットの名前をなるべくslack上の発言者の名前にあわせて変更してslack上の発言を行う
    • ボットの名前として_(アンダーバー)をslackの名前の最初につける
    • IRC上で名前が被った場合はプレフィックスに_(アンダーバー)が増えて行く
  • マルチスレッドで複数のボットを動かして名前をキャッシュすることができる
    • 必要な場合は一番古い発言を行ったボットの名前が変更される

メリット

  • ボット名固定でslack上の発言者の名前をコメント上に表示する場合はキーワードにひっかかる場合があるがそういうことがない

デメリット

  • slack上の名前をIRCのnicknameの仕様に無理やりあわせるため発言者がわかりにくくなる場合がありうる
  • ボットの数によっては頻繁に名前が変わってIRC上に通知されるためうざい場合がある
  • マルチスレッドなボット間で連携がいるためコードがやや複雑になる

slackへの連携

  • IRCの発言者の名前の前後に:をつけるのでslack上でカスタムアイコン登録すると発言者がわかりやすい
  • IRCの発言者の名前のサフィックスの_は削除する
    • LimeChatで名前が被った場合にサフィックスに_をつける仕様を意識

SQS越しの連携

  • メリット:外には出ていけるが外からアクセスできないようなプライベートなネットワークにあるIRCとも連携可能
  • デメリット:AmazonWebService環境が必要になる

ソースコードと使いかた

Github上に配置
https://github.com/mechamogera/slack_irc_bot

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4