pixiv小説を一瞬で
Kindleに送るやつ
作った
@hakatashi
2016-07-15 pixiv社内勉強会 LT
いきなりデモ
しくみ
技術紹介
Chrome拡張機能
YEOMAN
- Web系のいろんなアプリケーションを一瞬でscaffoldするやつ
- generator-chrome-extensionを使用した
Browserify
- いつもの
- requestとかcsv-parseとかのnpmモジュールを使いたかった
- requestをBrowserifyすると1.8MBになってやばい
実際に通信されるデータ
$ curl -XPOST -k https://api.hakatashi.com/pixiv2kindle/publish \
-d "id=7011338" -d "auth=xxxxxx"
"{""event"":""Remote App Started""}"
"{""event"":""Retrieved Novel Data""}"
"{""event"":""Converted to HTML""}"
"{""event"":""Created EPUB File""}"
"{""event"":""Retrieved EPUB data""}"
"{""event"":""Converted to mobi""}"
"{""event"":""Delivered Mail to Kindle""}"
_人人人_
> CSV <
 ̄Y^Y ̄
$ curl -XPOST -k https://api.hakatashi.com/pixiv2kindle/publish \
-d "id=7011338" -d "auth=xxxxxx"
"{""event"":""Remote App Started""}"
"{""event"":""Retrieved Novel Data""}"
"{""event"":""Converted to HTML""}"
"{""event"":""Created EPUB File""}"
"{""event"":""Retrieved EPUB data""}"
"{""event"":""Converted to mobi""}"
"{""event"":""Delivered Mail to Kindle""}"
- サーバーで発生したイベントはlong-pollingでリアルタイムに送られる。
- CSVはストリーミングと相性が良いのでしゅき……
- Node.jsならrequest().pipe(csvParse())するだけ
APIサーバー
Node.js
今回の実装のためにnpmモジュールを2つ作った
Mailgun
- REST APIでメールを送信できる
- 月10000通まで無料
- ダッシュボードでメールの送信状況をチェックできる
kindlegen
- EPUBをMOBIに変換するAmazonの公式ソフトウェア
- これを使って.mobiを生成しないとKindleでの表示は保証されない
Androidアプリ
NativeScript
- JavaScriptでモバイルアプリを書ける星の数ほどあるフレームワークの一つ
- これは名前の通りCSSやJavaScriptをネイティブのコードに変換してくれる
- 結局Androidのドキュメントを見ながらがりがり書くので、途中から「これJavaScriptじゃなくてJavaじゃね?」という気分になった
Toast
- これの名前が最初わからなかった
- 「画面下部にシュッと出てシュッと消えるやつ」でぐぐっても出てこない
- @496_に教えてもらった
- 名前だけでもいろいろ知っておくの大事
関連リポジトリ
おしまい
pixiv小説を一瞬でKindleに送るやつ
By Koki Takahashi
pixiv小説を一瞬でKindleに送るやつ
2016-07-15 pixiv社内勉強会 LT
- 6,926