はてなグループが終了した。グループ内の日記データは、エクスポートを依頼してあれば後日MT形式で各ユーザーに配布されるそうだ。
はてなグループではそれとは別に、CSV形式で日記データをダウンロードしておくこともできた。MT形式でエクスポートされるデータの構造は「はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 - 機能変更、お知らせなど」に書かれている。これだとちょっとナーということになるかもしれないし、エクスポートしたデータをいつもらえるかもわからないので、CSV形式のデータをもとに「はてなブログライター」を使ってはてなブログへ登録していくことにした。
はてなブログライターの使い方は以下で解説している。
- はてなブログにインポートしたダイアリーの内容をまとめて修正できるようにする方法 - ただいま村(https://ima.hatenablog.jp/entry/2019/02/01/170000)
ダウンロードしたCSVデータをはてなブログライター向けに加工する。
- CSV形式のデータを「csv2hw.pl」で日付ごとのテキストファイルに分解する
- csv2hw.pl:csv2hw.pl: CSV からはてダラ形式への変換スクリプト
- 同じディレクトリで下のスクリプト(「g_uniter.pl」とする)を実行する。
#! /usr/local/bin/perl $outfilename = "united.txt"; #出力ファイル名 $backupfilename = "united_bak.txt"; #出力ファイルのバックアップファイル名 if (-f $outfilename) { if (-f $backupfilename) { unlink $backupfilename; } rename $outfilename , $backupfilename; } @dirlist = glob("./????-??-??.txt"); foreach $infilename ( @dirlist ){ open(IN,"< $infilename"); open(OUT,">> $outfilename"); my @lines = (<IN>); $day = $infilename; $day =~ s/.*(\d{4}\-\d\d\-\d\d)\.txt/$1/; $lines[0] = $day . "_01:" . $lines[0] . "date: " . $day . " 00:00:00 +0900\ncategory:\n\n"; $lines[$#lines] =~ s|(.+)\n*$|$1\n\n|; #ファイル末尾の改行の数を調整 foreach ( @lines ) { print OUT; } print "Text of date added to " . $day . ".txt and united.\n"; close IN; close OUT; }
g_uniter.plはたいへん簡素なスクリプトで、最低限の機能を盛りこんだ。
- その日全体のタイトルが記事のタイトルになる
- 1日分が1記事になる(1日に複数の記事を登録してあった場合でもまとめて1つの記事になる)
- 投稿時刻は00:00:00で固定(スクリプト内の「00:00:00」を別の時刻にすると、すべての記事の投稿時刻がその時刻になる)
- カテゴリは空欄になる(スクリプト内の「category:\n」のところを「category:カテゴリ名\n」とすると、すべての記事にそのカテゴリ名がつけられる)
- カテゴリの自動挿入を実装するとしたら
- 「my @lines = (<IN>);」のところで各日付のファイルを1行ごとに読み込んでいる。読み込むときに「*…*[~][~]…」という文字列を含む行を見つけて、「~」の部分をその日のカテゴリとして配列に入れていく(重複もチェックすること)。「$lines[0] = $day . "_01:" . $lines[0] . "date: " . $day . " 00:00:00 +0900\ncategory:\n\n";」の行の最後、「category:」のところにカテゴリの配列を挿入して出力する
g_uniter.plを実行すると、はてなブログライター向けのヘッダがついた1つのテキストファイル「united.txt」が出力される。
これで、はてなブログライターで登録し直しやすくなった。はてなブログでは24時間の新規エントリ登録数は100までに制限されているから、全部一気にはてなブログに移したいという場合は登録数に制限がないMT形式でのインポートということになる。
また、はてなグループの日記のCSVデータにはコメントが不完全な形でしか含まれていない。コメントをコメントとして移すにはMT形式でのインポートが必要になる。(自分の場合、はてなグループの終了前にコメントをコピーしておき本文に移設した)
MT形式のデータのインポートについてわかったこと
- MT形式のデータをインポートすると、「見たままモード」で登録される
- MT形式のデータのインポートではIDコールが送出されない
MT形式の基本的な説明は以下に。
- 記事のインポートフォーマット | CMSプラットフォーム Movable Type ドキュメントサイト(https://www.movabletype.jp/documentation/mt6/tools/import-export-format.html)
はてなグループについて書いた記事
- はてなグループも終わっちゃう+はてなのサービス終了遍歴など - ただいま村(https://ima.hatenablog.jp/entry/2019/07/07/170000)
はてなグループの代替になりそうなサービスの紹介もあります。