✅カッコが文中にある作品が未購入扱いになる
2022/4/3 修正済 1.0.0(2022/4/3) uni/pull/112
DLsite maniax
ページを作成している作品が未購入扱いになる
https://www.dlsite.com/maniax/work/=/product_id/RJ233716.html
検索クエリを調べると
刑部姫コスプレイヤーのフリをした刑部姫が何故か俺のサークルでコスプレ売り子している話
ページを作るときには
刑部姫コスプレイヤーのフリをした刑部姫(本人)が何故か俺のサークルでコスプレ売り子している話
検索クエリで(本人)が消えている
✅【推しの子】 のようなタイトルで検索結果がバグるの問題と似ている
Scrapboxの検索APIの仕様が変わっているのかも?基素.icon
原因
「娘の友だち (1) (コミックスDAYSコミックス)」を「娘の友だち」で検索できるように括弧を削除しているのが問題
対応
こうする
数字のカッコは最初に外す
(7)とか関数が書いてある
.replace(/\((\d+)\)/g, " $1 ")
行頭のカッコはラベルとみなして消す
(最新刊)(セール)みたいなものは消す
.replace(/^\(.*?\)/, "")
これが起きたらやめる
(かっこから始まるようなタイトル)があったらこれをやめて「最新刊」とか「セール」をブラックリスト形式にする
文中のカッコは外さない
どこまでが文中か探せばいいのかわからない
末尾のカッコはラベルとみなして消す
.replace(/\(([^)]*)\)$/, "")
これはダメだった
.replace(/\(([^)]*)\)[^(]*$/, "")
https://gyazo.com/c9a2f175e32c264cea9907100cbdf7d7
javascript - Regex for getting text between the last brackets () - Stack Overflow
code:js
// 末尾にカッコがあれば期待通り動くが
// 途中にカッコがあって末尾にない場合に、こうなってしまう
"刑部姫コスプレイヤーのフリをした刑部姫(本人)が何故か俺のサークルでコスプレ売り子している話".replace(/\((^)*)\)^(*$/, "")
'刑部姫コスプレイヤーのフリをした刑部姫'
こうなる
code:js
"(最新刊)刑部姫コスプレイヤーのフリをした刑部姫(本人)が何故か俺のサークルでコスプレ売り子している話 (1) (レーベル)".replace(/\((\d+)\)/g, " $1 ").replace(/^\(.*?\)/, "").replace(/\((^)*)\)$/, "")
刑部姫コスプレイヤーのフリをした刑部姫(本人)が何故か俺のサークルでコスプレ売り子している話 1
"刑部姫コスプレイヤーのフリをした刑部姫(本人)が何故か俺のサークルでコスプレ売り子している話".replace(/\((\d+)\)/g, " $1 ").replace(/^\(.*?\)/, "").replace(/\((^)*)\)$/, "")
刑部姫コスプレイヤーのフリをした刑部姫(本人)が何故か俺のサークルでコスプレ売り子している話
これを保証するテストを追加した
よくない対応
かっこがあったら、カッコが出る前までで検索する
「(最新刊) タイトル」のように先頭にカッコがあるパターンがある
まだこの形式に遭遇したことはない