さあもん写真館でなく、さあもん写心館です。
 
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
Twitterでつぶやく
2ちゃんねるアクセスサーバプログラムのrep2を愛用してたりするんですが、これがなかなか便利。
常時稼動のサーバマシンさえ用意できれば、PCとケータイでアクセスした履歴を共有できるし、YouTubeはインライン展開してくれる。
phpスクリプトで書かれているので、phpがわかれば改造も可能、と。

そんなわけで、本家を他の人が拡張したものに、さらに手を入れて使っていました。

本家が新しいバージョンになったので、とりあえず導入して、今までの改造部分のうち、一番規模の大きいものを移植して、diffでパッチを作って、該当スレに投下してみました。

今までの使い勝手を維持しようとすると、新しいバージョンを使おうとするたびにソースコード変更を余儀なくされるため、本家の人が取り込んでくれるといいなぁ、という淡い期待をしてたんですが、本当に採用されました

本家の人が改造部分のコードの有用性を認めてくれた、ということになるので、うれしいです。

82 :名無しさん@お腹いっぱい。:2009/05/05(火) 20:18:45 ID:q2UNqJK+0
v1_8_44 レスアンカー認識を拡張
 全角数字に対応
 >>aa-bb,cc,dd-eeなど、範囲を列挙できるようにした
 名前欄のレス番号を複数認識するようにした

http://pastie.org/468564

84 :aki ◆...p2/2... :2009/05/06(水) 01:25:18 ID:C9ZOGVwF0
>>82
パッチ乙です!
次のバージョンに取り込んでみました。

85 :82:2009/05/06(水) 06:01:56 ID:bUVktzbN0
>>84
ちょっと修正漏れがありました。

lib/ShowThreadPc.php
function checkQuoteResNums

- $quote_res_nums_msg = $this->thread->getQuoteResNumsMsg($msg);
+ $quote_res_nums_msg = $this->thread->getQuoteResNumsMsg($msg,
+ "/{$this->anchor_regex['prefix']}({$this->anchor_regex['ranges']})/",
+ "/(?:^|{$this->anchor_regex['delimiter']})({$this->anchor_regex['a_num']})(?!{$this->anchor_regex['range_delimiter']})/"
+ );

lib/ThreadRead.php
function getQuoteResNumsMsg($msg,
$pattern_anchor='/(?:>|>)+ ?([1-9](?:[0-9\\- ,=.]|、)*)/',
- $pattern_num='/[1-9]\\d*/'
+ $pattern_num='/([1-9]\\d*)/'
)

- foreach ($matches[0] as $a_quote_res_num) {
- $quote_res_nums[] = $a_quote_res_num;
+ foreach ($matches[1] as $a_quote_res_num) {
+ $quote_res_nums[] = (int)mb_convert_kana($a_quote_res_num,"n");


86 :aki ◆...p2/2... :2009/05/06(水) 06:12:24 ID:C9ZOGVwF0
>>85
了解ですー

87 :82:2009/05/06(水) 06:28:35 ID:bUVktzbN0
lib/ShowThreadPc.php
lib/ShowThreadK.php の

{$qsign}{$appointed_num}
 の部分を
{$full}
 に変更すると幸せかもしれません。

(こう変更すると、アンカー認識された全角数字が表示上半角数字に変換されない)

88 :aki ◆...p2/2... :2009/05/06(水) 06:50:28 ID:C9ZOGVwF0
>>87
おぉ、そうしましょう。

94 :82:2009/05/06(水) 22:09:16 ID:bUVktzbN0
akiさん、
lib/ThreadRead.phpの
getQuoteResNumsMsg関数ですが、

if (preg_match_all($pattern_num, $numberq, $matches, PREG_PATTERN_ORDER)) {
foreach ($matches[1] as $a_quote_res_num) {

の部分を

if ($matches=preg_split("/{$this->anchor_regex['delimiter']}/", $numberq)) {
foreach ($matches as $a_quote_res_num) {
if (preg_match("/{$this->anchor_regex['range_delimiter']}/",$a_quote_res_num)) { continue;}

な感じにしたほうが分かりやすい気がするのですが、どうでしょう。

アンカーの正規表現をどうやって引っ張ってくるかが問題ですが。

95 :aki ◆...p2/2... :2009/05/07(木) 22:55:12 ID:h8cHbGWj0
>>94
そうしてみました。

>アンカーの正規表現をどうやって引っ張ってくるかが問題ですが。
これはgetQuoteResNumsMsg()のメソッド自体を(getQuoteResNumsName()なども)
ShowThreadクラスに移しました。
(コードは次のバージョンで)

Twitterでつぶやく
コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
http://thermon.blog82.fc2.com/tb.php/606-babd56fd
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。