SVX日記
2012-07-05(Thu) ボルサリーノに憧れて……100円
2012-07-07(Sat) tDiary用簡易CAPTCHA
・/usr/local/share/tdiary/misc/filter/tcaptcha.rb
# -*- coding: utf-8; -*-
require 'digest/md5'
module TDiary
module Filter
class TcaptchaFilter < Filter
def comment_filter( diary, comment )
common_key = 'abc' # 任意の文字列(プラグイン側と合わせる)
rw = @cgi.params['tcaptcha'].dup
dm = Digest::MD5.hexdigest((rw << common_key).sort.join(':'))
$stdout.sync = 1
if(result = (@cgi.params['tcaptcha_digest'][0] == dm))
# =begin # 強引なメッセージの出し方をするので、クッキーを食わせられなくなる
print "Content-Type: text/html\n\n"
print "<HTML><HEAD><META http-equiv='Content-Type' content='text/html; charset=UTF-8'></HEAD><BODY>\n"
print "<H1>Thank you for your comment</H1>\n"
print "<P>コメントありがとうございました。</P>\n"
sleep 5
# =end
else
print "Status: 406 Not Acceptable\n"
print "Content-Type: text/html\n\n"
print "<HTML><HEAD><META http-equiv='Content-Type' content='text/html; charset=UTF-8'></HEAD><BODY>\n"
print "<H1>Tiny CAPTCHA challenge failed</H1>\n"
print "<P>Tiny CAPTCHA 認証に失敗しました。</P>\n"
print "<FONT color='white'><!--\n" # 以降を強引に不可視にしようとする努力
sleep 5
raise 'Tiny CAPTCHA challenge failed'
end
comment.show = false # 要査閲にするなら
result
end
end
end
end
__END__
・/usr/local/share/tdiary/misc/plugin/tcaptcha.rb
# -*- coding: utf-8; -*-
require 'digest/md5'
def comment_body_label
common_key = 'abc' # 任意の文字列(フィルタ側と合わせる)
q = @options['tcaptcha.question'] ||= '質問: 鳥の鳴き声'
r = @options['tcaptcha.rights'] ||= ['チュンチュン', 'コケコッコ', 'ピヨピヨ', 'カァー', 'ホーホケキョ', 'ガァガァ']
w = @options['tcaptcha.wrongs'] ||= ['ワン', 'ニャー', 'ブゥブゥ', 'ヒヒーン', 'パォーン', 'ガォー']
rs = r.shuffle
rw = ([rs.shift] + (rs + w).shuffle[0, 5]).shuffle
dm = Digest::MD5.hexdigest(((r & rw) << common_key).sort.join(':'))
h = ''; id = 0; rw.each {|i|
h << "\t\t\t\t\t<INPUT type='checkbox' id='tc%d' name='tcaptcha' value='%s'><LABEL for='tc%d'>%s</LABEL>\n" % [id += 1, i, id, i]
}
h << "\t\t\t\t\t<INPUT type='hidden' name='tcaptcha_digest' value='%s'>\n" % dm
tcaptcha = <<-FORM
#{q}
#{h} </div>
<div class="textarea">
コメント
FORM
tcaptcha.chomp
end
def comment_body_label_short
'本文' # 未対応
end
__END__
どうも再訪問のカウントは、基本クッキーを使って回避しているらしいのだが、調べるとブラウザまでクッキーが届いていない。仕方ないので、counterプラグインのみならず、tDiary本体にもデバッグ行を入れまくり、動作をトレースする。すると、なんだかコメントスパム等に対するフィルタ処理の関係で、各プラグインが2回ずつ呼ばれるようになってしまっている。counterプラグインは関数定義だけでなく、ロードされただけで実行される処理を持っており、2回連続で呼ばれると副作用でクッキーを吐かなくなってしまうようだ。
www.itline.jp /usr/local/share/tdiary/misc/plugin # diff -U 4 counter.rb.org counter.rb
--- counter.rb.org 2012-04-29 20:27:26.000000000 +0900
+++ counter.rb 2012-07-08 02:44:54.290040583 +0900
@@ -476,16 +503,19 @@
def kiriban_today?
TDiaryCounter.kiriban_today?
end
+if($q_meet_again_q)
tdiary_counter_cookie = TDiaryCounter.run(@cache_path, @cgi, @options)
if tdiary_counter_cookie
if defined?(add_cookie)
add_cookie(tdiary_counter_cookie)
else
@cookie = tdiary_counter_cookie if tdiary_counter_cookie
end
end
+end
+$q_meet_again_q = true
def kiriban
if kiriban?
msg = @options["counter.kiriban_msg"] ? @options["counter.kiriban_msg"] : ""
2012-07-15(Sun) レース&レース
まったり向かいつつ、9〜12レースに300円ずつ。9と12で単勝をまぐれ当たり。払戻が580円と390円で、あっさりと1710円のプラス。それにしても12レース、先行逃げ切り6馬身差って……賭け事の厳しさを教えるつもりだったのだがな……。
帰宅して、ここ最近、思い出したようにグランツーリスモ3に取り組むイッペイ。自分はF1マシンに乗っているとはいえ、プロフェッショナルリーグ、グランツーリスモ・ワールド・チャンピオンシップ、コートダジュール(モナコ)で、15周。1回のピットインを挟みつつ、土壇場で787Bをブチ抜いて優勝。見事に350万とモナコマイスターの座をゲット。
2012-07-20(Fri) ふたたび映画を見る
先日に引き続き、ベルセルクを観てきた。
前回の方が印象に残ったシーンは多かったような気もするが、順当によかった。これは、大画面で観る価値があるといえる。しかし、やっぱり、動きが素晴らしくダイナミックなだけに、24FPSなのが物足りなく感じてならない。一般的な4倍速回路とか噛ませてみたらどうなんだろうかな。ところで、グリフィスが捕らわれて以降って、「蝕」までに、なんか特別なイベントってあったっけ? なんだかIIIの内容が心配だ。
しかし、一週間ずらして前後編を上映っていうスケジュールに見えるんだが、どういうことなんだろう。二週間のみ上映なのか? やるなら一度にやって欲しいんだが。つーか、TV版で十分に完璧すぎて、あれ以上、何を引いても、何を足しても、不満に思えるような。でも、新作カットなしなら、観に行く必要を感じないしな。つーか、前後編の後の完全新作って、いったい何をやるつもりなんだ……まさか、ほむらでエンドレスエイトをやるんじゃねーだろーな。
話は変わるが、先日、実写版「あしたのジョー」を借りた。なんだか、DVDがリッピング対策をしてあるらしく、チャプターがシャッフルされたような状況で観た。そんなに、ピーコされるのがイヤですかね。まぁ、もうすぐリッピングも正式に違法になるらしいんで、どうでもいいんですけどね。
ついでにもうひとつ。ずっと忘れていたが、放送中は一応リアルタイムに観ていた「ガンダムOO」の映画版を借りた。テレビ版は、ひととおりは飽きずに全話を観たが、その程度。で、映画版は「未知の宇宙生物との対話」がテーマということは、なんとなく聞いていたが。
「未知の宇宙生物との対話」っていう点で、エラく期待した。というのも、普通に表現すれば、エラく月並みな内容で終わってしまうハズなので、間違いなくそれだけは裏切ってくるだろうと。でも、どうやって裏切ってくるのか、まったく想像もつかない。だから、期待した。で、観た。結果、1ミリも裏切ってこなかった。クソが付くほど月並みな内容。母星を失ったってテレパシーで会話。見事なでに新規性ゼロ。大人向けらしいが、ガンダムがウジャウジャにバンバン撃ってるだけで、戦闘シーンの駆け引きすらなく、まったく観るべきものがない。観て損した。バカにすんなボケ。
話は戻るが、今回のベルセルクのラスト近く、ガッツが鷹の団をやめて出て行く時に背負っていたのは、やっぱり「ズタ袋」でした。孤高のヒーローは絶対にズタ袋なんだよな。つーか、この映画を観た今日も自作のズタ袋を持ってたんで、なんか映画の帰りに「おいおい、ガッツ気取りがおるぞ」と思われそうで、ちょっと気恥ずかしかった。
といいつつ、ちゃっかりオークションに出ているズタ袋を宣伝しておく。大方は売れて、残りわずかですんで。
■ フルタニアン(管理者) [名状しがたい書き込みテストのようなもの]
■ フルタニアン(管理者) [あしたのために(その1)えぐりこむように書き込みテスト]
■ フルタニアン(管理者) [ふるえるぞハート! 燃えつきるほど書き込みテスト!!]
■ 横須賀のアランプロスト [司会のジル・ベッソンです。 エクセレント!!]
■ フルタニアン(管理者) [大喜利じゃねーっつーの!! ……では本日の笑点このへんでおひらきで……]