#!/usr/bin/perl -w
#
# extract - extract the stories in the wp xml rss feed
#
# Author: Tamara Temple <tamara@tamaratemple.com>
# 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 { "<p>$_</p>" } @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/\</%3c/g;
    $t =~ s/\n/%0a/g;
    return $t;
}