ネタバレや腐臭発言が混じるらくがきメモ

2008年11月22日(土) nicky改造日記。日記内検索編

目標達成おめでとう〜
ボタンをリンクにできました。やったー
「nicky.cgi?SerchWord=○○」の後に「page=○○」みたいにして表示させるやり方が分からずしょんぼりしてたんですが、きみはじつにばかだな!分からないなら検索ワードの中に入れてしまえばいいじゃない!こんなにむやみにコマンド作りながらそれに気づかないなんて…
あと検索結果をカテゴリ的に使用するという目的の一環として、検索ワードと一緒に「d」と入れると「『○○』を含む記事何件…」というのが表示されない、というコマンド追加。検索結果っぽくない画面になるのでカテゴリ表示に使えるかなと。まあ使わないと思うんですが、やろうと思えばできるってだけでちょっと心が豊かになる気がするじゃないですか。へへへ…これで追加機能は11個だ…(そんなことしてなんになる!?)

結局sub NickySerchあたりはこんなことになりましたよ→
長すぎわらた。いつのまにこんなことになってしまったんだ…。もうほんとやめようこういうことは

5/23 tコマンドの検索が変だったのを直したのとiMode版についての追記とか。
ご指摘ありがとうございました!

2008年11月21日(金) 日記内検索日記

こんなの毎日書くなら休止してた方がいいような気がする日記。

検索です検索。マルチバイト文字の2バイト目と次の字の1バイト目が組み合わさって誤検出みたいになるあれ。「せ」(\xA4\xBB)で検索すると「気持ち」(\xB5\xA4\xBB\xFD\xA4\xC1)がひっかかってしまう問題。
あれってなんか本文も検索ワードも1文字(2バイト)ずつ区切った上で検索し、しかるのち元に戻す…みたいなことをしなればならないらしいですね。びっくりした。すごいなー! つまり検索エンジンとかはそういうことをしてると…! あの膨大なページの内容を1文字1文字区切ってると! うわー。それともそれはEUCだけなのかしら。でもはてなダイアリーとかEUCですよね。つまりはてな検索はきっと全ダイアリーを区切っている…一文字ずつ! すごいなー!

