はてなダイヤリーのテキストバックアップ

300回達成記念。
 今回が301回目です。

■はてなブログの場合は以下。

 はてなブログのテキストバックアップ
 http://labunix.hateblo.jp/entry/20130623/1371986423

■はてなダイヤリーも過去に何度か書いた。

 はてなダイヤリーのテキストモードバックアップ
 http://labunix.hateblo.jp/entry/2012/03/03/224721

 はてなダイヤリーのRSS2からユーザの最新記事のテキストバックアップを取得する
 http://labunix.hateblo.jp/entry/2012/04/29/184047

■今回のはてなダイヤリーテキストモードバックアップはシンプルに。
 以下で過不足無く取得できる。

$ test -d test || mkdir test; cd test
$ cat my_d.hatena_backup.sh
#!/bin/bash

USER="labunix"
URL="http://d.hatena.ne.jp/${USER}/archive"
curl "$URL" 2> /dev/null | \
  grep "archive.word=.of" | \
  awk -F\" '{print $2}' | \
  sed s/".*="//g | \
  sort -u -n | \
  for n in 0 `xargs`;do \
    curl "${URL}?word=&of=${n}" 2> /dev/null | \
    grep "class=.archive.*${USER}" | \
    sed  s%".*a href=*"%%g | \
    awk -F\" '{print $2}' | \
    for list in `xargs`;do \
      LOG=`echo "$list" | sed s%".*${USER}/"%%g | sed s%/%_%g`; \
      echo "$LOG" | grep [A-z] || \
        test -f "$LOG" || \
        w3m -dump -cols 1000 "$list" > "$LOG"; \
    done
  done
unset n list LOG URL USER 
exit 0

■実行

$ ./my_d.hatena_backup.sh; ls 20* | wc -l
300