銀の弾丸

プログラミングに関して、いろいろ書き残していければと思っております。

npmパッケージのダウンロード数をアカウント別に一括取得

f:id:takamints:20190209220050p:plain
Nervously Peeking Much Because I Love NPM

入門JavaScriptプログラミング
JD アイザック
翔泳社
売り上げランキング: 20,011

自分で公開しているパッケージのダウンロード数をまとめて取得したかったので、 npmのユーザーアカウントを指定して、そのアカウントが公開している全パッケージの直近ダウンロード数(前日・前週・前月)を表示するnpmパッケージを公開しました(ちょっとややこしいですね)。

目次

概要

npm-dlc というコマンドラインのツールです。npmユーザーの名前を指定して実行するとそのユーザーが公開しているパッケージの直近のダウンロード数を表示します。

npmではダウンロード数を取得するAPIはありますが、それ以外の情報を取得するのはありませんので、指定されたユーザーページをスクレイピングして、公開されているパッケージのリストを取得しています。

www.npmjs.com

インストール

npmでグローバルにインストールしてください。

$ npm install -g npm-dlc

使い方

グローバルインストールすると、‘npm-dlc‘ というコマンドが使えるようになります。 npmのユーザー名を指定すれば、そのユーザーが公開しているパッケージのダウンロード数を表形式で表示します。

$ npm-dlc <user-name>[ <user-name> ... ]

出力サンプル

以下は実際の出力結果(vzg03566は私です)。 各パッケージの最新バージョンと公開された大まかな時期も一緒に表示します。

$ npm-dlc vzg03566
 
Download count of public package published by vzg03566.
(https://www.npmjs.com/~vzg03566)
 
-------------------- ------- ------------ ----- ------ -------
NAME                 VERSION PUBLISHED    DAILY WEEKLY MONTHLY
-------------------- ------- ------------ ----- ------ -------
hash-arg             0.3.3   a year ago       0     17      65
list-it              0.4.1   2 years ago     17    101     324
aws-node-util        0.9.9   7 months ago     0     42     168
mz700-js             1.0.6   13 days ago      0    224    1042
yea-stringify        1.0.1   2 years ago      2      5       9
minty-mocha          1.0.0   2 years ago      0      3       6
fractional-timer     1.0.2   2 years ago      0      4      19
transworker          1.2.1   a month ago     12     19     103
b-box                0.1.2   9 months ago     0      7      23
dock-n-liquid        0.5.3   9 months ago     0     15      50
fullscrn             1.3.1   2 years ago      0      9      40
svg-z-order          1.2.1   2 years ago      2     16      55
parse-int-array      0.9.0   2 years ago      0      3       8
rough-name           1.0.0   2 years ago      1      3      15
exl                  0.1.0   8 months ago     1      2       5
local-lambda-invoker 1.0.0   7 months ago     0      1       4
lex-bnf              0.2.0   7 months ago     0      7      16
gdrive-fs            1.1.2   3 months ago     0      5      17
-------------------- ------- ------------ ----- ------ -------
This list was created at 2019-2-9 12:40:34
 

あとがき

このプログラム、実は数年前にPHPで書いていたので今回Node.jsへ移植した感じです。 驚いたのはその速度。一瞬で終了するではありませんか。PHPは非同期処理が書けない(?)からでしょうかね。あー驚いた。

コンソールへの出力は、list-it を使用してます。

takamints.hatenablog.jp