LoginSignup
8
10

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-11-29

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ドキュメント>概要>利用制限。 

8
10
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
8
10