MSNボット - ログインログ

30分プログラム、その235。MSNメッセンジャーで、誰が何時にログインしたかを記録するボット。
本当は、Ruburpleを改造して、表示名を変更できるようにしてやるぜー、と思ってたけれどPidgin API リファレンスが落ちているので断念。で、手軽にできそうなボットを作ってみた。
そのうち、もっと構造化して簡単にボットを追加できるようにしたいな。あと、サーバで動かせるようにしないと。

使い方

$ ruby msn-log.rb
Mon Feb 04 22:36:22 +0900 2008  xxx@hotmail.com  sign on
Mon Feb 04 22:37:12 +0900 2008  xxx@hotmail.com  sign off
Mon Feb 04 22:37:59 +0900 2008  xxx@hotmail.com  sign on
...

ソースコード

#! /opt/local/bin/ruby -w
# -*- mode:ruby; coding:utf-8 -*-
#
# msn.rb -
#
# Copyright(C) 2008 by mzp
# Author: MIZUNO Hiroki / mzpppp at gmail dot com
# http://howdyworld.org
#
# Timestamp: 2008/02/03 21:22:31
#
# This program is free software; you can redistribute it and/or
# modify it under MIT Lincence.
#

require 'ruburple'
Ruburple::init

module Ruburple
  def self.observe(event,&proc)
    self.subscribe(event,proc)
  end
end


Ruburple.observe(:buddy_signed_on){|buddy|
  puts "#{Time.now}\t#{buddy.name}\tsign on"
}

Ruburple.observe(:buddy_signed_off){|buddy|
  puts "#{Time.now}\t#{buddy.name}\tsign off"
}

protocol = Ruburple::get_protocol 'MSN'
account = protocol.get_account 'username','password'
account.connect

trap(:INT){
  account.connection.close
  exit 1
}

loop{ sleep 1 }