pixivFANBOXをマークダウン記法で書きたい
はてなブログのサードパーティーツールみたいに、マークダウンで書いて CLI からリポジトリと同期みたいなことがしたい!
FANBOX の WISYWIG はシンプルで、それはそれでいい
ただ自分はマークダウンで書きたい!
リポジトリの状態を FANBOX に反映する形にしたい
textlint など
main にマージしたら FANBOX に反映
特にツールとか作ってる人いないし、リハビリがてらツールを作ってみるか
怒られたらやめる
既存の実装
FANBOX 用のツールでそれらしいのは公式でもサードパーティーでもまだ無さそう
blogsync が理想形
はてなブログ用のツール
はてなブログには AtomPub 実装があり、これを使っている
どう sync しているのか
blogsync pull で記事を手元に持ってくる
以降 pull すると新しいエントリのみがダウンロードされるらしい
例えばウェブブラウザで何か記事を編集しても、その変更は手元には pull できないってこと?
blogsync push <path> で記事を更新する
blogsync post <blog> < <body> で記事を投稿する
sync コマンドを叩いたら、ローカルのファイルをもとにすべて記事を投稿・更新・削除とかしたら楽かなと思ったけど、実装大変そうだし...通信も無駄に多そう
blogsync の形式でいこう
書き始めた。
通信を眺める
一覧取得
投稿取得
投稿・更新
リクエスト { "type": "article" }
レスポンス { "postId": "\d+ で構成される string" }
タイトルや本文が空の記事が作成される
リクエストは JSON でも application/x-www-form-urlencoded でもなく、multipart/form-data
思ったより結構シンプルだし、実装できそうな気がする
認証
cookie
FANBOXSESSID のキーの中にセッション ID が入っている
X-CSRF-Token
ウェブブラウザでログインした後、JSON.parse(document.querySelector("#metadata").content).csrfToken で得られる値をセットする必要がありそう
しばらくこの値は使いまわせそうな感じがする