Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

IRC botでHENTAIを通報する!

この記事はHENTAI Advent Calendar 2012 - 変態アドベントカレンダー 15日目の記事です。

昨日は@issps2009さんの素晴らしいエントリー(http://d.hatena.ne.jp/issan2009/20121214)でした!

アドベントカレンダーに書くのは初めてだったりします。

初めてが変態だなんて…というネタでエントリが1つ書けてしまうかもしれませんが、やめときます。

昨年、我らが総帥@daiksyさんがTwitter botで変態を通報しておられました。

http://daiksy.blogspot.jp/2011/11/twitter.html

ということで、僕はIRCで変態を監視することにします。

IRC botは簡単に書けるよ!そう、Rubyならね!

ruby irc bot」と検索すると、いともたやすく検索できてしまいました。こちらはミサワ先輩のありがたいお言葉を頂戴するボットです。

UKSTUDIO - IRCでミサワをいつも側に…

http://ukstudio.jp/2010/12/24/misawa-ruby-recipe/

これを変えさせてもらって、変態を通報するようにします。noticeだと隠れてしまうので、堂々とprivate messageで通報します。

# coding: utf-8
require 'rubygems'
require 'net/irc'

class HentaiPatroler < Net::IRC::Client
  def on_rpl_welcome(m)
    post JOIN, opts.channel
  end

  def on_privmsg(m)
    channel, message = *m
    if message.force_encoding('utf-8') =~ /変態/
      post PRIVMSG, channel, '↑ お巡りさん、この人です!'
    end
  end

end

patroler = HentaiPatroler.new([サーバ名], [ポート番号],
                          {:nick => 'patrol', :user => 'patrol', :real => 'patrol',
                           :channel => '#channel'})
patroler.start

起動

ruby HentaiPatroler.rb

すると、「変態」と書き込んだ瞬間、間髪入れずに通報することができます。

f:id:jyukutyo:20121213173511p:plain

お粗末さまでした。

ところでみなさんのIRCクライアントは?

LimeChatが一番シェアが多いように感じます。でも、「GUIよりCUI」を僕は心がけているので、IRCクライアントもCUIです。

WeeChat, the extensible chat client http://www.weechat.org/

最初は不便を感じましたが、普段GUIで済ませていて意識しないこと、たとえばIRCコマンドを覚えたりするので、やはりCUIは偉大です。

ところでIRCサーバーは?

ngIRCd: Next Generation IRC Daemonでサクッと立てました。Ubuntuだとaptで入るので、楽勝です。

明日は

@s_kozakeさんです!お楽しみに!