mike、mikeなるままに…

プログラムに関してぬるま湯のような記事を書きます

Blogの更新pingを送れるようにrakeのタスクを書いてみた

こんにちわ、みけです。

お金がないので、ブログを読んでもらって、

google adsenseをみんなに押してもらわないと、

死んでしまいます。

さて、そんなことはどうでもよくて、

bloggerでブログをやっていたときは、

googleさんが勝手に検索エンジンに乗せてくれるので、

検索しやすかったのですが、

githubでブログを書くようになって、

検索で出にくくなっていたので、

更新pingをrakeで送りつけるようにしました。

まあ、「更新ping ruby」でググった結果をrakeのタスクにしただけですが…

で、追加したのがこんな感じのタスクです。

rakefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
require "yaml"
require "xmlrpc/client"

#-- sending ping --#
desc "Sedning ping to Web Search Engines"
task :ping do
  site_config = YAML.load(IO.read('_config.yml'))
  blog_title = site_config['title']
  blog_url = site_config['url']
  ping_url = YAML.load(IO.read('ping.yml'))
  ping_url.each do |url|
    ping = XMLRPC::Client.new2(url)
    begin
      result = ping.call('weblogUpdates.ping', blog_title, blog_url)
      puts "#{url} : #{result}"
    rescue => e
      puts "#{url} : #{e}"
    end
  end
end

この新たに追加したタスクを後は、gen_deployタスクに追加します。

rakefile
1
2
3
desc "Generate website and deploy"
task :gen_deploy => [:integrate, :generate, :deploy, :ping] do
end

あと、適当にping.ymlに更新pingを送りつけるサイトを記述すればおkです。

ping.yml
1
2
3
4
5
6
7
8
9
10
- http://blogsearch.google.com/ping/RPC2
- http://api.my.yahoo.co.jp/RPC2
- http://blog.goo.ne.jp/XMLRPC
- http://ping.bloggers.jp/rpc/
- http://ping.rss.drecom.jp/
- http://ping.fc2.com/
- http://rpc.weblogs.com/RPC2
- http://rpc.reader.livedoor.com/ping
- http://ping.blogranking.net/
- http://www.blogpeople.net/ping/