generated at
✅カッコが文中にある作品が未購入扱いになる
2022/4/3 修正済 1.0.0(2022/4/3) uni/pull/112

ページを作成している作品が未購入扱いになる
検索クエリを調べると
刑部姫コスプレイヤーのフリをした刑部姫が何故か俺のサークルでコスプレ売り子している話
ページを作るときには
刑部姫コスプレイヤーのフリをした刑部姫(本人)が何故か俺のサークルでコスプレ売り子している話
検索クエリで (本人) が消えている
Scrapboxの検索APIの仕様が変わっているのかも?基素

原因
「娘の友だち (1) (コミックスDAYSコミックス)」を「娘の友だち」で検索できるように括弧を削除しているのが問題

対応
こうする
数字のカッコは最初に外す
(7) とか関数が書いてある
.replace(/\((\d+)\)/g, " $1 ")
行頭のカッコはラベルとみなして消す
(最新刊) (セール) みたいなものは消す
.replace(/^\(.*?\)/, "")
これが起きたらやめる
(かっこから始まるようなタイトル) があったらこれをやめて「最新刊」とか「セール」をブラックリスト形式にする
文中のカッコは外さない
どこまでが文中か探せばいいのかわからない
末尾のカッコはラベルとみなして消す
.replace(/\(([^)]*)\)$/, "")
これはダメだった
.replace(/\(([^)]*)\)[^(]*$/, "")
js
// 末尾にカッコがあれば期待通り動くが // 途中にカッコがあって末尾にない場合に、こうなってしまう "刑部姫コスプレイヤーのフリをした刑部姫(本人)が何故か俺のサークルでコスプレ売り子している話".replace(/\(([^)]*)\)[^(]*$/, "") '刑部姫コスプレイヤーのフリをした刑部姫'
こうなる
js
"(最新刊)刑部姫コスプレイヤーのフリをした刑部姫(本人)が何故か俺のサークルでコスプレ売り子している話 (1) (レーベル)".replace(/\((\d+)\)/g, " $1 ").replace(/^\(.*?\)/, "").replace(/\(([^)]*)\)$/, "") 刑部姫コスプレイヤーのフリをした刑部姫(本人)が何故か俺のサークルでコスプレ売り子している話 1 "刑部姫コスプレイヤーのフリをした刑部姫(本人)が何故か俺のサークルでコスプレ売り子している話".replace(/\((\d+)\)/g, " $1 ").replace(/^\(.*?\)/, "").replace(/\(([^)]*)\)$/, "") 刑部姫コスプレイヤーのフリをした刑部姫(本人)が何故か俺のサークルでコスプレ売り子している話
これを保証するテストを追加した

よくない対応
かっこがあったら、カッコが出る前までで検索する
「(最新刊) タイトル」のように先頭にカッコがあるパターンがある
まだこの形式に遭遇したことはない