凹 [Ruby] RubyのFuseFS使ってtwitter file systemを作ってみた

連休中，一度もプログラムを書かなかったので，最後の日くらいプログラム書こうと思って， スパイダーマン見ながらシコシコと書く． 何度見てもヒロインがおばちゃん顔でスパイダーマンに感情移入できないなぁ…

さて，ブツはココ． FuseFSはもちろん，JSON impl for Rubyも必要． FUSEの勉強のために作ったんで，たいしたことはできませんが，もしかしたら今後面白いことができるようになるかも．

使い方は↓こんな感じ．

copy config.sample config vi config ← username_hereとpassword_hereをtwitterにログインする奴で書き換える mkdir ~/twfs ruby twfs.rb config ~/twfs

これで，~/twfsにtwitter file systemがマウントされます．

ディレクトリ構成はこんなふうになってます．

~/twfs |-- followers | `-- ... |-- friends | `-- ... `-- timelines |-- friends_timeline |-- public_timeline `-- user_timeline

followersとfriendsの下には，それぞれfollowerとfriendのスクリーン名でディレクトリがあって，さらにその下にいろいろファイルがあります．まぁ見れば分かると思います． デフォルトでは60秒間隔で更新されます．

friends_timelineなどの配下にはxmlとかjsonとかいうファイルがあって，catするとファイル名の形式でtimelineが取れます． こっちは，catする度にtwitter.comにGETしに行きます． 日本語が悲しいことになってます…

で，具体的には↓こんなことができます．

kita@ubuntu% cd ~/twfs kita@ubuntu% ls followers/ friends/ timelines/ kita@ubuntu% cd tokyoforecast/ kita@ubuntu% ls description id location name profile_image_url protected screen_name status/ url kita@ubuntu% cat name Tokyo Forecast kita@ubuntu% cat status/text . 06日（日）の天気は雨、最高気温は19°C 最低気温は16°Cでしょう。 http://tinyurl.com/yva684 kita@ubuntu% cd ../../timelines/public_timeline/ kita@ubuntu% ls atom json rss xml kita@utuntu% cat rss | head <?xml version="1.0" encoding="UTF-8"?> <rss version="2.0"> <channel> <title>Twitter public timeline</title> <link>http://twitter.com/public_timeline</link> <description>Twitter updates from everyone!</description> <language>en-us</language> <ttl>40</ttl> <item> <title>Ridzuan Ashim: finally...i get to sit down and try to consolidate my thoughts...i have 2 hours to re-organise life.</title>

そんだけ．

追記: 初FUSEだったんだけど，手軽にファイルシステム作れて楽しいなぁ． これもオレってばスゲー感が強い．

追記2: なんか色々追加したいことができてきた． 少なくともtweetの書き込みと，timelineの見易い表示くらいはできるようにしたい．

でも会社からだとtwitterがDatingカテゴリでURLフィルタに弾かれちゃうので，休み時間でもイジれないー．

追記3: あ，Ruby Twitter Gem使った方がカッコよかったかも?