すいません。Movable Typeで3.17-jaにアップグレードしたのですがなにかやらかしてしまったらしく、それまでに投稿したエントリがごっそり消えてしまいました。

http://www.burikko.net
アーカイブは残っているみたいなので復旧は可能かと思うのですが、
http://www.burikko.net/archives/2005/05/comic_vol5_1.html
アーカイブページでは表記が
Powered by
Movable Type 3.01D-ja
なんです。
どうしたら復旧できるか教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/06/26 23:02:59
  • 終了:--

回答(2件)

id:jouno No.1

jouno回答回数280ベストアンサー獲得回数02005/06/27 00:05:42

ポイント30pt

http://www.bricklife.com/weblog/000604.html

bricklife.weblog.*: HTML から weblog を復旧する方法

まず、大前提として、念のためにすべてファイルをローカルにバックアップしておきます。


で、http://www.bricklife.com/library/html2mt.txtをいちばん上の階層で走らせるわけですが、直接できればいちばんいいわけですが、無理であれば拡張子をcgiにして動かしてみます。ただこのやり方だと途中で処理が終わってしまう可能性があります。


その場合は、ローカルで処理します。

サーバーのファイルをバックアップしておいたもとのファイルに戻して、ローカルで、


perl html2mt.txt


します。


ウィンドウズへのperlの導入は二つ目のリンクで。

http://penguin.nakayosi.jp/windows/perl.html

Active Perl�E�C���X�g�[���EWindows�EWindows2000�E�����E�T�[�o�E�����T�[�o

id:nyaofunhouse

???

とりあえず

http://www.burikko.net/html2mt.txt

http://www.burikko.net/html2mt.cgi

の2つのファイルはあげました。

サーバにあわせて冒頭は

#!/usr/local/bin/perl

に書き換えました。

cgiのパーミッションは755にしました。

500番エラーです。

馬鹿で本当に申し訳ないですが、ご教授ください。

2005/06/27 01:12:35
id:jouno No.2

jouno回答回数280ベストアンサー獲得回数02005/06/27 03:50:50

ポイント30pt

テンプレートが違うので、そのままでは適用できないようです。とりあえず、本文だけ書き換えたものを載せてみます。はてなでは”と¥と’が変換されてしまうので戻してください。


で、使い方なのですが、まず、アーカイブファイルをすべて、ひとつのディレクトリにフラットにコピーしてください。(個別エントリーのものだけ)


で、スクリプトのファイルはトップの階層において、シェルアカウントがあればいいのですが、かわりにcgiをつかいます。


#/usr/local/bin/perl

system(”./test.pl directory/*”)


という内容のcgiファイルをつくって、これにアクセスしてください。directoryはアーカイブファイルのコピーをおいた場所です。test.plはスクリプトのファイル名です。


下に乗せたものを使うとコメントとトラックバックは復旧できません。またどちらにせよ、このやり方はけっこうperlの知識が要るので、失敗する可能性もあります。


すいません、ほかのやりかたは見つけられませんでした。


test.pl


#!/usr/bin/perl


use lib qw (./lib ./extlib);


use MT;

use MT::App::CMS;

use MT::Blog;

use MT::Entry;

use MT::Comment;

use MT::TBPing;

use MT::Trackback;

use FileHandle;

use Jcode;


$| = 1;


my $cfg_file = ”./mt.cfg”;

my $mt_path = ”./”;


my $app = MT::App::CMS->new(

Config => $mt_path . $cfg_file,

Directory => $mt_path,

);

my $mt = MT->new(

Config => $mt_path . $cfg_file,

Directory => $mt_path,

);


my %month = (

’January’ => ’01’,

’February’ => ’02’,

’March’ => ’03’,

’April’ => ’04’,

’May’ => ’05’,

’June’ => ’06’,

’July’ => ’07’,

’August’ => ’08’,

’September’ => ’09’,

’October’ => ’10’,

’November’ => ’11’,

’December’ => ’12’,

);


my $blog_id = 1;

my $author_id = 1;


my $blog_id = 1;

my $blog = MT::Blog->load($blog_id);


while ($file = shift) {

# HTML読み込み

$html = do {local $/; my $fh = FileHandle->new($file); <$fh>};


# パース開始

# next unless ($file =~ /(¥d¥d¥d¥d¥d¥d).html/);

next unless ($file =~ /(.*)¥.html/);


# my $entry_id = int($1);

# print ”$file¥nID: $entry_id¥n”;

print ”$file¥n”;


# エントリー情報

# $html =~ /<h3 class=”title”>(.*?)<¥/h3>¥n(.*?)¥n<div class=”posted”>/s;

$html =~ /<h3>(.*?)<¥/h3>¥n(.*?)¥n<p class=”posted”>/s;

my ($title, $body) = ($1, $2);

$html =~ /dc:date=”(¥d¥d¥d¥d)-(¥d¥d)-(¥d¥d)T(¥d¥d):(¥d¥d):(¥d¥d).*”/;

my $created_on = ”$1$2$3$4$5$6”;


$html =~ /mt¥/mt-tb.cgi¥/(¥d¥d)/;

my $entry_id = int($1);


$body =~ s/(¥n<p>|<¥/p>¥n|<br ¥/>¥n)/¥n/gs;

$body =~ /^¥n(.*)<div id=”.*more”><div id=”more”>¥n(.*)<¥/div><¥/div>/s;

my ($text, $text_more) = ($1, $2);


# エントリー生成

my $entry = MT::Entry->new;

$entry->blog_id($blog_id);

$entry->title($title);

$entry->text($text);

$entry->text_more($text_more);

$entry->author_id($author_id);

$entry->created_on($created_on);

$entry->id($entry_id);


$entry->convert_breaks(1);

$entry->allow_comments(1);

$entry->allow_pings(1);

$entry->status(MT::Entry::RELEASE());


$entry->save or die $entry->errstr;

}


$blog->touch;

$blog->save;

id:nyaofunhouse

すみませんこんな夜中に・・・

とりあえず何とかやってみます。ありがとうございました。

2005/06/27 04:05:41

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません