MeatPieDayのなんちゃってSyncを実装開始
ちょうどちょっと直したい事があったので、ついでにimportとsyncもどきを実装する事に。
以前欲しいと言ってた機能に近い物 MeatPieDayで複数端末同期を楽して実装したいなぁ
syncもどきは現状隠し機能っぽくて、最初のセルが、
IssueId: 数字
で、かつこの数字が一致する時だけ動くようになってる。
正式にやるならguidとかなんだろうけど、github issuesとかにあげる時に変なguid入ってるのダサいので、アドホックに。まぁ隠し機能という事で。
ipynbのmetadataに入ってる各セルのタイムスタンプを比べて、ipynbのタイムスタンプが大きい場合はセルを更新する。 さらに末尾に追加分があれば足す。
セルの削除とかが他方にだけあると、あまりうまく動きません。
これまで結構書いてきて、セルの削除をしたものをsyncしたい、と思った事は一度も無いので、たぶんあまり無いでしょう、と結論づける。
そもそも、だいたいがより新しいipynbを取り込みたい、というシチュエーションなので、その時が一番楽で安全になるように作りたい。 特殊な時は一回削除してインポートすれば良いので。
contentスキーム対応
一通り動いたのだが、最近はfileスキームだと怒られる、という事で、content resolverを使うように直したい。 というかDropBoxで使いたい。
InputStream自体はresolverから得られるのだが、今回はファイル名も欲しい。という事で、この辺を幾つかのアプリで調べて、display nameにだいたいファイル名が入るな、という事を確認して実装する。
この辺、コードの書き溜めがあるのでどうという事は無いが、知らない人がやるといろいろはまりそうだなぁ。cursorから取るとかひでぇAPIだよなぁ。
という事で完成ヽ(´ー`)ノ
しばらく使って問題無さそうなら一応リリースしよう。