けどここの日記内検索でそれ実際やってみたら重くなったのでやめた。まあ1文字で検索しなければほぼないことだし、使うの自分だからいいよ(それ言ったら終わる)
でもハイライトをつけた時に文字化けするのはあれなので、ハイライトonの時だけそれにした。にしてもハイライトって面倒なものだったんだなあ。文字化けもそうだけど、全角アルファベットの大文字小文字が検索ワードと違う時にどうやってハイライトのタグを付けるのかという心からどうでもいいけど片づかないと気になってしまう問題に悩んだ今日でした。
結局本文の英数字を半角に変換して、変換する時にマークをつけておいて、検索してハイライトのタグをつけ、そしてマークのとこだけ全角に戻す、てやったけどこれ絶対間違ってるよね。こんな無駄なことをみんながしているわけがないもの。日記内検索のハイライトを担当する部分だけで、こんな長さに
sub NickySerchLight{
my($zha,$zhb,$zhc,$zhd,$hi);
($SWord[$_],$cword) = @_ ;

$zha = qr{(?<!\x8F)};
$zhb = qr{(?=(?:[\xA1-\xFE][\xA1-\xFE])*(?:[\x00-\x7F\x8E\x8F]|\z))}x;
$zhc ="<<z_h>>";
$zhd ="<<\/z_h>>";
$Message =~ s/$zha\xA3([\xB0-\xB9\xC1-\xDA\xE1-\xFA])$zhb/$zhc.pack("C", ord($1) - 0x80).$zhd/oeg;
$Message =~ s/$zhd$zhc//g;
$Title =~ s/$zha\xA3([\xB0-\xB9\xC1-\xDA\xE1-\xFA])$zhb/$zhc.pack("C", ord($1) - 0x80).$zhd/oeg;
$Title =~ s/$zhd$zhc//g;
$Title =~ s/([\x8E\xA1-\xFE][\xA1-\xFE]|\x8F[\xA1-\xFE][\xA1-\xFE])/$1\n/g;
$Message =~ s/([\x8E\xA1-\xFE][\xA1-\xFE]|\x8F[\xA1-\xFE][\xA1-\xFE])/$1\n/g;

for($hi = 0; $hi<$cword; $hi++){
$SWord[$hi] =~ s/([\x8E\xA1-\xFE][\xA1-\xFE])/$1\n/g;
$Message =~ s/($SWord[$hi])/<span class=\"hili\">$1<\/span>/ig;
$Title =~ s/($SWord[$hi])/<span class=\"hili\">$1<\/span>/ig;
1 while $Title =~ s/(<[^>]*)(<span class=\"hili\">)([^<]*)(<\/span>)/$1$3/ig;
1 while $Message =~ s/(<[^>]*)(<span class=\"hili\">)([^<]*)(<\/span>)/$1$3/ig;
$SWord[$hi] =~ s/\n//g;
}
$Message =~ s/$zhc<span class=\"hili\">/<span class=\"hili\">$zhc/g;
$Message =~ s/<\/span>$zhd/$zhd<\/span>/g;
1 while $Message =~ s/($zhc[0-9A-Za-z])([^$zhd])/$1$zhd$zhc$2/g;
$Message =~ s/$zhc([0-9A-Za-z])$zhd/pack("C*", 0xA3, ord($1) + 0x80)/eg;
$Title =~ s/$zhc<span class=\"hili\">/<span class=\"hili\">$zhc/g;
$Title =~ s/<\/span>$zhd/$zhd<\/span>/g;
1 while $Title =~ s/($zhc[0-9A-Za-z])([^$zhd])/$1$zhd$zhc$2/g;
$Title =~ s/$zhc([0-9A-Za-z])$zhd/pack("C*", 0xA3, ord($1) + 0x80)/eg;
$Title =~ s/\n//g;
$Message =~ s/\n//g;
}

ありえないよ。無知は悲劇、みたいなのを地でいくようなことをしてるんでしょうね

2008年11月20日(木) ドラクエ1(借財)

ロトの借財。6章更新。
やっと半分。短いくせに遅すぎる。1が終わったら2も書きたくなるのは目に見えてるだけにいろんな意味で先行き不安です

ガライの墓といえば。
魔物を呼ぶアイテムを墓の中に取りに行く、というのはピラミッドの黄金の爪と同じなんですよね。これもまた色々と捏造の余地の多そうなところではありませんか。

2008年11月19日(水) 日記内検索まだ続いた

画像ありの日記だけ探すとかそういうコマンドみたいなのって普通、アルファベット1文字とかじゃないの? と今さら気づいたので変えた。

o : 古いのが上になる
h : ハイライトをつける
i : 画像ありの日記だけ出る
ii : 画像だけ並べる
t : タイトルリストみたいな画面になる

これを検索ワードと一緒に入れるとそんなふうになる
前のコマンドが変に長かったのは「その言葉を検索に使いたくなったらいけないから検索しそうもない言葉がいいよね」とか思ったからなんだけど、アルファベット1文字で検索することってあまりないと我に返った。一応「'」を前か後ろにつければ検索にも使えるようにした

以前、ハイライトをつけるって簡単だろうと思ってて気軽につけちゃったんですが、変なところがどんどん出てきて(私にとっては)難しいです。あれ実はすごいんだな!
ワードの前後に<span></span>つけりゃいいんだろ? 簡単ー。と思ったら、タグの中にまで<span>が入り込んでたりして「あ、そうかしまった!」ってなる。タグの中に入れないようにするには…とか、ない頭をひねって考えて、これか!とあやしげな結論を出してなんとかなったかと思ったら、今度はマルチバイト文字がなんとか、みたいなので文字化けしてまた「あ、そうかしまった!」ってなる。たとえば「。開」はエンコードすると「%a1%a3%b3%ab」で「3」は「%a3%b3」だから、「3」にハイライトかけようとするとこういうのの途中に引っかかって化けちゃう、みたいなやつです。一文字で検索してハイライトつけたらあちこち文字化けワラタ(直ってない)これどうすればいいんだろ。ここんとここんなのばかりで、めっきりパズルサイト行かなくなったけど楽しいな

2008年11月18日(火) 日記内検索。全然最終回じゃなかった

気分転換とかいってまた新しい機能をつけたくなるんです。そして簡単だろうと思っていたそれが想像よりずっと難しかったりして気分転換どころじゃなくなるんです。

nickyにはTitleListというのがもともとあるんですが、そういう表示を検索画面でもできるようにしたくなったので、検索ワードと一緒に「タイトルモード」と入れるとそうなるようにしました。Titlelistと同じ表示にしようとしたけど難しくてだめだったので画像有マークを後ろにつけてごまかした。
タイトルに「ドラクエ3」としか入れてないとかしょっちゅうだし、オンマウスで本文の冒頭だけ出るようにしてみようよとか、せっかく期間指定検索できるようにしたんだし、年や月のリンクはそれに飛ぶようにしない?とか脳内が盛り上がってしまうせいでサブルーチンがどんどん長くなっていく。

あとページタイトルに検索ワードが入るようにしたのと、英数字の半角全角の違いを認識しないようにした。わーい
半角全角は通常jcodeで変換するらしいんですが、試しにjcode.plでやってみた時に重くなってしまって…。ローカルでもボタン押してから表示するまでに1秒強かかったりしたんです。変換はされてたけど、何かやり方間違えてたのかなあ。
でも、こちらの「正規表現で半角全角変換」というのをやってみたら重くならなかったー。わーい

あとは次へのボタンをリンクにするだけだ

追記。「タイトルモード」→「t」に変更

2008年11月17日(月) 地底三国志

陸遜

・陸遜
糸目敬語キャラでお願いします。

陸遜といえば夷陵の戦いですが。自分三国志の夷陵の戦いでは、呉というか孫権の真の目的は蜀ではなくて山越なのでした。この山越はくそつよくて蜀より手強いレベル。他国にはそれを知られたくないので「呉は余裕あるけど君主の孫権が手堅い人だからなかなか他国に向かって戦いを挑んだりしないんですよねー」みたいなふりをしてるけどほんとは山越が強すぎるので全然余裕ない。神出鬼没でまともに叩けないし、このままやりあってたらジリ貧でマジ国滅ぶわみたいな状況なのでなんとかしなきゃいけない。
陸路で蜀が攻めてきたら山越もそれに乗じて本格的に来るだろうから、その時が山越に決定的なダメージを与えることのできる唯一のチャンス? みたいなハイリスク計画が考えの1つにあった孫権。劉備の奥さんだった妹に色々話を聞いていたので、関羽殺したら劉備は攻めてくるかもとは思っていて、来なければ来ないで悪くはないのでやってしまった。やろうと言ったのは呂蒙だけど。
さて蜀が攻めてくることになり、迎え撃つ軍のトップに指名される陸遜(山越討伐の実績がすごいから)。「山越が蜀の勝ちを疑わないくらいまで軍を引いていいからしっかり殲滅しろ(山越を)」とか無茶な命令をされる。メインが山越だとは誰も思ってないからある意味そこが付け目かなとか思う陸遜。そんな夷陵の戦いです。

陸遜が頼りになるから孫権はついいつも無茶な要求をしてしまうんだ。やれやれと言いながらそれをこなす陸遜だが、酒宴では酒弱い孫権に無理矢理飲ませる家臣の筆頭。内心ではちょっと腹を立てている。でも仲良し。

2008年11月16日(日) 過去ログ日記

ネット閲覧しててある単語が目に入り、そういえば昔持っていたテキストサイトでこの単語が出てくるものを書いたなと思い、どんなだっけと検索してみたらひっかからなかった。昔のログは全部上げたはず。書いたというのは気のせいかしら……いいえ! いいえ私確かに書きましたGoogle先生!
こんなささいなことが気にかかって、結局ウェブアーカイブで自分の昔のサイトの跡地を見に行ってみた。探してみた。ありました。

これは一体どういうことなのか…。ログを上げる時、全く意味の分からないものはさすがに消したけど、つまらないとかそんな理由では消していないはずだった。なのにアーカイブを見てみると、自分で上げた過去ログの中にはないのがぱらぱらある。どうやら上げるよりもさらに前に、その当時の判断で消したらしい。いや確かにひどいの多いからその気持ちは分かるんですが、そういうのも含めて上げたつもりでいただけに裏切られた思いです!(自分に)
というわけでちょっとずつそういうの追加していこうかと思います。更新してるわけでもないのに数が増えたりナンバリングがずれたりするのはなんか気持ち悪いけど。しかも増えるのは削除対象になるような哀れな内容

追加して後の番号全部ずらしたりとかってファイル分割したり統合したりするソフト使った方がいいのかな…似たようなことが今後もあるかもしれないし…と色々やってたらいつの間にかまたここの日記内検索いじってました! 終わりと言って終わらせたためしがないね。nliteの時もそうだった。検索ワードに「画像あり」と入れると画像つきの日記だけが検出される機能と「画像モード」と入れると画像だけが並ぶ(画像に該当記事へのリンクが張られる)機能追加。こんな感じ→「ドラクエ 画像モード」 いつか続きものの漫画とか描いたらこれでまとめるんだ
追加機能がそろそろ2桁になります。はやく止まれ

追記。「画像あり」→「i」、「画像モード」→「ii」に変更

2008年11月15日(土) 日常日記

蓋

母は私がパソコンにくわしいと思っているらしいけど、実は開けるのにドライバーなんていらないタイプだった。開けて閉めて説明書読み直して気づいた。

実家から更新(↑は後で追加) 他のモニタで見るとここの灰色はこんなに濃いのか
一人暮らしして3年くらい?ですが実家に泊まるの初めてでした。近いとそんなもんかな。
「インターネットにつながらなくなった」と電話がかかってくるという、ネットでは恐怖体験として語られる展開でした。でもうちの母は「何もしてないのにこわれた」とか言ったりしないから平気です。晩ごはんはすきやきだった。
リカバリとかもすでに試し済みだったのでWINDOWS UPDATEとかしてたらPCがあまりにも重すぎたので時間かかって泊まった。メモリ256でXPってこんなに重いものじゃなかったと思うけど…。メモリ買ってこよう。

「お気に入りがなくなってる! バックアップ復元したのに…。お気に入りってバックアップに入らないの?」
「普通のバックアップソフトなら入ると思うけど」
「項目選ぶときに外しちゃったのかなー」
「使ったバックアップソフトってこれ? あ、やっぱりある『IEのお気に入り』」
「IEってインターネットエクスプローラーだったの!?」
お気の毒です。母のブックマークにも二度と行けないサイトとかあるのかしら。私のブックマークにはそういうサイトが10はありそうなので断固として消すわけにいかない

2008年11月14日(金) 日記内検索機能まとめ

・and検索:検索ワードの間にスペース
・or検索:検索ワードの間にスペースと「or」
・not検索:検索ワードの前に「-」
・日付指定:「2008/1/1〜2008/11/14」みたいなのを検索ワードと一緒に入れると検索結果がその期間に限定される。スラッシュは半角。範囲を示すのは「〜」もしくは「~」。「2008/11/14〜」のように後ろを省略するとその日以降全部。「2008/11/14」とだけ入れるとその日だけ。「2008/」とか「2008/11/」のように後ろを省略するとその年やその月が検索範囲になる(その場合「〜」での範囲指定はできない。末尾にスラッシュ入れないと機能しない)

コマンド。検索ワードと一緒に入れると表示が変わったりする。
・o : 古い順に並ぶ
・h : ハイライト表示
・i : 画像付きの日記だけ検出
・ii : 画像だけ並ぶ(画像クリックで該当記事へ)
・t : タイトルリストみたいな画面になる
・d : 検索結果の件数を表示しない
・○○件 :1ページの表示件数がそれになる。99件まで
・tt : タイトル検索
・c : コメント検索

増やしすぎワロタ
英数字の半角全角大文字小文字は認識しないけど、記号の半角全角や半角カナと全角カナの違いは認識してしまう

2008年11月14日(金) 日記内検索強化プロジェクト・最終回

分割ができたらできたで次に進むのめんどくさいことに気づいたので本日の機能追加ー。検索ワードの最後にスペース入れて「○件」と入力するとそれが表示件数になる機能ー。数字は半角のみー。
通常の表示件数は普段の過去ログ表示件数と同じですが、例えば「ドラクエ 50件」とか入れると50件ずつ表示。制限いらない気もするけど一応99件まで。日記連載をした後後書きだけ別ページにするとかそんな使い道しか思い当たりませんがまあいい。

とにかく、これでようやく日記内検索をカテゴリ代わりに使う野望に一区切りついたのだった。本当は「次へ」よりも1 2 3…ってリンクが出るような分割がしてみたいんですが今はまだ無理のようだ。明日からはまた普通の日記に戻ります

追記。これではカテゴリ代わりに使うのはやや不足…というわけでもう一個だけ機能増やしました。日付指定機能。すでに役に立つからとかじゃなくて面白がってつけてるよね
あとついでにもう1つ。ハイライト機能。
『 2008/11/』を含む記事 35件中 11〜20件
戻る
日記内検索機能

RSS

PaintBBS / spainter Shi-dow
Diary CGI  Nicky! + rssnicky