日記はMarkdownで書いていてこの日記システムはWebフォームがあるが、直接Webフォームで日記を書くことはなく、下書きをMarkdownで書いた上でGithubで管理している。こうすることで複数端末で続きが書けるので便利。ありがたや。
基本的にはコンソールでvimで編集しており、書き上がったらクリップボードに保存し、ブラウザを開いてWebフォームを開いて貼り付ける、なんて言う面倒なことをしていた。結構手間だなぁ、と思っていたので思い切って自動化することにした。
下書きファイルは日付で管理しており、ファイル名は yyyy-mm-dd.md
の形式になっている。ファイル名を引数として実行し、その日の日付の日記を全部書き換えると言う結構乱暴なSeleniumのスクリプトを書いた。
これにより日記を書いたらScriptに日記ファイルを食わせることでブラウザをわざわざ起動してマウス操作で日付を設定して、なんて言う一連の動作が自動化されてとても楽になった。わーい。
そっか、日付を指定してフォームをクリアにしたら追記出来るかと思ったけれどよくよく考えたら1日に複数記事を書ける仕様なので追記としたいならば別記事の「編集」画面に入ってから編集する必要があるのだった。
1日1記事にしているからファイル名をキーにして、スクレイピングして同日の日記があったらその日記の編集画面に入って編集する、と言う条件分岐を付け加えないとダメですね。
日記への写真投稿はスマホから直接が楽なので、写真投稿後の日記本文をadiaryからpullしてくるScriptも書かないとダメだ。結構めんどいな。
コードをちょこっと追加して追記に対応してみた。追加したコードとしては日記のタイトルが日付になるのでその日付で検索、検索結果の有無によって既存の記事の編集か新規の記事かの条件分岐を追記してみた。
日記本文はNotePCやリモートデスクトップでつないだ先のLinuxPCなどで執筆するが、写真の投稿については普通にWebUIを使うのが楽。adiaryはそのあたりがとても良くできていると思う。写真をアップロードして日記に貼り付けると日記にIMGタグ相当が追記されるので、その情報はローカルに持ってきて日記の追記に対応出来るようにしたい。と言うコトでadiary側からPullしてくるScriptも作成した。
これで基本的に希望していたコードが揃ったかな。
- 新規の日記をSeleniumを使って書き込む
- その日の日記をすでにUploadしていたら追記する
- 写真追加などScript以外からUpdateした情報をPullしてくる
今朝思い立ってSeleniumのScriptを書き始めて6時間位かかっちゃったけれど、これで今後だいぶ楽になると思うので日記生活を楽しみたい。
さてこれらツールを作ったところでよりリアルタイムに更新できるかな?と言うと、それはまた別の話。昔はircの合間に仕事する、位の感じで時間に余裕もありかなりタイムリーに日記を更新していた記憶があるけれども、最近は本当にSlackやtwitterなどを仕事中に見ている暇がないくらい忙しいので、少しは頻度増えるかなとは思うけれども、常に手元に日記が書けるコンソールがあるかと言うとそうでもないので、そこが解決しないと頻度は変わらない気もする。
とは言え、かなり手間が減ったのは間違いない。
近所に住む先輩と酒宴。本当は居酒屋さんで飲む筈だったのだけれどお店が臨時休業しており先輩の家で飲むことに。
気持ちよく飲んでいたらいつの間にか先輩が眠ってしまい帰れなくなる。ひー。昔ながらのアパートとかなら鍵を借りて外から鍵を掛けてドアポストに鍵を入れておくって出来るんだけれど、最近の家だとそーゆーのが無いですね。ちょっと不便。
結局一眠りして起きるのを勝手にゲームとかして遊んで待つことに。
先輩宅にプレステ5があって初めてまともに触った。4K出力なのかな、凄いグラフィックがキレイで驚いた。しばし65インチのブラビアでStreetFighter6を遊ぶ。格闘ゲームはアーケードコントローラーないとまともに技が出ないなぁ。