まーぽんって誰がつけたの?

iOS→Scala→インフラなおじさん技術メモ

削除してしまったはてなブログの記事をMac OS XのChromeのキャッシュからhtmlとして復元する方法

勉強会に行ったときPCを忘れてしまったので、iPhoneはてなブログアプリで下書き書いてみようと思ってやってみました。

家に帰って、PCで引き続き編集してブログに公開。iPhoneアプリではkillしても更新されず下書きが残ったままだから、えいやっとその下書きを消したら、なんと公開した記事が消えてしまいました。。

まさに、 この方と、 はてなブログのiPhoneアプリを使ったら公開済記事が消えたでござる。 - ちょんまげ狸の踊るポンポコ日記 同じ不具合にぶちあたってしまった訳です。。

メモ自体を、はてなブログアプリの下書きでやっていたので、元ネタもないから書き直すこともできないし、公開したばっかりだからGoogleさんもキャッシュしてくれてないし、途方にくれていましたが、ローカルのChromeのキャッシュからなんとか復元できたのでその方法をお知らせします。

1. ローカルのそれっぽいキャッシュを見つける

  • Chromeのブラウザにabout:cacheと入れると次のような画面が出てきます。

f:id:masato47744:20140423170330p:plain

  • ここから、編集中の画面のURLを見つけます。
  • はてなブログでは、プレビューの際にpreviewという文字列がURLに入るようなのでそれで文字列検索する。プレビューしなかった人は編集画面を表すedit?で検索してもいいかも。

f:id:masato47744:20140423170532p:plain

  • previewらしきURLのキャッシュの中を見ます。

f:id:masato47744:20140423170636p:plain

  • レスポンスヘッダを見るとhtmlっぽいタグが見えたから、最初はこれで勝った!と思いましたがレスポンスボディの中身はタグとかではなく読めない文字が並んでました。。
  • でも、ヘッダを見るとContent-Encoding: gzipの文字が、、gzip圧縮か!!これはいけそうな気がしてきました!!ということで、これをなんとかgzipバイナリにする作戦へ。

2. キャッシュからgzipバイナリを作成する

  • Chromeで表示するとバイナリエディタで閲覧してるような感じになるので、これをバイナリに戻します。
  • まず、httpのレスポンスボディーの部分だけをコピーします。こんな感じで下までダーーッと。

f:id:masato47744:20140423171025p:plain

  • それをSublime Textに貼って生データ部分だけを矩形選択して別のファイルにコピペしてそのあと、2桁の数字の間の半角スペースを全て削除します。※エディタは矩形選択ができればなんでもOK

f:id:masato47744:20140423171132p:plain

  • スペースを削除したテキストを0xEDというMacバイナリエディタソフトで、File > Newから以下の画像のようにPasteします。

f:id:masato47744:20140423171251p:plain

f:id:masato47744:20140423171309p:plain

  • それをgzとして保存します。

f:id:masato47744:20140423171344p:plain

  • あとは、gzを解凍して解凍されたファイルをhtmlとして保存。SublimeTextで見てみると、、

f:id:masato47744:20140423171435p:plain

おおっ!これは!!

  • おそるおそるブラウザで見てみると、、

f:id:masato47744:20140423171458p:plain

やったーーー!!!

復元できてよかった。。とりあえず、はてなブログアプリで削除はあんまりしない方がよさそうですね!