Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

21
20

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 5 years have passed since last update.

npm install時にpixivのデイリーランキングをターミナルに表示する

Last updated at Posted at 2016-03-29

みなさん、pixiv好きですか?わたしは好きです。日々色々な絵がアップロードされ、本当に楽しいですよね。
今回は、npm installの時間にpixivのデイリーランキングを表示して、退屈な時間を最高の時間にするハックをすることにします。

github: akameco/npm-pixiv

デモ

こんな感じです。

demo.gif

インストール

npmからインストールできます。
しかし、残念ながら最新版のiTerm2でないと画像が表示されません。iTerm2が最新版でない人はインストールをお願いします。

$ npm i -g npm-pixiv

npm-pixivというコマンドを提供しますが、.bashrcや.zshrcで以下のように設定するのがおすすめです。

.zshrc
alias npm=npm-pixiv

実装

実装については、実はほぼおなじ内容(ポプテピピック版)の記事を書いたので、そちらを参照してください。

npm installの無駄な待ち時間を圧倒的にカイゼンする方法 - Qiita

差異についてだけ説明をしようと思います。
pixivをスクレイピングし画像を取得していますが、pixivの画像はリファラが制限されています。
リファラのついての説明をググったらちょうどpixivのヘルプがでてきたので引用しておきます。

リファラとは、Webページのリンクをクリックして別のページに移動した際のリンク元(一つ前のページ)のページのことです。
pixiv ヘルプセンター|リファラとは何ですか?

これがどういうことかというと、pixivのサイトを経由せずに画像を表示しようとすると403が返るので閲覧することができないということです。これを制限しないと、いくらでも別のサイトのimgに埋め込まれてしまうのでこの対策は当然ですね。httpリクエストのヘッダーのRefererをhttp://www.pixiv.net/にすることで回避できます。
gotでは以下のように書きますが、他のhttpライブラリでも似た感じ書けると思います。

got(url, {
	encoding: null,
	headers: {
		Referer: 'http://www.pixiv.net/'
	}
}).then(res => res.body);

まとめ

以前、npm install時にポプテピピックの4コマを流していましたが、npm installを繰り返すごとに竹書房が破壊され罪悪感がありました。しかし、pixivのランキングを流すことで最高の気分でプログラミングができるようになりました。
むしろ今は、pixivのランキングを見るために無限にnpm installをするまであります。

75行程度の簡単なコードですが、普段のプログラミングが少し楽しくなりました。仕事のコードだけではなく、役に立つかどうかは置いといて小さなハックを楽しんでみるといいかもしれません。
なお、仕事中にこれを表示して怒られたなんて、そんな責任は一切負いませんのであしからず。

githubにて公開してるので、issueやプルリクエストをお待ちしております。
github: akameco/npm-pixiv

参考

npm installの無駄な待ち時間を圧倒的にカイゼンする方法 - Qiita
node.jsによるコマンドラインツール - Qiita
iTerm2の新機能を使ってターミナルにポプテピピックの4コマをランダムに表示する - Qiita

21
20
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

Qiita Conference 2025 will be held!: 4/23(wed) - 4/25(Fri)

Qiita Conference is the largest tech conference in Qiita!

Keynote Speaker

ymrl、Masanobu Naruse, Takeshi Kano, Junichi Ito, uhyo, Hiroshi Tokumaru, MinoDriven, Minorun, Hiroyuki Sakuraba, tenntenn, drken, konifar

View event details
21
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?