駿河屋の商品ページまたは買取商品ページから同人誌のサークル名とタイトルを取得するブックマークレット GetCircleTitle

#1. はじめに

[GoogleのISBN検索結果から著者名とタイトルを取得するブックマークレット GetAuthorTitle - Qiita](https://qiita.com/mayo00/items/4cfba983de23b0b56369)
[国立国会図書館オンラインのISBN検索結果から著者名とタイトルを取得するブックマークレット GetAuthorTitleNDL - Qiita](https://qiita.com/mayo00/items/0f3e57b76c3df5fcd04b)
の派生版です。

同人誌にはISBNのようなものがないので、タイトルをだいぶ入力して検索しないといけないので、あまり省力化はできず、サークル名の入力を省ける程度です。
大量に同人誌をスキャンするため、わずかでも省力化できるように作成しました。
サークル名が書かれている箇所を探す手間が省けて、結構楽になります。

先の2つのブックマークレットと異なり、検索結果から取得するのではなく、商品ページまたは買取商品ページから取得します。

#2. ソース

ブックマークレット用1行版

```GetCircleTitle.js
javascript:(function(){/*GetCircleTitle v1.02*/var i,j,h1,it,itt,t,tt,tp,s1,idx,sc,st,sp,s="";it=document.getElementById("item_title");if(it!==null){itt=it.textContent;s1=itt.split("/");sc=s1[1].trim();st=s1[0].trim();idx=st.indexOf(">>%20");if(idx>=0){st=st.substr(idx+3);}s="["+sc+"]%20"+st;}else{t=document.getElementById("title");if(t!==null){tt=t.textContent;s1=tt.split("/");sc=s1[1].trim();st=s1[0].trim();idx=st.indexOf(">>%20");if(idx>=0){st=st.substr(idx+3);}s="["+sc+"]%20"+st;}else{tp=document.getElementsByClassName("title_product%20mgnB15");if(tp[0]!==null){tt=tp[0].textContent;s1=tt.split("/");sc=s1[1].trim();st=s1[0].trim();idx=st.indexOf(">>%20");if(idx>=0){st=st.substr(idx+3);}s="["+sc+"]%20"+st;}}};if(s==""){alert("none")}else{if(navigator.clipboard){navigator.clipboard.writeText(s).then(()=>alert(s),()=>alert(s+"%20をクリップボードにコピーできませんでした。"))}}})()
```

整形版

```GetCircleTitle.js
javascript:(function(){
  /* GetCircleTitle v1.02 */
  var i, j, h1, it, itt, t, tt, tp, s1, idx, sc, st, sp, s="";
  it = document.getElementById("item_title");
  if (it !== null) {
    itt = it.textContent;
    s1 = itt.split("/");
    sc = s1[1].trim();
    st = s1[0].trim();
    idx = st.indexOf(">>%20");
    if (idx >= 0) {
      st = st.substr(idx + 3);
    }
    s = "[" + sc + "]%20" + st;
  } else {
    t = document.getElementById("title");
    if (t !== null) {
      tt = t.textContent;
      s1 = tt.split("/");
      sc = s1[1].trim();
      st = s1[0].trim();
      idx = st.indexOf(">>%20");
      if (idx >= 0) {
        st = st.substr(idx + 3);
      }
      s = "[" + sc + "]%20" + st;
    } else {
      tp = document.getElementsByClassName("title_product mgnB15");
      if (tp[0] !== null) {
        tt = tp[0].textContent;
        s1 = tt.split("/");
        sc = s1[1].trim();
        st = s1[0].trim();
        idx = st.indexOf(">>%20");
        if (idx >= 0) {
          st = st.substr(idx + 3);
        }
        s = "[" + sc + "]%20" + st;
      }
    }
  };
  if (s == "") {
    alert("none")
  } else {
    if (navigator.clipboard) {
      navigator.clipboard.writeText(s).then(
        ()=>alert(s),
        ()=>alert(s + "%20をクリップボードにコピーできませんでした。")
      )
    }
  }
})()
```

#3. 使用方法

まずブックマークレットとしてブラウザのお気に入りに登録して下さい。

[駿河屋](https://www.suruga-ya.jp/)で同人誌を検索するか、あんしん買取検索で同人誌を検索するかして、商品を1つ選んで下さい。表示されたらブックマークレットを実行して下さい。
「[サークル名] タイトル」の形でアラートを表示しつつクリップボードにコピーされます。
引っかからない場合、「none」とアラートを表示します。

普通の検索で見つからないタイトルでも、あんしん買取検索で引っかかる場合があります。

たまにクリップボードにコピーされないことがありますが、ページをリロードすると直ります。買取商品ページで何回かリロードしないと取得できないことがあります。

#4. 解説

駿河屋の商品ページまたは買取商品ページに合わせてサークル名とタイトルを取得します。

Windows 10＋Google Chrome 92で動作確認しています。

#5. 改版履歴

2022/01/03 v1.02 クリップボードにコピーされなくなっていたのを修正。(Promiseを受けていなかったのを修正)
2021/08/09 v1.01 駿河屋本体に在庫がなく商品ページがマーケットプレイス一覧になった場合に対応。
2021/08/07 v1.00 初版