OSDN Git Service

wiki convert utils
authorISHIKAWA Mutsumi <ishikawa@hanzubon.jp>
Mon, 26 Dec 2011 07:13:23 +0000 (16:13 +0900)
committerISHIKAWA Mutsumi <ishikawa@hanzubon.jp>
Mon, 26 Dec 2011 07:13:23 +0000 (16:13 +0900)
conv.pl [new file with mode: 0755]
dump.pl [new file with mode: 0755]
wiki_post.pl [new file with mode: 0755]

diff --git a/conv.pl b/conv.pl
new file mode 100755 (executable)
index 0000000..70491f5
--- /dev/null
+++ b/conv.pl
@@ -0,0 +1,33 @@
+#!/usr/bin/perl
+
+use strict;
+use utf8;
+use Encode;
+
+my $file = $ARGV[0] || die;
+
+open(IF, $file) || die;
+$/ = undef;
+my $text = <IF>;
+close(IF);
+
+$text = decode('utf8', $text);
+$text =~ s/^\*/= /mg;
+$text =~ s/^\*\*/== /mg;
+$text =~ s/^\- /  * /mg;
+$text =~ s/^\-- /    * /mg;
+$text =~ s/^\--- /      * /mg;
+$text =~ s/\[\[/[/g;
+$text =~ s/\|/||/g;
+$text =~ s/]]/]/g;
+$text =~ s/~%/\n/g;
+$text = encode('utf8', $text);
+
+my $outd = 'converted';
+mkdir $outd;
+open(OF, "> $outd/$file") || die;
+print OF $text;
+close(OF);
+
+1;
+
diff --git a/dump.pl b/dump.pl
new file mode 100755 (executable)
index 0000000..a971920
--- /dev/null
+++ b/dump.pl
@@ -0,0 +1,24 @@
+#!/usr/bin/perl
+
+use strict;
+use Fcntl;
+use GDBM_File;
+use URI::Escape;
+use Encode;
+
+my $file = '/var/www/lib/wiliki/wikidata.dbm';
+my %db;
+tie (%db, 'GDBM_File' , $file, O_RDONLY, 640) or die;
+
+foreach my $k (sort keys %db) {
+       next if $k eq ' %recent-changes';
+       my $f = uri_escape($k);
+       open(OF, "> $f") or die "can not open $f";
+       my $o = $db{$k};
+       $o =~ s/^\([^)]+\)//;
+       print OF $o;
+}
+
+untie(%db);
+
+1;
diff --git a/wiki_post.pl b/wiki_post.pl
new file mode 100755 (executable)
index 0000000..3dc048e
--- /dev/null
@@ -0,0 +1,46 @@
+#!/usr/bin/perl
+
+use strict;
+use LWP::UserAgent;
+use HTTP::Request::Common;
+use URI::Escape;
+use Encode;
+use utf8;
+
+my $file = $ARGV[0] || die;
+my $url_base = 'http://sourceforge.jp/projects/g15jp/wiki/';
+
+my $url = $url_base . $file;
+
+open(IF, $file) || die;
+my $tmp = $/;
+$/ = undef;
+my $text = <IF>;
+close(IF);
+$text = decode('utf8', $text);
+
+my $ua = LWP::UserAgent -> new();
+
+my $req = GET($url . '?action=edit');
+my $res = $ua->request($req);
+
+my $key;
+if ($res->as_string() =~ /name="postkey" value="([^"]+)"/) {
+       $key = $1;
+} else {
+       die 'can not find key' . $res->as_string();
+}
+
+my %data = (action => 'update',
+           title => uri_unescape($file),
+           text => $text,
+           comment => '',
+           commit => '保存',
+           textarea_height => 24,
+           postkey => $key);
+
+
+my $req2 = POST($url . '?action=update', \%data);
+my $res2 = $ua->request($req2);
+
+#print $res->as_string;