Qiita
QiitaAPI
bookmarklet

Qiita記事のストック数を確認するbookmarklet

2017/11/29追記:API制限に気づいて修正
2017/12/01追記:レイアウト変更で使えなくなりました。気が向いたらなおします。
2017/12/01追記:2017/12/1のレイアウト変更に対応しました。
2017/12/03追記:<100100^に変えました。(どちらにせよ、しっくり来てないのでいい表現あれば知りたい・・・)
2017/12/03追記:100^100+に変えました。

はじめに

どれくらいストックされているのか気になったので、先人のbookmarkletを修正してみた。
先人:ストック数用のbookmarklet・・・v1版なので動かず
先人の先人:Qiitaの「いいね」に消された「ストック数」を復活させた・・・だいぶ前の奴なので動かず

bookmarklet

対象記事のみ

  1. URL欄に以下のコードを貼り付けたブックマークを作る。
  2. ストック数を見たいQiita記事を開いた状態で、1のブックマークを押下する。
  3. ストックボタン付近の表示が変わって、ストック数が見える。
javascript:(() => {
    let path = window.location.pathname
    , itemId=path.substr(-20, 20)
    , url = `https://qiita.com/api/v2/items/${itemId}/stockers?per_page=100`;
    if (path.match(/items/)) {
        $.ajax({
            url: url,
            success :(t) => {
                var over = (Object.keys(t).length == 100) ? "+" : "";
                const stockerLink = $(`<a href="${url}">${Object.keys(t).length}${over}</a>`);
                $(".it-Actions_item-stock").append(stockerLink);
            },
            error:() => {
                alert("qiitaStock request error");
            },
            dataType:"json",
            timeout:3e3}
        );
    }
})()

注意事項

  1. APIの都合で100以上の場合は、100+と表示します。
  2. あんまり実行すると「Rate limit exceeded」で怒られてしばらく使えなくなります。用法用量1を守ってお使いください。
  3. stockersのリンクは、JSONファイルを生表示します。 JSON-viewrとかの拡張機能をブラウザに入れてご確認くださいませ。

もう使えないおまけ

2017/12/1のレイアウト変更で使えなくなりました。
もともと使い勝手も良くないので、修正するつもり無いですが、一応残しておきます。

検索結果の一覧全て

  1. URL欄に以下のコードを貼り付けたブックマークを作る。
  2. 記事検索した状態で、1のブックマークを押下する。
  3. 右端くらいにストック数が見える。
javascript:(() => {
    $(`.searchResult`).each(function(i, elem) {
        var itemId = $(elem).attr(`data-uuid`);
        var url = `https://qiita.com/api/v2/items/${itemId}/stockers?per_page=100`;

        $.ajax({
            url: url,
            success :(t) => {
                var over = (Object.keys(t).length == 100) ? " over" : "";
                var html = `<li>stockers:<a href="${url}">${Object.keys(t).length}${over}</a></li>`;
                $(elem).find(`.searchResult_sub`).find(`ul`).append(html)
            },
            error:() => {
                alert("qiitaStockList request error");
            },
            dataType:"json",
            timeout:3e3}
        );
    });
})()

以上



  1. 1時間に60回。詳細は、QiitaAPIv2ドキュメント>概要>利用制限。