More Related Content
Similar to Web技術勉強会 第38回 (20)
Web技術勉強会 第38回
- 1. Web技術勉強会 第38回
2chから世相を占う
「rankforce」
rev.2
Ryuichi TANAKA.
Twitter:@mapserver2007
1
- 21. (Something class)#custom_select
例:
def custom_select(where, grep)
begin
ds = select.grep(:thread_date,
"#{grep}%").order(:thread_date)
ds = ds.filter({:board_id => where}) unless where.nil?
return ds
rescue => e DB#select
error(e)
end
end
(Something class)#custom_selectを呼び出すだけでselect処理が完了
するので、呼び出し元(Controller)で複雑なコードを書かずにすむ。
同様にcustom_xxxを実装すればある程度複雑な処理も簡単に呼び出せる。
21
- 26. XMLかCSV形式のデータを作成し、JavaScript経由で読み込ま
せる。また、FlashのAPIとしてJavaScript関数が使える。
<?xml version="1.0" encoding="UTF-8"?>
<chart>
<series>
<value xid="0">12:58</value>
<value xid="1">13:01</value>
<value xid="2">14:15</value>
</series>
<graphs>
<graph gid="1" title="ニュース速報+">
<value xid="0" bullet="round_outlined"
url="http://tsushima.2ch.net/test/read.cgi/newsplus/1265169486/" description="【小沢問題】 特捜部、民主・
<value xid="1" bullet="round_outlined"
小沢氏を「不起訴処分」する方針で検討…現状では「立証困難」★10">3054</value>
url="http://tsushima.2ch.net/test/read.cgi/newsplus/1265169665/" description="【トヨタ】新型プリウス、ブ
<value xid="2" bullet="round_outlined"
レーキ苦情が米で102件 日本でも 「横断歩道で止まれない」★3">3073</value>
url="http://tsushima.2ch.net/test/read.cgi/newsplus/1265174114/" description="【裁判】 女子高生レイプで服
役→19歳女性レイプで服役→鬼畜レイプ魔、今度は犬の散歩中の女性レイプ、首切り殺害→無期懲役求刑★
</graph>
2">3650</value>
</graphs>
</chart>
26
- 27. JavaScriptでグラフをコール
var so = new SWFObject("/graph/amline.swf", "amline", "900", "400", "8",
"#FFFFFF");
so.addVariable("path", "/graph/");
so.addVariable("settings_file",
encodeURIComponent("/graph/amline_settings.xml"));
so.addVariable("data_file",
encodeURIComponent("/xml/rankforce_xml_#{@board}_#{@date}.xml"), 0);
so.write("graph"); //div#id
27
- 31. -r [--register-threshold integer]
-i [--im-threshold integer]
取得するスレの勢いの閾値
-t [--tweet tweet-threshold
Im.kayac.comのIMを送信する閾値
integer]
取得したスレ情報をTwitterにPOSTする閾値
-b [--board String[,String,…]]
-d [--database]
取得する板名(カンマ区切りで複数可能)
-g [--graph]
取得したスレ情報をDBに格納するかどうか
取得したスレ情報をグラフ化するかどうか
設定例
ruby rankforce.rb –r 3000 –t 6000 –b newsplus –d -g
運用時はこれをcronで実行。
10分に1回収集が妥当
(TwitterAPIの70post/hに引っかからないようにする)
31
- 33. def describe
@board ||= ‘newsplus’ # default board
@date ||= Time.now.strftime(“%Y%m%d”)
calendar = RankForce::Calendar.new(@board, @date)
@calendar = calendar.generate
history = RankForce::History.new
@history = history.exec
haml :index
end
# main method
get ‘/’ do describe end
Webの実装は「Sinatra」。
画面が1つしかないのでRailsを使う必要はないため。
シンプルに作るにはSinatraがやはり向いている。
33
- 34. ・APサーバは「thin」
thin start –C config/server.yml -d
・個人的にRailsでもSinatraでもthinを利用中。
34
- 39. 結論
・グラフ表示することでニュースの重要度が一目瞭然
有名人逮捕
↓
グラフで確認
↓
(時間差で)キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
↓
祭り参加inトイレ
注:まだやったことはない
今後
・gem化したい
・自動ビルドするためにrakefileを作る
39
- 42. 広瀬香美 (@kohmi) NHKニュース (@nhk_rss)
なぜフォローしたし。フォロー数/被フォロー数
bot。書いていないが個人っぽい?
が凄まじすぎる。
菊池雄星 (@kikuchi_yusei) アルファモザイク (@alfamosaic)
高木美帆 (@takagi_miho) 痛いニュース (@itai_news)
いつも見てます。
浅田真央 (@mao_asada)
本人じゃ当然ありません。bot。
趣味botかと思いきや、どうやら会社が というか、どんどん増えてる。
運用しているbotらしい。 フォロー thx!!!!
42