FF14のロドストをエクスポートするツール作り
FF14には、ゲーム外にThe Lodestoneというサービスがあります
ロードストーン、通称ロドスト
プレイヤーは、ロドストに日記を書くことができます
日記を読むことは、プレイヤーでなくてもできます
スクエニ唯一のブログサービス?
ロドストには、日記のインポート/エクスポート機能が無いようです
WordPressとか見てると
あるのが当たり前、という感覚だったので
本当にないのか、ロドスト上で質問したりもしました
FF14のプレイ日記を書いてる人は、プレイヤーのうち
ほんの一握りのようです
ロドスト外のブログサービスを使ったり
自分のドメインを取って更新してる人も多いです
私もそのうちFF14を引退するのでしょうが
すでにロドストに100記事以上書いたので
消えちゃうのはイヤだなー、と思ったので
エクスポートツールを作ることにしました
ロドストには
記事一覧を取得できるようなAPIや
FeedのURLは無いようです
のようなURLで、記事一覧を閲覧できます
記事をクリックすれば
のようなURLで、各記事を見られますここまでは、ログインしてない人でも見られるエリア
では、こうやって表示された記事の
本文部分の文字列を、テキストファイルとしてダウンロードすれば
エクスポートできたことになるか……?
否ッ!
ロドストには、ロドスト記法みたいなのもあるし
画像やリンクの埋め込みもあるし
プレーンテキストモードとリッチモードの違いもある
できれば、編集画面で見てるような
素のプレーンテキストをエクスポートしたい
編集画面は
のようなURLで表示できるけど自身のFF14のアカウントでログインした状態でなければ
「このページを表示するにはログインが必要です」と表示されるのみ
そして、エクスポート用のツールだって
ログインしてない他人みたいなものだから
編集モードに入ることはできない
それを解決するには、ロドストのIDとパスワードを
ツールに入力してもらって、スクレイピングする方法が考えられる
IDとパスワードは、ヘッドレスブラウザがログインに使ったら
もうコード内部では使わず捨てるだけだけど
この、一瞬でもユーザーに入力させちゃってる
というのが、抵抗感ある……
ツールにGUIを持たせて、画面から入力してもらうにしろ
CLIにして、引数で伝えてもらうにしろ
もし自分がユーザーだったら、その仕様のツールは
コードを全部読まない限り、使うのが怖い……
なので、Chrome拡張機能として作ることにしました
ユーザーがブラウザで
ロドストにログイン済みの状態から始めて
ブラウザ右上にあるツールのボタンを押すことで
ログイン済みのロドストに対するクロールを開始し
各記事の編集画面に次々と
(サーバーに負荷を掛けない、人間と同じくらいのスピードで)入って
プレーンテキストとして取得しては、配列にpushしてくわけです
最後に、その配列をzipにまとめて
ダウンロード開始するポップアップを表示すればOK