ことのはじまり
Qiitaに記事書きたいけどブラウザ開いていちいちQiitaのエディタ開くのめんどいな〜
Vim
使ってMarkDown
で記述してアップロードしたいな〜
よっしゃ作ったろ!
Qiita に記事をアップロードするコマンド
漠然としたイメージとしては、手頃なテキストエディタでarticle.md
のようなファイルを作成し、
$ qiitacli upload [記事のtitle] article.md
と叩いたら記事がアップロードされるイメージ。Python
とClick
というモジュールを使ったらできそう。
なぜPython
なのかと言うと私が一番使い慣れているからです。
Qiita API v2
QiitaにはQiita API v2
というAPIがあります。
これを利用すればQiitaに関する操作はだいたい何でもできそう。
qiita_2
こういうのはたいてい誰かがもう作っているものなのでPyPI
でqiita
とか入れて検索してみたらありました。
ありがたく使わせていただきましょう。
開発の準備あれこれ
私がPythonで開発する時は以下のことを意識して開発しています。
- テストを書く(
pytest
利用) - コード整形ツールを使う(
flake8
,autopep8
,autoflake
,isort
利用) -
PyPI
にアップロード出来るようにsetup.py
とsetup.cfg
を作る
今回は更に以下の事にも挑戦してみました。
- Travis CIを利用した自動テストの設定
- Codecovの利用したコードカバレッジの計測
GitHubとか見てるとよくある
このバッチを付けたかっただけですw
作った
ひとまず作ってみました。
この記事もこのコードを使って上げています。
Qiitaの個人用アクセストークンを利用して、記事の一覧・公開・編集・削除だけ出来るようになりました。
とりあえず最低限。
課題
このままだとMarkdown
形式の文章をアップロードするだけなので、画像を付けたり細かい装飾は出来なさそう。
もともと簡単なメモとかでもどんどん記事にしていこうと思って作ったものなのでとりあえずそこまではいいかなって感じです。
気が向いたら改良して見るかも。
作っていて思ったこと
Travis CI は2回くらい使ったことがあったのでなんとなくわかっていました。
ただ、使ったことがあったのがまえすぎてテストコードを書くのに慣れていなかったのであんまり恩恵を感じられなかったんですよね...
最近ようやくpytest
を使ったテストコードをかけるようになってきたので、自動テストのありがたみがマシマシでした。
あとCodecovに関しては今回完全に初見でした。
コードのカバレッジ自体最近計測するようになった者なので、カバレッジを見れたりテストが通っていないコードを眺められるのはとてもよかったです。
カバレッジを100%にしたい衝動にかられるけどそもそもカバレッジを上げるだけの無駄なテストコードを量産する意味もわからないしああああって感じ、
いろいろやってみて試してみてって感じですね。