もごもごRSS作成スクリプト

うん。タイトルで全部言った。

とは言うものの、実は最新のコメントしか手に入れられない。
もう少し頑張れば

  • みんなのひろばのRSS
  • 自分のコメント最新数件のRSS

ぐらいはできるかも。
自分は要らないから作らないけど。


せっかく作ったのでrubyが動くサーバーから、RSSとってきて、
←のサイドバーの、「極近況報告(by もごもご)」に追加。


コードはこんな感じ。

#!/usr/bin/ruby -Ku

require 'open-uri'

userNum = '99' #ユーザー番号(僕の場合は99)

res = String.new
open('http://mogo2.jp/member/show/'+userNum){ | f |
	res = f.read
}

recent = res.match(%r!<div class="mog_recentcomment">((.|\n)+?)<\/div>!)
recent = recent.to_a[1].gsub(%r!<a href="(.+?)">!, "<a href=\"http://mogo2.jp\\1\">")
recent = recent.match(%r!<h2><b>((.|\n)+?)</b></h2>!).to_a[1]

rss = '<?xml version="1.0" encoding="UTF-8"?>'+"\n"
rss += '<rss version="2.0">'
rss += ' <channel>'
rss += res.match(%r!<title>((.|\n)+?)</title>!).to_a[0]
rss += '  <link>http://mogo2.jp/member/show/'+userNum+'</link>'
rss += '  <description>' + $1 + '</description>'
rss += '  <langage>ja</langage>'
rss += '  <item>'
rss += '   <title>' + recent + '</title>'
rss += '   <descrption>' + recent + '</description>'
rss += '  </item>'
rss += ' </channel>'
rss += '</rss>'

print "Content-type: text/html\n\n"
print rss

ご自由に使用ください。
ただし、

userNum = '99' 

のところ書き換えてくださいね。


僕の環境にrss/makerモジュールが無いために、このようなコードに。
ブックマークレット作りすぎると何でも一行で収めようとしてしまう癖が付く。何度書き直したことか。
癖といえば、実行速度ケチって「''」で文字列作る癖直さないと、上のrss代入一発目のように「+"\n"」なんてモノを付ける羽目になるんだ。


はてなでこういったコードを表示するのが好き。
シンタックスハイライトって綺麗じゃないですか?