changeset 67:c5dae8c49b73 misc

Added tool for gathering patron saint power / effect information and outputting a docbook XML table of it.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 21 Dec 2009 11:38:46 +0000
parents 4ad39358df95
children 482f975d51ea
files saintinfo-to-docbook-table.pl
diffstat 1 files changed, 71 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/saintinfo-to-docbook-table.pl	Mon Dec 21 11:38:46 2009 +0000
@@ -0,0 +1,71 @@
+#!/usr/bin/perl -w
+use strict;
+
+my @powers = (
+  "almost non-existant",
+  "faint",
+  "spiritual",
+  "strong",
+  "heavenly",
+  "celestial",
+  "DIVINE",
+);
+my $powerstr = join("|", @powers);
+my $name;
+my $power;
+my $effect;
+my %saints = ();
+my %powers = ();
+
+while (<STDIN>) {
+  chomp;
+  if (/^  St. ([A-Z][a-z]+)/) {
+    $name = $1;
+  } elsif (/^ +Her ($powerstr) power is reavealed in (.+?)\.$/) {
+    if (defined($name)) {
+      $power = $1;
+      $effect = $2;
+      if (defined($powers{$name}) && $powers{$name} ne $effect) {
+        print STDERR "Saint '$name' already defined for '".$powers{$name}."' ($effect)!\n";
+      }
+      $powers{$name} = $effect;
+      $saints{$effect}{$power}{$name} = 1;
+    } else {
+      print STDERR "ERR: $_\n";
+    }
+    undef($name);
+  } elsif (/_________|index=/) {
+  } elsif (/Her power is faint but those who believe/) {
+    print STDERR "FAINT: $name\n";
+  }
+}
+
+print "
+<table>
+ <title>List of powers bestowed by Saints</title>
+ <tgroup cols='".((scalar @powers) + 1)."' align='left'>
+  <thead>
+   <row><entry>-</entry>";
+
+print "<entry>$_</entry>" foreach (@powers);
+
+print "</row>
+  </thead>
+  <tbody>
+";
+
+foreach my $effect (sort { $a cmp $b } keys %saints) {
+  print "   <row><entry>$effect</entry>";
+  foreach my $power (@powers) {
+    my $s = join(", ", sort { $a cmp $b } keys %{$saints{$effect}{$power}});
+    
+    print "<entry>".($s ne "" ? $s : "-")."</entry>";
+  }
+  print "</row>\n";
+}
+
+print "
+  </tbody>
+ </tgroup>
+</table>
+";