2008-10-17
_ [LAN/NAS]
あとはリンク元からLive Searchを消す方法だ。
フィルタリングする条件はIPなので、それに見合うプラグインを探した結果、以下のフィルタ発見。
http://elpeo.jp/diary/20041013.html
このままではちょっと使いにくいので少々改造した。これでまた様子見。
あと、@options["counter.deny_remote_addrs"]はマスターのtdiary.confに書く必要があった。
ユーザのtdiary.confに書いた場合、tdiaryの設定を変更すると消えてしまう。
リンク元に日本語が入ると化けるのでそれも直した。
disp_referrer.rbのunescapeで、kconvをrequireして最後にtoeucする。
_ [LAN/NAS]
一応ちゃんと動いてるっぽい。Live Search除け完成。
tdiary/misc/plugin/ja/disp_referrer.rb
'live' => [
[%r{\Ahttp://search\.live\.com/results\.aspx}i, '".#{$1}のLive Search"', ['q'], nil],
[%r{\Ahttp://search\.live\.com/images/results\.aspx}i, '".#{$1}のLive Search(画像)"', ['q'], nil],
[%r{\Ahttp://search\.live\.com/news/results\.aspx}i, '".#{$1}のLive Search(ニュース)"', ['q'], nil],
],
tdiary/tdiary.conf
@options["counter.deny_remote_addrs"] = ["65\\.55\\.109\\.\\d+", "65\\.55\\.110\\.\\d+"]
@options["spam.black_ip"] = @options["counter.deny_remote_addrs"]
tdiary/tdiary/filter/spam.rb
#
# spam.rb: included TDiary::Filter::SpamFilter class
#
module TDiary
module Filter
class SpamFilter < Filter
def black_ip?( address )
@options = @conf.options
if @options["spam.black_ip"]
black_ip = Regexp.new("(tlink|#{@options["spam.black_ip"].uniq.join('|')})", true)
return true if black_ip =~ address
end
false
end
def comment_filter( diary, comment )
!black_ip?( @cgi.remote_addr )
end
def referer_filter( referer )
!black_ip?( @cgi.remote_addr )
end
end
end
end