esa.ioの記事を取得して別のesa.ioにインポートするスクリプトを書いてた

docs.esa.io


ソース

github.com

用途

foo.esa.io の記事を取得して bar.esa.io に記事を移す。

使い方

  • 各種Configに値を設定した上で以下を実行する。
bundle exec ruby import_and_export.rb


※アクセストークンは esa.io の SETTINGS > Applicationsから Personal access token を generate できる。


作った理由

foo.esa.io から bar.esa.io に記事を移したくなったため。
# foo.esa.io のadmin権限がなく記事zipが取得できなかったので、Export処理を書く必要があった。

余談

Revisionsを見ればわかる通り、最初はクラスを分けずペライチで書いてた。
途中でクラス/モジュールを使うように書き直したけど、定数の置き場所がしっくりきていない。(素直にYAML書いた方が良さげだけど別ファイル用意したくない…)
全体的にもうちょっとうまくできなかったのか感があるし、パラメータの抽出を Exporter に置いているのも気になる。
あと、そのまま記事をインポートするとesaにアップロードしている画像URLやesa記事リンクは元のesaを参照してしまうので、そのあたり置き換える処理も必要かなって今思った。

色々どうかと思うけど、どういう書き方がベターなのか調べてるうちに一日が余裕で潰れたので一旦これで。
この程度のスクリプトはシュッと書けるようになりたい。。