マイペースなプログラミング日記

x86エミュレータやFPGA、WebGLにお熱なd-kamiがマイペースに書くブログ

mixiにログインするプログラム

Rubymixiにログインするプログラムを書いてみた。足跡の表示まで行うようにした。emailとpasswordが正しいことを信じてるプログラムなので間違った情報を入れると正常に動かない

#! /usr/bin/ruby -Ku

require 'net/http'
require 'kconv'

email = "*****@*****.ne.jp"
password = "******"

class User
    attr_reader :id
    attr_reader :name

    def initialize(id, name)
        @id = id
        @name = name
    end
end

class Mixi
    def login(user, password)
        http = Net::HTTP.start('mixi.jp')
        response = http.post('/login.pl', "email=#{user}&password=#{password}&next_url=./home.pl")
        @cookie = response['Set-Cookie'].split(',').join(';')
    end

    def getFootPrintList()
        http = Net::HTTP.start('mixi.jp')
        response = http.get("/show_log.pl", 'Cookie' => @cookie)
        body = response.body.toutf8

        users = Array.new

        body.scan(/<a href="show_friend.pl\?id=(\d+)">([^<]+)<\/a>/){|id, name|
            users << User.new(id, name)
        }

        return users
    end
end

mixi = Mixi.new
mixi.login(email, password)
mixi.getFootPrintList.each{|user|
    puts user.name
}