理系学生日記

おまえはいつまで学生気分なのか

はてなダイアリーライターを使っている人間が PC を入れ替えた後にエントリをポストしようとすると過去の全エントリがポストされる問題

~/.hatena/[hatena id]/diary/ に touch.txt をつくるんだ。とにかく!

touch ~/.hatena/kiririmode/diary/touch.txt

背景

この間 iMac 買ったんです iMac。
このブログのエントリ、git で管理してるから、iMac 側で git clone したんです、git clone。
でさ、その後にエントリ書いて simple-hatena-trivial-submit したらさ、過去のエントリがガンガン更新されてしまった。このエントリはそのような悲劇が世界に 2 度と起こらないようにするためのものです。


ぼくは simple-hatena-mode.el を使っておりまして、simple-hatena-mode.el ははてなダイアリーライター(はてダラ) を呼び出します。で、このはてダラですが、「前回ポストした後に更新されたものだけをアップロードする」という動作をするようになってます。直感的ですね。
それを実現するためのコードですが、以下のようになってます。

# Default file names.
my $touch_file = 'touch.txt';
my $cookie_file = 'cookie.txt';

(中略)

        while (glob("$txt_dir/*.txt")) {
            # Check timestamp.
            next if (-e($touch_file) and (-M($_) > -M($touch_file)));
            push(@files, $_);
        }

おっと、touch.txt のタイムスタンプより新しいエントリのみを処理対象にしている!!!!

というわけで、PC を変えた後はとりあえず touch.txt を作る。今後の鉄則にする。