読者です 読者をやめる 読者になる 読者になる

はてダラのテキストを検索する

Ruby

恐らくこのブログを一番検索しているのはid:syou6162なんだけど、毎回http://d.hatena.ne.jp/syou6162から検索するのは面倒すぎる。日記ははてダラで書いているので、テキストはローカルにある。じゃあ、grepで探せよ、という話なんだけど、htmlで表示してくれると見やすいので、webのほうで今まで検索していた。

が、この辺で、はてダラのtxtをhtmlにコンバートするのを作っていたので、これを使うことにした。

hds

  • hatena diary searchっぽい意味で
#!/usr/bin/env ruby
keyword = ARGV.pop
hatena_dir =  File.expand_path("~") + "/hatena/syou6162/diary/"
system "grep #{ARGV.join(" ")} \"#{keyword}\" #{hatena_dir + "*.txt"}"
使い方

最近の10件を検索。grepのオプションもそのまま投げているので、簡単。

/Users/syou6162/bin% hds "\[Ruby\]" | tail -n 10
/Users/syou6162/hatena/syou6162/diary/2009-05-09.txt:*1241876089*[Ruby]トポロジカル順序付け
/Users/syou6162/hatena/syou6162/diary/2009-05-10.txt:*1241898678*[Ruby]ダイクストラ法による最短路検索
/Users/syou6162/hatena/syou6162/diary/2009-05-11.txt:*1242041672*[Ruby][自然言語処理][NLP]猫はうろうろ
/Users/syou6162/hatena/syou6162/diary/2009-05-15.txt:*1242371711*[Ruby][NLP][自然言語処理]コスト最小法によるViterbiアルゴリズムを実装してみた
/Users/syou6162/hatena/syou6162/diary/2009-05-19.txt:*1242661982*[Ruby][アルゴリズムデザイン]系列アライメントのアルゴリズムをRubyで実装した
/Users/syou6162/hatena/syou6162/diary/2009-05-20.txt:*1242787803*[Ruby][自然言語処理]出現頻度と連接頻度に基づく専門用語抽出
/Users/syou6162/hatena/syou6162/diary/2009-05-20.txt:*1242795208*[Ruby]深いコピー?
/Users/syou6162/hatena/syou6162/diary/2009-05-27.txt:*1243452261*[Ruby]トポロジカルソートのベンチマークらしきもの
/Users/syou6162/hatena/syou6162/diary/2009-06-01.txt:*1243865869*[Ruby][NLP][自然言語処理]指標を全部実装してみた
/Users/syou6162/hatena/syou6162/diary/2009-06-11.txt:*1244731367*[Ruby]はてダラのテキストを検索する

ho

  • hatena openっぽい意味で
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
require "optparse"

@options = {
  :hatena  => nil, #はてなで開く
}

opts = OptionParser.new

opts.on("--hatena"){|boolean| 
  @options[:hatena] = boolean
}

opts.parse!(ARGV)

if @options[:hatena]
  system "open http://d.hatena.ne.jp/syou6162/#{ARGV[0]}"
else
  year = ARGV[0][0..3]
  month = ARGV[0][4..5]
  day = ARGV[0][6..7]
  system "ruby ~/bin/convert_from_hatena_to_html.rb -i ~/hatena/syou6162/diary/#{year}-#{month}-#{day}.txt -o /tmp/#{ARGV[0]}.html"
  system "open /tmp/#{ARGV[0]}.html"
end
使い方
/Users/syou6162/bin% ho --hatena 20090105   

こんな感じでやると、その日のをはてなダイアリーでopenしてくれる。

/Users/syou6162/bin% ho 20090105   

これだと変換して、ローカルのhtmlで見れる。オフラインとかで便利そう。