■スレッドリストへ戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 最新50

read.cgi改良スレッド 2

61 :デフォルトの名無しさん :01/09/10 02:56
とりあえず今日わかったことは

・トップの1-51-等の表示のために、CHUNK_ANCHORはONにしたい
・>>xxxのリンク先がCHUNKEDになるのは嫌だ。

仕方がないから、新しいcondition(CHUNK_RESLINK)をつけ、
>>xxxのリンク先をCHUNK単位に直すのはCHUNK_RESLINKの時だけにしよう
CHUNK_RESLINKがdefineされてCHUNK_ANCHORがdefineされてなかったらエラー。
(CHUNK_ANCHORは再定義できるけど、CHUNK_NUMの再定義は数値が必要だから)

・レス数とサイズの警告は、両方出てもよい。
・1000 Overの場合は、サイズ表示はいらない。

#ifdef CAUTION_FILESIZE の直後に if (line <= RES_RED) {
#endif の直前に }

NAME_ANCHORは、あってもいいのかなぁ

62 :デフォルトの名無しさん :01/09/10 03:16
BadAccessがrawmodeのときでもツールを弾いている気
がするんですが、ツールに読ませるためのモードが
ツールを弾くのはまずいのでは…。

63 :デフォルトの名無しさん :01/09/10 03:17
「名前:」をとっとと消せよ

64 : ◆D69Zsbfg @夜勤 ★ :01/09/10 03:19
piza2 に全面的に導入しました。
ver 5.20 にしました。

65 :デフォルトの名無しさん :01/09/10 03:20
>>xxxのリンク先を広げるconditonは、CHUNK_ANCHORより
CREATE_NAME_ANCHORであるべきではないでしょうか。
そうすればconditionを追加する必要もありませんし、
>>xxxのリンク先を広げる必要がなければname anchorも
いりませんからそのほうが合理的だと思います。

66 :65 :01/09/10 03:24
よく考えるとCHUNK_ANCHORが有効でないと
>>xxxのリンク先を広げる意味もないか…。

67 :デフォルトの名無しさん :01/09/10 03:26
CHUNK_ANCHORのとき、上に表示するリンクは範囲外の
ものだけにしたほうがいいと思う。
(たとえば「レスを全部読む」の場合にはぜんぜん必要ない)

68 :デフォルトの名無しさん :01/09/10 03:31
それから現在の表示範囲より下のCHUNKへのアンカーは
上ではなくて下に表示したほうがいいと思うんですが…。

69 :デフォルトの名無しさん :01/09/10 03:31
MAX_FILESIZE_BUSYが正式に採用されるまでの間、
dat_read()の最初
#ifndef MAX_FILESIZE_BUSY
 if (zz_fileSize > MAX_FILESIZE)
  html_error(ERROR_TOO_HUGE);
#else
 if (zz_fileSize > MAX_FILESIZE || (isbusytime && zz_fileSize > MAX_FILESIZE_BUSY))
  html_error(ERROR_TOO_HUGE);
#endif

