カテゴリ:[script]
ハッシュタグクラウドが出力するcsvを、Wiki(YukiWiki,WalWiki,Hiki)記法のテーブルに変換するスクリプトです。
ハッシュタグ、取得年月日を指定する。Wiki記法へコンバートする。
require 'csv' require 'net/http' require 'uri' class HashtagCloudCsvApi TWITTERID_CELL = 0 TWEET_CELL = 1 STATUS_CELL = 2 TIME_CELL = 3 ICON_CELL =4 def initialize(hashtag,yyyy=nil,mm=nil,dd=nil) @hashtag = hashtag if(mm==nil) then @readcsv = yyyy elsif(yyyy!=nil && mm!=nil && dd!=nil) then ymd = yyyy+"-"+mm+"-"+dd url = "http://hashtagcloud.net/output-file/type=csv&name="+hashtag+"&start_date="+ymd+"/"+hashtag+"_"+ymd+".csv.txt" @readcsv = hashtag+yyyy+mm+dd+".csv" open(@readcsv,'wb') do |file| file.puts Net::HTTP.get_response(URI.parse(url)).body end end end def convertWiki(wikitype,writecsv=nil) setWriteCsv(writecsv) if(wikitype == "WalWiki") then convertWalWiki elsif(wikitype == "Hiki") then convertHikiOnFSWiki elsif(wikitype == "YukiWiki")then convertYukiWiki end end private def setWriteCsv(writecsv) if(writecsv==nil)then @writecsv = @hashtag+".csv" else @writecsv = writecsv end end def convertYukiWiki CSV.open(@writecsv,'w'){ |writer| CSV.open(@readcsv,'r'){ |row| twitteridurl="http://twitter.com/"+row[TWITTERID_CELL] cell_icon = "&link("+row[TWITTERID_CELL]+","+twitteridurl+")" cell_time = "&link("+row[TIME_CELL]+","+row[STATUS_CELL]+")" cell_tweet =row[TWEET_CELL] writer << [nil,cell_icon,cell_tweet,cell_time] } } end def convertWalWiki CSV.open(@writecsv,'w'){ |writer| CSV.open(@readcsv,'r'){ |row| twitteridurl="http://twitter.com/"+row[TWITTERID_CELL] cell_icon = "[["+row[ICON_CELL]+" "+twitteridurl+"]]" cell_time = "[["+row[TIME_CELL]+" "+row[STATUS_CELL]+"]]" cell_tweet =""""+row[TWEET_CELL]+"""" writer << [nil,cell_icon,cell_tweet,cell_time] } } end def convertHikiOnFSWiki CSV.open(@writecsv,'w','||'){ |writer| writer << [nil,"icon","tweet","datetime"] CSV.open(@readcsv,'r'){ |row| twitteridurl="http://twitter.com/"+row[TWITTERID_CELL] cell_icon = row[ICON_CELL] cell_time = "[["+row[TIME_CELL]+"|"+row[STATUS_CELL]+"]]" cell_tweet =""""+row[TWEET_CELL]+"""" writer << [nil,cell_icon,cell_tweet,cell_time] } } end end # ハッシュタグ,年,月,日 csv = HashtagCloudCsvApi.new("dbsj_soc","2010","06","30") # Wiki記法タイプ(WalWiki,Hiki,YukiWiki),出力ファイル名(省略可) csv.convertWiki("YukiWiki")