しょぼいカレンダーからデータを取得するGemを公開した
タグ: rubyanime / 初版公開: 2014-04-15

はじめに

しょぼいカレンダーからデータを取得するsyobocalというgemをリリースした。

インストール

もうRubyGemsに登録してあるので、そのまま使うことができる。

gem install syobocal

使い方

このgemはエンドポイントからのデータの取得、パースを行うもの。 データを取得してパースするのはgetメソッド一発で行える。

基本的な動作は同梱のsyobocalコマンドで確認することができる。 例えば以下は魔法少女まどか☆マギカのアニメ情報を取得する例。

$ syobocal DB::TitleLookup "{'TID' => '3216'}"
http://cal.syoboi.jp/db.php?Command=TitleLookup&TID=3216
Code: 200
Message: 
[{:tid=>3216,
  :last_update=>2013-12-01 11:58:29 +0900,
  :title=>"劇場版 魔法少女まどか☆マギカ",
  :short_title=>"劇場版 まどか☆マギカ",
  :title_yomi=>"げきじょうばんまほうしょうじょまどかまぎか",
  :title_en=>"PUELLA MAGI MADOKA MAGICA",
  :comment=>
   "*リンク\n-[[公式 http://www.madoka-magica.com/zenkouhen/]]\n-[[ニコニコチャンネル [前編] 始まりの物語 http://ch.nicovideo.jp/madoka-magica-movie1]]\n-[[ニコニコチャンネル [後編] 永遠の物語 http://ch.nicovideo.jp/madoka-magica-movie2]]\n*スタッフ\n:原作:Magica Quartet\n:総監督:新房昭之\n:脚本:虚淵玄(ニトロプラス)\n:キャラクター原案:蒼樹うめ\n:キャラクターデザイン:岸田隆宏、谷口淳一郎\n:監督:宮本幸裕\n:副監督:寺尾洋之\n:異空間設計:劇団イヌカレー\n:総作画監督:谷口淳一郎、山村洋貴\n:美術監督:内藤健\n:美術設定:大原盛仁\n:色彩設計:日比野仁、滝沢いづみ\n:編集:松原理恵\n:撮影監督:江藤慎一郎\n:ビジュアルエフェクト:酒井基\n:音響監督:\n:音楽:梶浦由記\n:アニメーション制作:SHAFT\n*オープニングテーマ「ルミナス」\n:作詞・作曲:渡辺翔\n:編曲:湯浅篤\n:歌:ClariS\n*エンディングテーマ1「Magia [quattro]」\n:作詞・作曲・編曲:梶浦由記\n:歌:Kalafina\n:使用話数:#1\n*エンディングテーマ2「ひかりふる」\n:作詞・作曲・編曲:梶浦由記\n:歌:Kalafina\n:使用話数:#2\n*キャスト\n:鹿目まどか:悠木碧\n:暁美ほむら:斎藤千和\n:美樹さやか:喜多村英梨\n:巴マミ:水橋かおり\n:佐倉杏子:野中藍\n:キュゥべえ:加藤英美里\n:志筑仁美:新谷良子\n:鹿目詢子:後藤邑子\n:鹿目知久:岩永哲哉\n:早乙女和子:岩男潤子\n:上条恭介:吉田聖子",
  :cat=>8,
  :title_flag=>0,
  :first_year=>2012,
  :first_month=>10,
  :first_end_year=>nil,
  :first_end_month=>nil,
  :first_ch=>nil,
  :keywords=>"まどか☆マギカ",
  :user_point=>75,
  :user_point_rank=>733,
  :sub_titles=>"*1*[前編] 始まりの物語\n*2*[後編] 永遠の物語"}]

これをソースコードとして書き下すと以下のようになる。 Syobocal::DB::TitleLookupモジュールがdb.phpTitleLookupのデータ取得を行うモジュールだ。 こいつにパラメータをハッシュで与えて、getするだけでしょぼいカレンダーのデータが再利用しやすい形で取れる。

require 'syobocal'
require 'pp'

param = {'TID' => 3216}
result = Syobocal::DB::TitleLookup.get(param)
puts result.code
puts result.message
pp result

これで究極的にはアニメ専用の録画サーバを構築したり、細々した所だとアニメの動画ファイルリネーム用のユーティリティを作ったり、データを大量に集めて統計的な処理か何かで独自の分析ったりすることもできるだろう。しょぼいカレンダーに蓄積されているデータは膨大なので工夫し放題だ。

サンプルとして、以前書いたanimeコマンドも同梱している。 これは首都圏で次の5時までに放送されるアニメの一覧を出力するコマンドだ。 コマンドラインから今日放送されるアニメを確認するのも粋である。

$ anime
これから放送されるアニメ@首都圏
 6:45 [NHK Eテレ] すすめ!キッチン戦隊クックルン / 雲の上のそら豆怪人
 7:15 [NHK Eテレ] はなかっぱ / くだらん、くだらん!/佐藤先生の休日
 7:30 [テレビ東京] ロボカーポリー(2014) / スクールビーのなやみごと
 8:00 [tvk] スマイルプリキュア! / 一致団結!文化祭でミラクルファッションショー!!
16:30 [TOKYO MX] ふたりはプリキュア Max Heart / おうちに帰して~!ポルンとルルンの大冒険
17:00 [チバテレビ] バトルスピリッツ 少年突破バシン / 対決・黒い騎士と女王を絶タイ絶メイに
18:00 [テレビ東京] ガイストクラッシャー / カミナリ恨み盛り!黒いガイストクラッシャー!!
18:30 [テレビ東京] ディスク・ウォーズ:アベンジャーズ / 復活!アイアンマン
18:30 [チバテレビ] るろうに剣心 -明治剣客浪漫譚- / 目醒める時は今・満身創痍の決着!
18:45 [NHK Eテレ] くつだる。 / ひもがカタムスビになっちゃうわけ
22:00 [TOKYO MX] スパルタンMX / 
23:30 [TOKYO MX] 鋼の錬金術師 / 疾走!機械鎧(オートメイル)
24:00 [TOKYO MX] 鋼の錬金術師 / 国家錬金術師資格試験
24:30 [TOKYO MX] ノーゲーム・ノーライフ / 挑戦者《チャレンジャー》
25:05 [TOKYO MX] 棺姫のチャイカ / 怠け者の選択
25:35 [TOKYO MX] 風雲維新ダイショーグン / 扇情の花街、妖狐のちはる!
26:55 [テレビ東京] 咲-Saki- / 対立
27:05 [TOKYO MX] アニメTV / 

このGemは難しくないが手間がかかる部分を吸収することに主眼を置いている。 自力で書ける人も多いと思うが、それなりに便利な形のデータを返すように作ったつもりだ。

というわけで、アニメ好きのRubyistにはぜひ活用してもらいたいと思う。