#!/usr/bin/perl -w # # extract - extract the stories in the wp xml rss feed # # Author: Tamara Temple # Created: 2011/10/22 # Copyright (c) 2011 Tamara Temple Web Development # use strict; use XML::Simple; use Data::Dumper; use HTML::WikiConverter; my $filename = $ARGV[0]; die if $filename =~ /^$/; my $wc = new HTML::WikiConverter(dialect => "PmWiki"); my $xp = XMLin($filename); my $itemsp = $xp->{'channel'}->{'item'}; print $#$itemsp,"\n"; for (my $i = 0; $i < $#$itemsp; $i++) { my $item = $$itemsp[$i]; print $item->{'title'},"\n"; my $fn = make_file_name($item->{'title'}, $item->{'wp:post_type'}); open(my $FH, ">", $fn); print $FH "version=pmwiki-2.2.34 urlencoded=1\n"; print $FH "name=$fn\n"; my $text=wikiize_text("Title: ".$item->{'title'}."\n"); $text .= wikiize_text("Creator: ".$item->{'dc:creator'}."\n"); $text .= wikiize_text("Pubdate: ".$item->{'pubDate'}."\n"); $text .= wikiize_text("Link: ".$item->{'link'}."\n"); if ($item->{'wp:post_type'} eq 'attachment') { $text .= wikiize_text("Attachment URL: ".$item->{'wp:attachment_url'}."\n"); } else { my @content = split(/\n/,$item->{'content:encoded'}); @content = map { "

$_

" } @content; print join("\n",@content),"\n"; $text .= wikiize_text("\n".$wc->html2wiki( html=> join("\n",@content)."\n" )); } print $FH "text=$text\n"; close($FH); } sub make_file_name { my $t = shift @_; my $type = shift @_; $type =~ s/(\w)(\w*)/\U$1\L$2/; $t =~ s/\s*//g; $t =~ s/[^[:alnum:]]//g; $t = "${type}.${t}"; print "Saving to $t\n"; return $t; } sub wikiize_text { my $t = shift @_; $t =~ s/%/%25/g; $t =~ s/\