2.0.1へアップグレード

投稿者 akira 2005-04-14 15:00:00 GMT

自分で手を入れた部分があったり個々に更新していたプラグインがあったりで2.0.0→2.0.1にするのがおっくうだったのだけど、いつまでも放っておくのもいかんのでアップグレードしてみた。以下、やったことのメモ:

  • calendar2を祝祭日対応にした。前にやったのそのまま。
  • bk2プラグインを追加した。
  • bk2プラグインとの相性なのかもしれないけど、amazon.co.jpにない書籍へのリンクを置くと例外が上がるようになったのでamazon.rbを以下のように変更した。
    --- ../tdiary-2.0.1.orig/misc/plugin/amazon.rb	2005-03-11 16:45:23.000000000 +0900
    +++ misc/plugin/amazon.rb	2005-04-14 20:52:37.000000000 +0900
    @@ -138,7 +138,11 @@
     		end
     		r << %Q[</a>]
     	rescue NameError, StandardError
    -		%Q[<a href="#{item[0].strip}/ref=nosim/">#{asin}</a>]
    +		if item.nil?
    +			asin
    +		else
    +			%Q[<a href="#{item[0].strip}/ref=nosim/">#{asin}</a>]
    +		end
     	end
     end
  • disp_referrerをtrunkのものにした。
  • disp_referrerに手を入れて一日表示のときにもアンテナや検索エンジンからのリンクを表示させないようにした。これも基本的に前にやったのそのままだが今回は設定できるようにしてみた。
    Index: disp_referrer.rb
    ===================================================================
    RCS file: /cvsroot/tdiary/plugin/disp_referrer.rb,v
    retrieving revision 1.51
    diff -u -r1.51 disp_referrer.rb
    --- disp_referrer.rb	3 Mar 2005 21:31:11 -0000	1.51
    +++ disp_referrer.rb	14 Apr 2005 15:46:14 -0000
    @@ -473,12 +473,16 @@
     			# 通常のリンク元のタイトルです。デフォルトでは、「本日のリンク元」です。
     		'antenna.label' => Disp_referrer2_antenna_label,
     			# アンテナのリンク元のタイトルです。
    +		'antenna.hide' => false,
    +			# trueの場合は表示しません
     		'unknown.label' => Disp_referrer2_unknown_label,
     			# その他のリンク元のタイトルです。
     		'unknown.hide' => false,
     			# trueの場合はリンク元置換リストにないURLは表示しません
     		'search.label' => Disp_referrer2_search_label,
     			# 検索エンジンからのリンク元のタイトルです。
    +		'search.hide' => false,
    +			# trueの場合は表示しません
     		'unknown.divide' => true,
     			# trueの場合、置換リストに無いURLを通常のリンク元と分けて表示します。
     			# falseの場合、置換リストに無いURLを通常のリンク元と混ぜて表示します。
    @@ -585,8 +589,12 @@
     				self['limit'][c] = @limit || 0
     			end
     		end
    -		if self['unknown.hide'] and not /\A(append|replace|edit)\Z/ =~ @mode then
    -			self['limit'][DispRef2URL::Unknown] = 0
    +		[['antenna.hide', DispRef2URL::Antenna],
    +				['search.hide', DispRef2URL::Search],
    +				['unknown.hide', DispRef2URL::Unknown]].each do |k, c|
    +			if self[k] and not /\A(append|replace|edit)\Z/ =~ @mode then
    +				self['limit'][c] = 0
    +			end
     		end
     		self
     	end
    @@ -1241,7 +1249,7 @@
     		%w( antenna.group antenna.ignore_parenthesis antenna.search.expand
     			normal.categorize normal.group normal.ignore_parenthesis
     			search.expand long.only_normal short.only_normal no_cache unknown.divide
    -			unknown.hide
    +			antenna.hide search.hide unknown.hide
     		).each do |key|
     			tdiarykey = 'disp_referrer2.' + key
     			case @cgi.params['dr2.' + key][0]
    Index: ja/disp_referrer.rb
    ===================================================================
    RCS file: /cvsroot/tdiary/plugin/ja/disp_referrer.rb,v
    retrieving revision 1.22
    diff -u -r1.22 disp_referrer.rb
    --- ja/disp_referrer.rb	22 Feb 2005 03:59:46 -0000	1.22
    +++ ja/disp_referrer.rb	14 Apr 2005 15:46:14 -0000
    @@ -255,6 +255,14 @@
     				<td><input name="dr2.unknown.divide" value="true" type="radio"#{' checked'if @setup['unknown.divide']}>#{@setup['unknown.label']}として分ける
     				<td><input name="dr2.unknown.divide" value="false" type="radio"#{' checked'if not @setup['unknown.divide']}>通常のリンク元と混ぜる。
     			<tr>
    +				<td>#{@setup['antenna.label']}を
    +				<td><input name="dr2.antenna.hide" value="false" type="radio"#{' checked'if not @setup['antenna.hide']}>表示する
    +				<td><input name="dr2.antenna.hide" value="true" type="radio"#{' checked'if @setup['antenna.hide']}>隠す。
    +			<tr>
    +				<td>#{@setup['search.label']}を
    +				<td><input name="dr2.search.hide" value="false" type="radio"#{' checked'if not @setup['search.hide']}>表示する
    +				<td><input name="dr2.search.hide" value="true" type="radio"#{' checked'if @setup['search.hide']}>隠す。
    +			<tr>
     				<td>#{@setup['unknown.label']}を
     				<td><input name="dr2.unknown.hide" value="false" type="radio"#{' checked'if not @setup['unknown.hide']}>表示する
     				<td><input name="dr2.unknown.hide" value="true" type="radio"#{' checked'if @setup['unknown.hide']}>隠す。
    
  • 自作プラグインなど使用中の小物プラグインを追加した。
  • ツッコミメールにIPアドレスと表示・非表示の状態を入れるようにした。こんな感じ:
    --- ../tdiary-2.0.1.orig/skel/mail.rtxt	2004-05-20 23:24:26.000000000 +0900
    +++ skel/mail.rtxt	2005-04-15 00:34:54.298351074 +0900
    @@ -14,3 +14,5 @@
     <%= body %>
     --
     <%= @conf.index =~ %r|^https?://|i ? '': @conf.base_url %><%= @conf.index.sub(%r|^\./|, '') %><%= anchor(@date.strftime('%Y%m%d') + ('#c%02d' % serial)) %>
    +IP: <%= ENV['REMOTE_ADDR'] %>
    +VISIBLE: <%= @comment.visible? ? 'yes' : 'no' %>
  • tdiary/defaultio.rbのロックまわりの修正を加えた。内容はtdiary-develで報告された通りで、コードはRelease_2_0_1→HEADの差分を参考にした。
  • tdiary/filter/spam.rbを書いた。

追記: 「ロックまわりの修正」については細かく分けてロックをかけるほう(メールの後半のほう)を適用したのだけど、スレッド対応MPMを使っている環境だとどうもうまくないような感じがする。ちゃんと調べてないけどもしかするとデッドロックぎみになってしまうことがあるのかも? ということで、例外が上がってもロックが解除されるようにだけすることにした。

トラックバック

トラックバックリンク:
http://arika.org/diary/trackbacks?article_id=1431