annotate parse_rubi.pl @ 374:10d030b85117 misc tip

Switch Convent map to SVG version, add link to PNG render to the caption.
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 01 Mar 2024 10:02:38 +0200
parents e23ea99e7aa8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
184
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
1 #!/usr/bin/perl -w
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
2 use strict;
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
3
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
4 my %rawdata = ();
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
5 my $mismatches = "";
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
6
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
7 sub addto($$)
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
8 {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
9 my ($target, $str) = @_;
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
10
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
11 foreach my $result (@{$rawdata{$target}{"results"}}) {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
12 return if ($result eq $str);
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
13 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
14
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
15 if ($str ne "") {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
16 push(@{$rawdata{$target}{"results"}}, $str);
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
17
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
18 if ($target =~ /^an? ([a-z]+) of (.+)$/) {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
19 $rawdata{$target}{"organ"} = $1;
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
20 $rawdata{$target}{"name"} = $2;
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
21 } else {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
22 $rawdata{$target}{"organ"} = "";
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
23 $rawdata{$target}{"name"} = $target;
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
24 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
25 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
26 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
27
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
28 sub err($)
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
29 {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
30 print STDERR "!! ".$_[0];
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
31 $mismatches .= $_[0];
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
32 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
33
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
34 my %says = ();
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
35 my %races = ();
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
36
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
37 my $result = "";
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
38 my $target = "";
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
39 my $dis_flag = 0;
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
40 my $dis_corpse = "";
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
41 my $dr_name = "";
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
42 my $dr_race = "";
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
43
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
44 while (<STDIN>) {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
45 chomp;
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
46 if (/^Rubi tosses (.+?) into a cauldron, and it dissolves away\.$/) {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
47 addto($1, $result);
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
48 $result = "";
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
49 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
50 elsif (/^Rubi says 'No, no, that won't do at all/) {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
51 $result = "NO" if ($result eq "");
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
52 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
53 elsif (/^Rubi says 'Hmm, seems a bit shoddy./) {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
54 $result = "SHODDY" if ($result eq "");
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
55 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
56 elsif (/^Rubi takes (.+?) and starts a new potion\.$/) {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
57 $target = $1;
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
58 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
59 elsif (/^Rubi puts (\d+ potions?) on her shelves\.$/) {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
60 addto($target, $1);
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
61 $target = "";
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
62 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
63 elsif (/^Rubi says '(.+?)'$/) {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
64 $says{$1} = 1;
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
65 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
66 elsif (/^You say \'-dis-\.\'$/) {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
67 $dis_flag = 1;
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
68 $dis_corpse = "";
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
69 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
70 elsif (/^This is the dead body of (.+)\.$/) {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
71 $dis_corpse = $1;
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
72 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
73 elsif (/^You start slicing into the corpse of '(.+?)'\.\.\.$/) {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
74 my $race = $1;
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
75 if ($dis_flag && $dis_corpse ne "") {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
76 if (defined($races{$dis_corpse}) && $races{$dis_corpse} ne $race) {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
77 err("'$dis_corpse' race mismatch '".$races{$dis_corpse}."' <=> '$race'.\n");
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
78 } else {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
79 $races{$dis_corpse} = $race;
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
80 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
81 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
82 $dis_flag = 0;
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
83 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
84 elsif (/^([A-Za-z ]+) is an? ([a-z]+)\.$/) {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
85 $dr_name = $1;
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
86 $dr_race = $2;
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
87 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
88 elsif (/^That race has the following organs:(.+)$/) {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
89 my $organs = $1;
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
90 if ($dr_name ne "" && $dr_race ne "" && !($dr_name =~ /^Corpse of /)) {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
91 if (defined($races{$dr_name}) && $races{$dr_name} ne $dr_race) {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
92 err("'$dr_name' race mismatch '".$races{$dr_name}."' <=> '$dr_race'.\n");
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
93 } else {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
94 $races{$dr_name} = $dr_race;
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
95 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
96 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
97 $dr_name = $dr_race = "";
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
98 } else {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
99 $dr_name = $dr_race = "";
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
100 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
101 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
102
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
103 ## Process data with matching races
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
104 my %data = ();
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
105 foreach my $i (keys %rawdata) {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
106 my $name = $rawdata{$i}{"name"};
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
107 $data{$i}{"name"} = $rawdata{$i}{"name"};
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
108 $data{$i}{"organ"} = $rawdata{$i}{"organ"};
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
109 $data{$i}{"results"} = $rawdata{$i}{"results"};
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
110 $data{$i}{"race"} = defined($races{$name}) ? $races{$name} : "";
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
111 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
112
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
113 ## List what Rubi says .. e.g. the "hints"
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
114 if ($mismatches ne "") {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
115 print "Following possible problems were detected:\n\n".$mismatches."\n";
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
116 print "\n=====================================================================\n\n";
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
117 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
118
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
119
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
120 foreach my $i (sort { $a cmp $b } keys %says) {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
121 print "$i\n";
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
122 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
123
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
124 print "\n\n=====================================================================\n\n";
186
e23ea99e7aa8 Add more information in output.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
125 print "-------- Sorted by results --------\n".
e23ea99e7aa8 Add more information in output.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
126 "Only matches or near-matches shown!\n".
e23ea99e7aa8 Add more information in output.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
127 "\n";
184
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
128
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
129 foreach my $i (keys %data) {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
130 $data{$i}{"sort"} = join(", ", sort @{$data{$i}{"results"}});
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
131 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
132
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
133 sub printentry($$)
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
134 {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
135 my ($i, $res) = @_;
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
136
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
137 if ($data{$i}{"organ"} ne "") {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
138 if ($data{$i}{"race"} ne "") {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
139 printf "%-30s (%-10s) [%-10s] : %s\n", $data{$i}{"name"}, $data{$i}{"race"}, $data{$i}{"organ"}, $res;
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
140 } else {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
141 printf "%-43s [%-10s] : %s\n", $data{$i}{"name"}, $data{$i}{"organ"}, $res;
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
142 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
143 } else {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
144 printf "%-56s : %s\n", $i, $res;
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
145 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
146 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
147
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
148 foreach my $i (sort { $data{$a}{"sort"} cmp $data{$b}{"sort"} } keys %data) {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
149 my $res = join(", ", sort @{$data{$i}{"results"}});
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
150 if ($res ne "NO") {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
151 printentry($i, $res);
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
152 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
153 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
154
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
155 print "\n\n=====================================================================\n\n";
186
e23ea99e7aa8 Add more information in output.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
156 print "-------- Sorted by name --------\n".
e23ea99e7aa8 Add more information in output.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
157 "Total of ".(scalar(keys %data))." unique items (organs of given race, items, etc).\n".
e23ea99e7aa8 Add more information in output.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
158 "\n";
184
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
159
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
160 foreach my $i (sort { $data{$a}{"name"} cmp $data{$b}{"name"} } keys %data) {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
161 my $res = join(", ", sort @{$data{$i}{"results"}});
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
162 printentry($i, $res);
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
163 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
164
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
165 print "\n\n=====================================================================\n\n";
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
166
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
167 my %byrace = ();
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
168 foreach my $i (keys %data) {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
169 if ($data{$i}{"race"} ne "") {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
170 $byrace{$data{$i}{"race"}}{$data{$i}{"organ"}} = $data{$i}{"results"};
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
171 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
172 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
173
186
e23ea99e7aa8 Add more information in output.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
174 print "-------- Sorted by race --------\n".
e23ea99e7aa8 Add more information in output.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
175 "Only data with known race shown!\n".
e23ea99e7aa8 Add more information in output.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
176 "Total of ".(scalar(keys %byrace))." races.\n".
e23ea99e7aa8 Add more information in output.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
177 "\n";
e23ea99e7aa8 Add more information in output.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
178
e23ea99e7aa8 Add more information in output.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
179
184
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
180 foreach my $i (sort { $a cmp $b } keys %byrace) {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
181 foreach my $o (sort { $a cmp $b } keys %{$byrace{$i}}) {
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
182 my $res = join(", ", sort @{$byrace{$i}{$o}});
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
183 printf "%-43s (%-10s) : %s\n", $i, $o, $res;
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
184 }
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
185 print "\n";
84fa86a54038 Added script for parsing crap spewed by Rubi in Silverlake.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
186 }