だめねこ飼育日誌 By suteneko
リネ2関連で検索して来たかたはこっちのwikiのほうがいいかも // プロフィール


2004-02-02 (Mon)

[雑記] ぷよぷよ [17:31]

某所より

これ

…しゅごい…

(IE で Script on でどうぞ。Mozilla Firebird だと画面がちらつきました)

[tDiary] tDiary更新 [18:36]

昨日システムにパッチあてて、いろいろ新しいものに入れ替えたら、日記の更新ができなくなっちゃいました。こんなエラーが出るんです。

undefined method `to_euc' for "":CGI::QueryExtension::Value (NoMethodError)

/home/frea/public_html/diary/tdiary.rb:639:in `initialize'
/home/frea/public_html/diary/update.rb:20:in `new'
/home/frea/public_html/diary/update.rb:20

古い tDiary を使ってるのが原因と思わたので、あわてて入れ替え。何とか回復したみたい。

まだいろいろいじってる最中なんで、うまく見れない可能性があります。

エラーになってもそれは一時的なものなので(だと信じたい)、懲りずにまた来てくださいねっ☆

[tDiary] たぶんこれで [19:33]

いぢるのは完了です。たぶん…… ← 自信ない

[tDiary] ちゅーわけで、まとめ [22:19]

システムを update した時に、ruby なのか、どっかのモジュールなのか、そのへんが update されたのが原因っぽいです。ruby1.8 は tDiary 1.5 (開発版) でしかサポートされていないのに、無理矢理使ったのも原因かも(汗

というわけで、ver. 1.4.3 (← 古っ。最初に入れたときのまんまでした) から、1.5.6 (開発版の最新 stable) にアップグレードです。

あなうんす。更新チェック用にlirsが取れるようになりました。アンテナ運営者は、こちらに変更してください。

これに伴い、以前のタイトル一覧 (タイトル+コメント数のみ とか タイトルのみ のリスト) は廃止になってます。

以下は自分用の(次回upgrade時に使うつもりの)メモですが、使いたい人がいたら勝手に持ってってちょーだいな。

★1.4.3 で使っていたデータをコピー。

保存形式が、昔の形式 (バイナリ) と今の形式 (テキスト) で変わってるので、ここのページを参考に misc/convert2.rb を使ってデータを変換しました。

昔やってみたときはリンク元なんかが移行されなくて「だめだこりゃ」と思った覚えがあるんですが、今回は何の問題もなく成功。

# mkdir data

# cp -Rp old_data/* data/

# chown -R frea:punimoe data/ ← 怖いので一旦自分のアカウントに変更

# suspend ← su を一時中断

$ ./misc/convert2.rb

$ % ← su を再開

# chown -R www:www data/

ここで index.rb を見ると、style が見つからなくて白い画面であるものの、何とか表示されてる。

★style ファイルをコピー

theme/freadiary ディレクトリを作り、昔つかってた freadiary.css をコピーした。

$ mkdir theme/freadiary

$ cp ../diary_old/theme/freadiary.css theme/freadiary/

以前と見栄えが結構ちがう。生成される HTML を見ると、どうも CSS の class が変わっている模様。一生懸命ソースを見ながら修正。

あとで気づいたんですが、misc/theme/convert/theme_convert.rb というのがありました ^^; 無駄骨だったみたい ^^;;;

★昔の日記で改造してたところを、新しい tDiary に apply する

★tdiary.rb

日記追加時に時間が入るように class TDiaryAppend を改造。こんな感じ。

ホントは plugin でやるべきなんだろうけれど、手抜きです。

*** tdiary.rb.orig Mon Feb 2 18:31:39 2004

--- tdiary.rb Mon Feb 2 18:34:21 2004

***************

*** 1097,1102 ****

--- 1097,1110 ----

end

@author = @conf.multi_user ? @cgi.remote_user : nil


+ updatetime = Time::now

+ updatetimestr = updatetime.strftime(" \[%H:%M\]")

+ bodylines = @body.split(/\n/)

+ if bodylines.size > 0 then

+ bodylines[0] += updatetimestr

+ end

+ @body = bodylines.join("\n")

+

@io.transaction( @date ) do |diaries|

@diaries = diaries

@diary = self[@date] || @io.diary_factory( @date, @title, '', @conf.style )

★misc/plugin/recent_list.rb

この日記では右側に表示されてる部分。コメント数を入れたかったので追加です。

昔のバージョンで extra_erb という引数があったのが、無くなってました。

気持ち悪いけど、'obsolete' と指定してください、という糞仕様にします。えーん

*** recent_list.rb.orig Mon Feb 2 17:55:54 2004

--- recent_list.rb Mon Feb 2 18:04:23 2004

***************

*** 6,11 ****

--- 6,16 ----

# title_with_body: trueで各パラグラフへのリンクのtitle属性にそのパラグラフの一部を指定(false)

# show_size: trueで日記長を表示(false)

# show_title: trueで各日のタイトルを表示(false)

+ # extra_erb: タイトルリスト生成後さらにERbを通すか

+ # (obsolete. 引数の数の調整のためだけの要素。

+ # 後の show_comment_num を使うなら、ここには

+ # obsolete と指定すべし) [added by suteneko]

+ # show_comment_num ツッコミ数を表示(false) [added by suteneko]

#

# 注意: セキュアモードでは使えません。

# 備考: タイトルリストを日記に埋め込むは、レイアウトを工夫しなければ

***************

*** 40,46 ****

end

MODIFY_CLASS


! def recent_list(days = 30, date_format = nil, title_with_body = nil, show_size = nil, show_title = nil, extra_erb = 'obsolete')

days = days.to_i

date_format ||= @date_format


--- 45,51 ----

end

MODIFY_CLASS


! def recent_list(days = 30, date_format = nil, title_with_body = nil, show_size = nil, show_title = nil, extra_erb = 'obsolete', show_comment_num = nil)

days = days.to_i

date_format ||= @date_format


***************

*** 94,99 ****

--- 99,107 ----

end

i += 1

end

+ end

+ if show_comment_num == true

+ result << %Q| (#{m.diaries[date].count_comments} comments)<br>\n|

end

result << "</div>\n"

days -= 1

そしてfooterにこんな感じで指定。

<%=recent_list 4,nil,nil,nil,nil,'obsolete',true%>

…まぢで気持ち悪い指定のしかただ。えぐっ

★misc/plugin/speed_comment.rb.orig

email を付けたかったので、改造。

*** speed_comment.rb.orig Mon Feb 2 17:36:06 2004

--- speed_comment.rb Mon Feb 2 19:03:58 2004

***************

*** 21,32 ****

add_body_leave_proc do |date|

if /latest|month/ =~ @mode and not @cgi.mobile_agent? then

@conf['speed_comment.name_size'] = 20 unless @conf['speed_comment.name_size']

@conf['speed_comment.body_size'] = 40 unless @conf['speed_comment.body_size']

r = ""

r << %Q[<div class="form"><form method="post" action="] + @index + %Q["><p>]

r << %Q[<input type="hidden" name="date" value="] + date.strftime( '%Y%m%d' ) + %Q[">]

- r << %Q[<input type="hidden" name="mail" value="">]

r << comment_name_label + %Q[: <input class="field" name="name" size="#{@conf['speed_comment.name_size']}" value="#{@cgi.cookies['tdiary'][0]}">]

r << comment_body_label + %Q[: <input class="field" name="body" size="#{@conf['speed_comment.body_size']}">]

r << %Q[<input type="submit" name="comment" value="] + comment_submit_label + %Q[">]

r << %Q[</p></form></div>]

--- 21,37 ----

add_body_leave_proc do |date|

if /latest|month/ =~ @mode and not @cgi.mobile_agent? then

@conf['speed_comment.name_size'] = 20 unless @conf['speed_comment.name_size']

+ @conf['speed_comment.mail_size'] = 0 unless @conf['speed_comment.mail_size']

@conf['speed_comment.body_size'] = 40 unless @conf['speed_comment.body_size']

r = ""

r << %Q[<div class="form"><form method="post" action="] + @index + %Q["><p>]

r << %Q[<input type="hidden" name="date" value="] + date.strftime( '%Y%m%d' ) + %Q[">]

r << comment_name_label + %Q[: <input class="field" name="name" size="#{@conf['speed_comment.name_size']}" value="#{@cgi.cookies['tdiary'][0]}">]

+ if @conf['speed_comment.mail_size'] == 0

+ r << %Q[<input type="hidden" name="mail" value="">]

+ else

+ r << comment_mail_label + %Q[: <input class="field" name="mail" size="#{@conf['speed_comment.mail_size']}" value="">]

+ end

r << comment_body_label + %Q[: <input class="field" name="body" size="#{@conf['speed_comment.body_size']}">]

r << %Q[<input type="submit" name="comment" value="] + comment_submit_label + %Q[">]

r << %Q[</p></form></div>]

***************

*** 44,49 ****

--- 49,55 ----

<<-HTML

<h3>簡易ツッコミフォームのサイズ</h3>

<p>名前欄: <input name="speed_comment.name_size" size="5" value="#{@conf['speed_comment.name_size'] || 20}"></p>

+ <p>メール欄: <input name="speed_comment.mail_size" size="5" value="#{@conf['speed_comment.mail_size'] || 0}">(0なら非表示)</p>

<p>本文欄: <input name="speed_comment.body_size" size="5" value="#{@conf['speed_comment.body_size'] || 40}"></p>

HTML

end

***************

*** 53,58 ****

--- 59,66 ----

if @mode == 'saveconf' then

@conf['speed_comment.name_size'] = @cgi.params['speed_comment.name_size'][0].to_i

@conf['speed_comment.name_size'] = 20 if @conf['speed_comment.name_size'] < 1

+ @conf['speed_comment.mail_size'] = @cgi.params['speed_comment.mail_size'][0].to_i

+ @conf['speed_comment.mail_size'] = 0 if @conf['speed_comment.mail_size'] < 1

@conf['speed_comment.body_size'] = @cgi.params['speed_comment.body_size'][0].to_i

@conf['speed_comment.body_size'] = 40 if @conf['speed_comment.body_size'] < 1

end

★plugin/00default.rb

「設定」とかのボタンを出すための条件 (if文) を変更。

「unless @mode == 'latest'」となっている部分を削除したのがほとんど。

次回改造時に特に問題になりそうもないのでdiffは略。

★plugin/ja/00default.rb

メッセージの書き換えのみ。

「ツッコミを入れる」を「ツッコミを入れる/省略されたツッコミを見る」に書き換えただけ。

これもdiffは略。

★.htaccess

ほとんどのディレクトリはwebからみえる必要が無いので .htaccess を作成。

内容は1行「deny from all」だけ。

★plugin 設定

あーーっ、設定するときはドキュメント見れなかったのに、今は見れるようになってるっ。タイミング悪っ…

有効にしたのは以下

calendar2.rb

category.rb

comment_mail-smtp.rb

counter.rb

disp_referrer.rb

makelirs.rb

navi_user.rb

recent_list.rb

referer-utf8.rb

speed_comment.rb

whatsnew.rb

makelirs は、tDiary 自体のディレクトリに www で書き込み権限を出したくなかったので、

tdiary.conf で @options['makelirs.file'] = 'lirs/antenna.lirs' と指定してディレクトリを変更 ← これ、ドキュメントには載ってなくって、ソース見たらコメントで載ってた

random_google.rb は使ってみたけど重いので断念。このために chasen までインストールしたのに ^^;

いぢょ

本日のツッコミ