正式にヘッダに入ったら、
Settingsにも加えたほうがいいでしょう。
(メンバー変数、初期値、#undef + #define、config.txt)

70 : ◆D69Zsbfg @夜勤 ★ :01/09/10 03:41
ちょっと 質問でーす

teri にも ver 5.20 いれたんですけど、>>12 というのだけを
一日中有効にするのは、どうすれば良いのでしょうか?

71 : ◆D69Zsbfg @夜勤 ★ :01/09/10 03:43
つまり >>レス番 の機能を teri サーバだけは一日中
有効にしたいのです。

72 :デフォルトの名無しさん :01/09/10 03:44
>>70
read2ch.hの
#define LINKTAGCUT
をコメントアウトすればいいのではないかと…

73 :72 :01/09/10 03:46
ごめんなさい、
#define LINKTAGCUT (0)
に変更、の間違いでした。

74 : ◆D69Zsbfg @夜勤 ★ :01/09/10 03:47
>>72
さんきゅです。
さっそく teri でやってみます。

75 : ◆D69Zsbfg @夜勤 ★ :01/09/10 03:47
>>73
了解でーす

76 :デフォルトの名無しさん :01/09/10 03:49
>夜勤さん
Ver5.20と見た目、機能はほぼ同じで、

・>>nnのリンク先が広がるのを避けたい場合
read.cの440行目付近の
#if defined(CHUNK_ANCHOR) && defined(CREATE_NAME_ANCHOR)

#if 0
に変えるとよいです。

LINKTAGCUTは、例えば、
/accuse/SETTING_R.TXTに
LINKTAGCUT=0
と書いて置いておく方法もあります。

77 : ◆D69Zsbfg @夜勤 ★ :01/09/10 03:53
どもです。
削除依頼板は、>>xx が効かないと、効率が悪いらしいです。
とりあえず、今日は >>73 をやりました。

78 :デフォルトの名無しさん :01/09/10 04:29
批判要望よりコピペ

697 名前:名無しさんの声 投稿日:01/09/10 04:20 ID:mhbyzSZQ
「新レスの表示」の
nofirst=true
は無いほうがいいな

79 :デフォルトの名無しさん :01/09/10 08:59
ブランチは作らないの?

80 :デフォルトの名無しさん :01/09/10 09:52
read.cgiではすでに行っているんですが index.htmlの方でもトップのJavaScriptのところで
----------------------------------------------------------------------
function ol(e){
 var N=getCookie("NAME"),M=getCookie("MAIL"),i;
 with(document) for(i=0; i<forms.length; i++)
  if(forms[i].FROM&&forms[i].mail)
   with(forms[i]){FROM.value=N;mail.value=M;}
}
onload=ol;
----------------------------------------------------------------------
というのを入れて その代わり投稿フォームのところでのdocument.write()を
やめてはどうでしょうか? 一番上の

NameMail = "<INPUT TYPE=text NAME=FROM SIZE=19 VALUE=" + getCookie("NAME") + "> E-mail:<INPUT TYPE=text NAME=mail SIZE=19 VALUE=" + getCookie("MAIL") + ">";

と 各投稿フォームのところでの

<SCRIPT Language="JavaScript"><!--
document.write(NameMail);// --></SCRIPT><NOSCRIPT></NOSCRIPT>

が削れる分 トータルでは節約になると思いますが

81 :デフォルトの名無しさん :01/09/10 09:59
>>80
スレ違いです

82 :デフォルトの名無しさん :01/09/10 10:05
rawmodeのときは、圧縮に対応していないクライアントは
弾くようにしませんか?
rawmodeで非圧縮のデータを返すメリットってほとんど
ないように思うのですが…。

83 :デフォルトの名無しさん :01/09/10 10:30
全レス表示規制中に「次の100レス」でたどっていくと、
表示範囲が
1-100
100-199
199-298

というふうに変化していきますが、CHUNK_ANCHORとの
噛み合わせが悪いので
1-100
101-200
201-300

と増えていくようにしませんか?
(というかそもそも「次の100レス」の代わりに
「101- 151- 201-…」を下に持ってくればいいと思う)

84 :デフォルトの名無しさん :01/09/10 10:45
read.cgi 5.20でも
http://piza2.2ch.net/test/read.cgi/mona/
で[ここ壊れてます]が連打する現象が解消されていません。
http://piza2.2ch.net/test/read.cgi/mona/?raw=0.0
とするとわかりますが、どうもsubject.txtを無理やり分解して
表示しようとしている模様。

85 :デフォルトの名無しさん :01/09/10 11:07
>>84
#ifdef USE_PATH
 /* スレ一覧を取りに逝くモード */
 if (1 <= path_depth && path_depth < 3) {
   sprintf(fname, "../%.256s/subject.txt", zz_bs);
   zz_fileLastmod = getFileLastmod(fname);
 }
#endif
こんなコードが入ってる割にこれ解析してないようだな。
これが原因か。

86 :デフォルトの名無しさん :01/09/10 11:20
↓こういうのって

<a href="read.cgi?bbs=tech&key=998997848&st=1&to=50">1-</a>
<a href="read.cgi?bbs=tech&key=998997848&st=51&to=100&nofirst=true">51-</a>
<a href="read.cgi?bbs=tech&key=998997848&st=101&to=150&nofirst=true">101-</a>
<a href="read.cgi?bbs=tech&key=998997848&st=151&to=200&nofirst=true">151-</a>
<a href="read.cgi?bbs=tech&key=998997848&st=201&to=250&nofirst=true">201-</a>
<a href="read.cgi?bbs=tech&key=998997848&st=251&to=300&nofirst=true">251-</a>

↓こうすると

<form><select onchange='
 var st=parseInt(this[selectedIndex].text);
 location="read.cgi?bbs=tech&key=998997848&st="+st+"&to="+(st+49)+"&nofirst=true";
'>
<option>1-
<option>51-
<option>101-
<option>151-
<option>201-
<option selected>251-
</select></form>

スリム化できるような気がする 現在表示中の範囲の記事番号のところは
<option>でselectedを入れておくと

87 :デフォルトの名無しさん :01/09/10 11:26
PATH仕様が標準になってくれればなー。
<a href="1-50">1-</a>
<a href="51-100">51-</a>
<a href="101-150">101-</a>
<a href="151-200">151-</a>
<a href="201-250">201-</a>
<a href="251-300">251-</a>
それでもFORMにしたほうが若干小さくなるかな。
ただFORMだと>>67-68 >>83のような工夫がしづらくなる。

88 :デフォルトの名無しさん :01/09/10 11:38
>>82の修正
BadAccessの最初に
if (rawmode && !gzip_flag)
 return 1;
を追加。

89 :デフォルトの名無しさん :01/09/10 11:41
>>88
if (rawmode)
return !gzip_flag;
のほうがよくないかな?

90 :88 :01/09/10 11:45
あ、
#ifdef GZIP
#endif
で囲む必要があるか。

91 :88 :01/09/10 11:47
>>89
>>62の修正も合わせてるわけね。納得。

92 :デフォルトの名無しさん :01/09/10 12:08
>>85
・・・USE_PATHをundefすれば根本解決しそうな、、、

93 :デフォルトの名無しさん :01/09/10 12:18
>>85>>89 あてた(85は#if 0にしただけ, 89はRAWOUTでも囲んだ)

94 :デフォルトの名無しさん :01/09/10 12:24
>>92
USE_PATHしたときだけこんな処理が入るほうが変だと思うけど…
そもそもこのコードいつ誰がどういう目的で追加したの?

95 :デフォルトの名無しさん :01/09/10 12:28
>>94
そのコードの下のほうでインデックス処理とかがあるようだけど
そっちは#if 0 /* #ifdef USE_PATH */で無効化されてたのに、
そのためにsubject.txtを読むように準備する部分が生き残ってたようだ。

96 :デフォルトの名無しさん :01/09/10 12:32
こっちだけ殺して>>85は殺してなかったわけね
#if 0/* #ifdef USE_PATH */
else if (path_depth == 2) {
if (zz_ky[0] == '-')
dat_out_subback();/* スレ一覧 */
else
dat_out_index();/* 板ダイジェスト */
}
#endif

97 :デフォルトの名無しさん :01/09/10 12:39
板ダイジェストにcondition付けませんか?
#if 0で無効にしてるのって気持ち悪い

98 :デフォルトの名無しさん :01/09/10 12:41
>>97
いらんだろ、
もともと余計な機能だったんじゃないか?

99 :デフォルトの名無しさん :01/09/10 12:52
config.txt
×DIGEST
板ダイジェストを有効にする。
USE_PATHをONにしたときにのみ使用可能。
/test/read.cgi/tech/ 板ダイジェスト(index2.html相当)
/test/read.cgi/tech/- 全スレ一覧(subback.html相当)

read.cへの変更点
#if 0 /* #ifdef USE_PATH */

#if defined(USE_PATH) && defined(DIGEST)

100 :デフォルトの名無しさん :01/09/10 12:54
>>98
そうだね。じゃあ
#if 0 /* #ifdef USE_PATH */
となってるconditionはバッサリ削除
digest.c digest.hも削除。Makefileからも取り除く
ということで。

101 :デフォルトの名無しさん :01/09/10 12:57
>>99-100
すでにMakefileのOBJSにはdigest.oは入ってなかったみたいだ。
従ってこのままではたとえconditionにしても使えん。

102 :デフォルトの名無しさん :01/09/10 13:01
本当だ。SRCSには残ってるのに。
じゃあやっぱりバッサリ削りましょう。

103 :デフォルトの名無しさん :01/09/10 13:02
>>94
cvs見ると、6411さんが8/30に作ったようだが

104 :デフォルトの名無しさん :01/09/10 13:07
>>85は、#if 0で囲うと、初期化されていないメモリを参照して、どうなるかわからない。
if (1 <= path_depth ...) {
#if 1 /* #ifndef USE_PATH_DIGEST */
 html_error(ERROR_NOT_FOUND);
#endif
 ・・・
}
って感じにしてくれ。
理由は、皆が言うように、後半で参照されている部分が#if 0で(仮に)殺してあるため。

Expire関係の#if の#else節も生きているようだが、
これもいらない。

もうひとつ、細かいことだが
mainの最初の方に
 if (st == 1 && to == 1)
  zz_nf[0] = '\0';
というのがあるが、
CHUNK_ANCHORで1-50へのリンク(>>nn)にnofirst=trueがつくことを考えると、
 if (st == 1) /* レス1から表示する場合はnofirst=falseにする */
  zz_nf[0] = '\0';
の方が良いだろう。

105 :デフォルトの名無しさん :01/09/10 13:07
前スレですでにこういう話が出てた。

850 名前:デフォルトの名無しさん 投稿日:01/09/09 03:27
>♯6411氏
digest.[ch]いらなくなったのなら、MakefileのSRCSから消してちょうだい。
あと、datindex.cの中身全部を#ifdef USE_INDEXで括っておくように。(w

106 :デフォルトの名無しさん :01/09/10 13:10
>>104
> >>85は、#if 0で囲うと、初期化されていないメモリを参照して、どうなるかわからない。
これはどういうこと?
fnameもzz_fileLastModもその前後で設定されているが。

107 :デフォルトの名無しさん :01/09/10 13:12
ダイジェクト削除するならr2chhtml.h後半の
/* スレダイジェスト用HTML */
/* スレインデクス用HTML */
も不要。

108 :デフォルトの名無しさん :01/09/10 13:14
>>106
失礼。その通りだった。
後でエラーになるね。

109 :デフォルトの名無しさん :01/09/10 13:22
>>52修正
#ifdef CAUTION_FILESIZE 直後の行を変更
if (zz_fileSize > MAX_FILESIZE - CAUTION_FILESIZE * 1024) {

else if (zz_fileSize > MAX_FILESIZE - CAUTION_FILESIZE * 1024) {

110 :デフォルトの名無しさん :01/09/10 13:26
>>109
あてといた

111 :デフォルトの名無しさん :01/09/10 13:37
>>104でも言ってるけどEXPIRESは全廃したんだから
これはいらないんじゃない?
char expires_str[1024];

#if 0
/* XXX これはウソ、Expires: は、
現在時間を基準にすべきである */
get_lastmod_str(expires_str, zz_fileLastmod + 5);
#else
{
/* ためしに廃棄期限をちょっと先に設定してみる */
time_t nw;
time(&nw);
get_lastmod_str(expires_str, nw + 10);
}
#endif

112 :デフォルトの名無しさん :01/09/10 13:39
>>109より、
>>61の後半の形式の方がいいと思う。
>>109だと、レスが930まで来た時に突然読めなくなる可能性あり。

113 :デフォルトの名無しさん :01/09/10 13:40
>>111
expires_strの宣言とともに削除した

114 :デフォルトの名無しさん :01/09/10 13:43
>>112
賛成。

115 :110 :01/09/10 13:50
>>112
そのようにあてた

116 :デフォルトの名無しさん :01/09/10 14:11
>>104の最後の修正も当てたほうがいいと思うんだけどどう?
当てるなら、get_path_infoの最後のほうの
/* nofirstの仕様をごまかすためのkludge XXX */
if (!zz_nf[0])
strcpy(zz_nf,
(atoi(zz_st) == 1
? "false"
: "true"));
こっちは不要になる。

117 :116 :01/09/10 14:15
いやごめん、やっぱり必要。

118 :デフォルトの名無しさん :01/09/10 14:22
r2chhtml.hで
./%s? (←%sにはCGINAMEが入る)
となってる箇所がいくつかあるけど、「./」は不要。
消せば多少は転送量の節約になる。

119 :デフォルトの名無しさん :01/09/10 14:34
>>118
細かいな(笑)
当てた

120 :デフォルトの名無しさん :01/09/10 16:28
imode=true&ls=11や
imode=true&st=nnで nn+RES_IMODE==lineMax-1だった場合に
RELOADLINKが表示されずに「次の10レス/最新レス10」が表示されるバグの修正

out_html()の最後、
 if (out_resN > RES_IMODE) {
のすぐ下に
  if (lineNo != lineMax)
(その下のpPrintfをifの条件下に入れる)

dat_out()のループ内の判定がisprintedと重複していることもあり、
修正ついでに全体を少し整理。
int dat_out(int level)
{
 int line;
 int threadStopped=0;
 char *s[20];
 char p[SIZE_BUF];

 for (line = 0; line < lineMax; line++) {
  int lineNo = line + 1;
  if (!isprinted(lineNo))
   continue;
  if (out_html(level, line, lineNo)) {
   line++;
   break; /* 非1が返るのは、エラー時とimodeのMaxに達した時 */
  }
  if (lineNo==1 && is_imode() && nn_st==1)
   ++out_resN;
 }
 out_html1(level); /* レスが1つも表示されていない時にレス1を表示する */
 ・・・
 最後の #ifdef RELOADLINK 内部の lineLast(2箇所)をlineに変更
 ・・・
}

121 :デフォルトの名無しさん :01/09/10 16:33
コメント違ってたー
×非1が返るのは
○非0が返るのは

コメントの間違いといえば、
isurltailのstrncmp("&quot;")は、
'"'で囲まれたURLの末尾判定だと後で気がついた。
恥ずかしいので修正してもらえるとうれしかったり。

122 :120,121 :01/09/10 16:36
 isurltail
→geturltaillen
だし。逝ってきます。

123 :デフォルトの名無しさん :01/09/10 17:05
>>120-122
当てた
一時2800行あったread.cは、現在2166行。だんだん減ってるな(笑)

124 :デフォルトの名無しさん :01/09/10 17:33
#if 0の整理(ダイジェスト関連以外)

#if 0
if (!is_imode()) {/* no imode */
pPrintf(pStdout, "<DL>");
}
#endif
が2箇所あるけど、すでに同等の処理はhtml_head()に吸収
されているので不要。いい加減削除したほうがいいと思われ

#if 0
/* put 2048byte */
/* もう要らないんじゃないかな、
XXX 追試求む */
while (whitespace--)
gzputc(pStdout, ' ');
#endif
頭切れの報告がないのでそろそろ削除しても大丈夫だと思われ

125 :デフォルトの名無しさん :01/09/10 17:51
今のget_path_infoだと
 /4 (st=4&to=4)
 /4- (st=4)
 /-6 (to=6)
 /4-6 (st=4to=4)
しかないんだけど、
 /. (nofirst=faluse) /5とかでnofirst=trueを基本にしたいから逆条件
 /=10 (ls=10) /-10ってls=10扱いって話があったはずなんだけどな
/i (imode=true) path_infoでimodeは実装不充分だけどね
なんてのを追加し、かなり自由フォーマットで書けるようにしてあるんだけど
commitしていいかな。
.や=について意見求む。

126 :名無し娘。 ◆vP.bOZFQ :01/09/10 18:01
細かいことひとつだけ。

<r2chhtml.h>
#define R2CH_HTML_T_RELOAD(path) \
"<hr><center><a href=\"" path "\">新レスの表\示</a></center><hr>"

#define R2CH_HTML_T_RELOAD(path) \
"</dl><hr><center><a href=\"" path "\">新レスの表\示</a></center><hr><dl><dt><dd>"

にした方が、見た目が気持ちいいと思います(<hr>〜<hr>が<dd>にかかっているので
何となく気持ちが悪くて)。

HTML的には
#define R2CH_HTML_FOOTER \
"</dl><p>" CGIVER "</body></html>"
の</dl>をread.cの
#ifdef RELOADLINK
if (!level && lineMax == lineLast) {
html_reload(lineLast);/* Button: Reload */
}
#endif
の前あたりにもってきた方がすっきりしますが、どちらがいいかはおまかせします。

127 :名無し娘。 ◆vP.bOZFQ :01/09/10 18:15
もちょっと。
>>77
同感です。あと、>>xx でchunk単位で50表示されるのは、若干のキャッシュ効果が
あるのかもしれませんが、それでも邪魔な気がします。
>>78
なにかと nofirst=true になっているのだけど、ない方がいいような気がしますね。
# 1も表示してくれた方がうれしいということです。
# スレ違い抑制のためにも役立ちますし。
>>83
賛成。

128 :名無し娘。 ◆vP.bOZFQ :01/09/10 18:26
もいっこ。
target="_blank" 消えちゃってますね。すごく不便(^^;

129 :デフォルトの名無しさん :01/09/10 18:29
>>125
/=10 でls=10扱いってのはいいね。
でも . とか i ってのは保留にしたいところ?

130 :125 :01/09/10 18:41
>>129
.(nofirst=false)の扱い次第でプログラムの方針がかわるので
/10-20とかでnofirstをどうするか決めないといけない。

/10 (nofirst=true)
/10-20 (nofirst=false) #ここが問題
/100- (nofirst=false) #ここも同様
/-100 (nofirstはどうでもよい。1があるから)
/=10 (nofirst=false)
/n (nofirst=trueを強制)
/. (nofirst=falseを強制)

うーん。/10でnofirst=trueにしたいから変になってるなあ。

131 :デフォルトの名無しさん :01/09/10 19:17
>>124
これ当てた(削除した)

132 :(゚Д゚)ハァ?スレ発起人 :01/09/10 20:16
また,スレタイトルの末尾の空白を取ったようですが...
http://saki.2ch.net/test/read.cgi?bbs=entrance&key=1000120416

133 :(゚Д゚)ハァ?スレ発起人 :01/09/10 20:23
リモホばっちり出てた(;´Д`)

134 :デフォルトの名無しさん :01/09/10 22:36
>>67-68に対応してみた。
批判要望板のレスも読んで、
テレホ外は「レスを全部読む」を入れた。
最新レスnnも入れ、その分CHUNK_ANCHORの数を減らした。
>>86も試験的にコードにしてみたが、
「レスを全部読む」等との統一感がないのでOFFにしてある。
(つーか、俺HTML知らないし。)

変更が大きいのでコンパイルが通るかだけでも確認できる人、
大変だけど、お願いできるかな?
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998997848&st=944&nofirst=true

135 :デフォルトの名無しさん :01/09/10 22:39
それと、>>132の不具合は
r2chhtml.hの
#define R2CH_HTML_HEADER_1
#define R2CH_HTML_IMODE_HEADER_1
#define R2CH_HTML_HEADER_2
#define R2CH_HTML_HEADER_2_I
とかだね。
直せる人が見ればすぐ直せると思う。

136 :|  - -) :01/09/10 23:37
>>135
done.

137 :デフォルトの名無しさん :01/09/11 00:04
CHUNKしてあっても、関係ない後半部分に追加レスがあるだけで、
If-Modified-Sinceが成立してキャッシュが無視される問題、
ETagを吐くことで対処できないかな。
昔調べたら、ネスケ4.70には無視されたけど、
IE5.01は次回にIf-Modified-SinceとIf-None-Matchを両方つけてきたと思った。

138 :デフォルトの名無しさん :01/09/11 01:22
rawモードでサイズを指定する意味って何なんでしょう?
無条件に指定レスのdat行を返してくれたほうがよっぽど便利だとおもうのですが。
rawモードのおかげでdatサイズの管理が不要になるかとおもいきや、そうはなりません。

唯一の意味は、上流でのあぼーんを検出できることですが、あぼーんの検出が
ユーザーにとってメリットであるかは微妙なところです。
また、検出したからといって、全てのdatを読み直すのは無駄のように思います。

139 :デフォルトの名無しさん :01/09/11 01:22
>>137
やっぱり投稿日フィールドデコードしちゃうべき?
秒が入ってないのが痛いけど…
デコードしてその一番後ろのレスの日時をLast-Modifiedに出せば
かなりいい動きしそうな気がするんだけど。
1分以内の複数の発言は仕方ないからひとつあたり1秒後ってことにして。(笑)

140 :デフォルトの名無しさん :01/09/11 01:23
>>138
途中があぼーんされたことをサイズの違いから判別するためです。

141 :140 :01/09/11 01:25
>>140
脊髄反射で書いてしまった…(鬱

>>138
>また、検出したからといって、全てのdatを読み直すのは無駄のように思います。
適切に同期を取る手段がない以上、仕方ないんじゃないでしょうか。
bbs.cgiにも手を入れられて、ファイルフォーマットなども変更できるのであれば
話は簡単になるんですが…

142 :デフォルトの名無しさん :01/09/11 02:17
cvs鯖ディスクフル起こしてません?

143 :デフォルトの名無しさん :01/09/11 02:24
Apache的にはETagは

etag = ap_psprintf(r->pool,
      "%s\"%lx-%lx-%lx\"", weak,
      (unsigned long) r->finfo.st_ino,
      (unsigned long) r->finfo.st_size,
      (unsigned long) r->mtime);

ってな感じで作ってるみたいね ただETagをCHUNK単位で有効に生成させるには
例えば指定範囲の記事テキスト等のハッシュ値を計算するとかいうことになるけど
これだと日付のパースの方が軽いのかも知れない......

ETagをハッシュ値で実装するメリットがあるとすれば 日付のパースだけでは
検出できないあぼーんがわかるということか

144 :デフォルトの名無しさん :01/09/11 02:37
>>134誰か確認した?

145 :デフォルトの名無しさん :01/09/11 03:14
CUT_DATE_STRINGはON固定でいいと思う。
つーかR2CH_HTML_DATEの定義を変えるだけのcondition
なんて必要ないでしょ。

146 :125 :01/09/11 04:04
>>138,141
raw=nnn.0 の時にあぼーん検出機能を無効にした。
あぼーん検出を積極的に使ってもらう意味で、あえて.0を必要とすることにした。
あぼーんの扱いは、ツール作者の方針次第になった。

PATH_INFOは、まだ表向きの機能ではないので、>>130を実装した。
ほとんどが機能強化で、後は/10や/10-20でnofirstをどうするかだけなので。
/=10 (ls=10)
/n (nofirst=true)
/. (nofirst=false)
/i (imode=true)

ただ、imodeの時をちゃんとしないとPATH_INFO自体を正式機能にするのに
問題がある。(?imode=tureつけちゃえば、5.20でも同様の問題)

147 :デフォルトの名無しさん :01/09/11 04:08
i-modeのときは
read.cgi/i/板名/キー/
ということにしてはいかが?
/i/の位置はここじゃなくてもいいけど

148 :125 :01/09/11 04:20
>>147
そういうことではなくて、
imode用の出力形式としてPATH_INFO用が用意されていないんです。
read.cgi/tech/998997848/read.cgi?bbs=tech&key=998997848&st=10&to=20&imode=true
なんてものが;_;

read.cgi/tech/998997848/i10-20
というような形式にそれぞれやらないといけない。

149 :デフォルトの名無しさん :01/09/11 04:29
批判要望で出ていた意見。俺も「新レスの表示」はわかりにくいと
思ってた。

166 名前:名無しさんの声 本日のレス 投稿日:01/09/11 04:25 ID:07YBBjEM
>>161
なるほど、未読レスの表示ね。
だったらそう書けっての。
新レスの表示なんて分りづらいことこの上なし。

150 :125 :01/09/11 04:42
>>149
妙に省略した言葉にするからわかりずらいんだよね。
いっそ、最後の番号からってことだから、
 149-
とかにしてしまえばいいのでは。文字数減るし。

151 :デフォルトの名無しさん :01/09/11 04:54
>>146
透明あぼーんのときはどうするの?
つーか、rawモード転送に、rsync的な手法は使えないかな?

152 :デフォルトの名無しさん :01/09/11 04:59
あぼーん検出を無効にしたということなんだから
当然透明も、だと思われ

153 :デフォルトの名無しさん :01/09/11 05:23
過去ログdatやhtmlの位置を#defineで変更できるように
しておきませんか?
read.cgi 5.20が導入されてる鯖で、倉庫落ちしてhtml化
待ちしているスレが削除されたと勘違いしているカキコを
要望板でときどき見ます。

154 :125 :01/09/11 05:42
>>151
だから、sizeを積極的に使えと。
sizeを使わないツールは、削除があった時に正しいデータを取得できない。
そこんとこよーく考えてツールを作りなさい。

今までのツールだって、ファイルのサイズかなんかを使ってサイズ管理
してたんでしょ。

ツール作成を楽にするために付けたんではなく、部分転送もgzip化して
転送量削減のために付けた機能なんだから。

155 :125 :01/09/11 06:03
>>151
rsyncってCRCかなんかで、既存部分の同一性チェックしてるんじゃなかったかな。
sizeじゃなくてCRCにしますか?
nnn.sizeがnnn.CRCになった方がいいですか?
あぼーん検出の確実性は増えますが、サーバーの負荷も増えるし、
ツールのプログラム量も増えますが。

156 :名無し娘。 ◆vP.bOZFQ :01/09/11 06:47
>>146 >>154-155
話を蒸し返すようですが、あぼーん時はどんなツールに対しても強制的に
あぼーん済ファイルを全部転送しなすほうがよいと思うのですが。
あぼーん時に「正しいデータ」を取得させるべき動機は、読み手の利益のためというよりも、
2ちゃんねる本体で削除されたものはツール側でも削除されるべきであるという
ポリシーによると思うからです。透明あぼーんは例外的だし。
.dat直読み/直アクセスが不可になることも視野に入っているので、read.cgiが
あぼーんに敏感であることは、専用ツールに対してあぼーん強制をする最良の
手段となります。

157 :デフォルトの名無しさん :01/09/11 06:56
>>156
同意。sizeを使わない機能は無効にするかせめて
conditonで括るに一票。

158 :125 :01/09/11 07:02
>>156
うっ、本当にCRCにしたくなる話だ。
強制にもどすのは、&& raw_lastsize > 0を取るだけなんで一瞬です。
とりあえず、説明つきでコメントにしておきましょう。
ソースに運用ポリシー書いとかないと、理由を忘れていじっちゃいますから。

159 :デフォルトの名無しさん :01/09/11 07:10
>>134のcommitきぼーん。
>>83への対応にもなると思われ

160 :デフォルトの名無しさん :01/09/11 07:12
>>158 でもCRC実装したら それETagに流用できそうだね
っていうか もしそうなら専用ツールでもETag使ってもらうようにすればいいのか...

325KB
新着レスの表示

スレッドリストへ戻る 全部 前100 次100 最新50

0ch BBS 2004-10-30