ATND から参加者の Twitter アイコン画像をダウンロードする Ruby スクリプト
元ネタ こくちーずから申込者のアイコンをダウンロードし、座席表用のアカウントつき画像を作成する座席表職人のためのGroovyスクリプト - みちしるべ
Ruby の勉強がてら、ATND から参加者の Twitter アイコンをダウンロードするスクリプトを書いてみました。
ATND は API が用意されてるので元ネタよりもずっと簡単です。
今ままで Web アプリなんて作ったことないので、Web API とか JSON とか新鮮で楽しかったです。
元ネタではアイコンに TwitterID を埋め込んだ画像を出力してますが、面倒なので、とりあえずファイル名を TwitterID にして出力するようにしています。
そのうち、画像処理ライブラリ探して再チャレンジします。
require 'open-uri' require 'json' atnd_id = ARGV.first url = "http://api.atnd.org/events/users/?format=json&event_id=#{atnd_id}" json = open(url).read result = JSON.parse(json) members = result['events'][0]['users'] members.map do |member| id = member["twitter_id"] imgfile = member["twitter_img"] if (id && member["status"] == 1) ext = File::extname(imgfile) outfile = id + ext open(outfile, 'wb') do |dst| open(imgfile) do |src| dst.write(src.read) end end end end
基本構造は ATNDから参加者のTwitterアカウントを抜き出すRubyスクリプト - Qiita を参考にしています。
どうもまだ、ブロック構文とか変数の型を宣言しないとか、Ruby の文法に慣れません。
もっと使わないとだめですね。