0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

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

Last updated at Posted at 2021-08-06

#1. はじめに

GoogleのISBN検索結果から著者名とタイトルを取得するブックマークレット GetAuthorTitle - Qiita
国立国会図書館オンラインのISBN検索結果から著者名とタイトルを取得するブックマークレット GetAuthorTitleNDL - Qiita
の派生版です。

同人誌には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. 使用方法

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

駿河屋で同人誌を検索するか、あんしん買取検索で同人誌を検索するかして、商品を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 初版

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?