npmパッケージのダウンロード数をアカウント別に一括取得
Nervously Peeking Much Because I Love NPM
自分で公開しているパッケージのダウンロード数をまとめて取得したかったので、 npmのユーザーアカウントを指定して、そのアカウントが公開している全パッケージの直近ダウンロード数(前日・前週・前月)を表示するnpmパッケージを公開しました(ちょっとややこしいですね)。
目次
概要
npm-dlc
というコマンドラインのツールです。npmユーザーの名前を指定して実行するとそのユーザーが公開しているパッケージの直近のダウンロード数を表示します。
npmではダウンロード数を取得するAPIはありますが、それ以外の情報を取得するのはありませんので、指定されたユーザーページをスクレイピングして、公開されているパッケージのリストを取得しています。
インストール
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 を使用してます。