Kategorien
FreewarWiki:Bot/Skripts/npclist2wiki.pl: Unterschied zwischen den Versionen
< FreewarWiki:Bot | Skripts
Sphinx (Diskussion | Beiträge) K (auslassen wenn unangreifbar auf 1. skript bleibt kompatibel zu liste, die diese spalte nicht gesetzt haben) |
Sphinx (Diskussion | Beiträge) K (+npc-typ in css class_name) |
||
Zeile 3: | Zeile 3: | ||
#!/usr/bin/perl | #!/usr/bin/perl | ||
#inout: npclist | #inout: npclist | ||
use constant CUnknown => "?"; | use constant CUnknown => "?"; | ||
use POSIX; | use POSIX; | ||
Zeile 39: | Zeile 38: | ||
next if (/^GET/); | next if (/^GET/); | ||
my ($name, $atk, $lp, $xp, $gm, $vk, $items, $bild, $autor, $unangreifbar) = split(/;/); | my ($name, $atk, $lp, $xp, $gm, $vk, $items, $bild, $autor, $unangreifbar, $typ) = split(/;/); | ||
printf " |-\n | style=\"text-align:left;\" | [[%s]] || {{SortKey|{{nts|%s}}|%s}} || {{SortKey|{{nts|%s}}|%s}} || {{SortKey|{{nts|%s}}|%s}} || {{SortKey|{{nts|%s}}|%s}} || {{SortKey|{{nts|%s}}|%s}} || {{SortKey|{{nts|%s}}|%s}} || {{SortKey|{{nts|%s}}|%s}}\n", $name, CheckUnknown($atk), $atk, CheckUnknown($lp), $lp, CheckUnknown($xp), $xp, CheckUnknown($gm), $gm, CheckUnknown(GetQuotient($xp, $lp, "%.2f")), GetQuotient($xp, $lp, "%.2f"), CheckUnknown(GetQuotient($gm, $lp, "%.2f")), GetQuotient($gm, $lp, "%.2f"), CheckUnknown(GetQuotient($gm, $xp, "%.0f")), GetQuotient($gm, $xp, "%.0f"); | my @css_classes = ($typ, ($unangreifbar) ? "unangreifbar" : "angreifbar"); | ||
chomp(@css_classes); | |||
printf " |-\n | style=\"text-align:left;\" class=\"%s\" | [[%s]] || {{SortKey|{{nts|%s}}|%s}} || {{SortKey|{{nts|%s}}|%s}} || {{SortKey|{{nts|%s}}|%s}} || {{SortKey|{{nts|%s}}|%s}} || {{SortKey|{{nts|%s}}|%s}} || {{SortKey|{{nts|%s}}|%s}} || {{SortKey|{{nts|%s}}|%s}}\n", join(" ", @css_classes), $name, CheckUnknown($atk), $atk, CheckUnknown($lp), $lp, CheckUnknown($xp), $xp, CheckUnknown($gm), $gm, CheckUnknown(GetQuotient($xp, $lp, "%.2f")), GetQuotient($xp, $lp, "%.2f"), CheckUnknown(GetQuotient($gm, $lp, "%.2f")), GetQuotient($gm, $lp, "%.2f"), CheckUnknown(GetQuotient($gm, $xp, "%.0f")), GetQuotient($gm, $xp, "%.0f"); | |||
} | } |
Version vom 8. Juli 2014, 18:55 Uhr
#!/usr/bin/perl #inout: npclist use constant CUnknown => "?"; use POSIX; setlocale(LC_NUMERIC, "de_DE"); ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time); my $myTimestamp = sprintf("%.2d.%.2d.%d %.2d:%.2d", $mday, $mon+1, $year+1900, $hour, $min); print "Diese Tabelle wird von Zeit zu Zeit automatisch aus den Daten aus den einzelnen NPC-Artikeln erstellt (zuletzt am " . $myTimestamp . "). Die Daten hier sollten nicht direkt ge\N{U+0026}auml;ndert werden, weil solche \N{U+0026}Auml;nderungen bei einer Neuerstellung verloren gehen. Stattdessen bitte die Daten auf den Seiten des jeweiligen NPCs korrigieren! Die Buttons neben den \N{U+0026}Uuml;berschriften k\N{U+0026}ouml;nnen zum Sortieren angeklickt werden. Da die Liste sehr lang ist, kann dies allerdings einige Sekunden dauern. {| class=\"sortable prettytable\" style=\"text-align:right;\" |- style=\"text-align:center;\" ! Name || Angr. || LP || XP || Gold || XP/LP || Gold/LP || Gold/XP\n"; sub GetQuotient { my ($dividend, $divisor, $format) = @_; if (($dividend eq CUnknown) || ($divisor eq CUnknown)) { return CUnknown; } if ($divisor == 0) {return "-"; } return sprintf($format, $dividend / $divisor); } sub CheckUnknown { my $number = @_[0]; if (($number eq "?") || ($number eq "-")) { $number = 0;} return $number; } while(<>) { next if (/^GET/); my ($name, $atk, $lp, $xp, $gm, $vk, $items, $bild, $autor, $unangreifbar, $typ) = split(/;/); my @css_classes = ($typ, ($unangreifbar) ? "unangreifbar" : "angreifbar"); chomp(@css_classes); printf " |-\n | style=\"text-align:left;\" class=\"%s\" | [[%s]] || {{SortKey|{{nts|%s}}|%s}} || {{SortKey|{{nts|%s}}|%s}} || {{SortKey|{{nts|%s}}|%s}} || {{SortKey|{{nts|%s}}|%s}} || {{SortKey|{{nts|%s}}|%s}} || {{SortKey|{{nts|%s}}|%s}} || {{SortKey|{{nts|%s}}|%s}}\n", join(" ", @css_classes), $name, CheckUnknown($atk), $atk, CheckUnknown($lp), $lp, CheckUnknown($xp), $xp, CheckUnknown($gm), $gm, CheckUnknown(GetQuotient($xp, $lp, "%.2f")), GetQuotient($xp, $lp, "%.2f"), CheckUnknown(GetQuotient($gm, $lp, "%.2f")), GetQuotient($gm, $lp, "%.2f"), CheckUnknown(GetQuotient($gm, $xp, "%.0f")), GetQuotient($gm, $xp, "%.0f"); } print " |} [[Kategorie:NPC-Listen]]";