Mercurial > hg > batmud > chester
changeset 3:aeb37c6b16fd
Fixes, also added integrated test data.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Mon, 10 Jan 2011 04:15:48 +0200 |
parents | 666d475c8f92 |
children | 563783b8cd22 |
files | index.php |
diffstat | 1 files changed, 53 insertions(+), 41 deletions(-) [+] |
line wrap: on
line diff
--- a/index.php Mon Jan 10 03:54:07 2011 +0200 +++ b/index.php Mon Jan 10 04:15:48 2011 +0200 @@ -3,6 +3,16 @@ $pageIndex = "index.php"; require "mcommon.inc.php"; + +// Multi-stack item fixups +$fixItemTable = array( + "(purple|green) gloves" => 'a ${1} glove', + "heavy black metal rings" => "a heavy black metal ring", + "bracelet mades of green crystal" => "a bracelet made of green crystal", + "white cloth packs for holding salves" => "white cloth pack for holding salves", +); + + $fixNumbers = array( "one" => 1, "two" => 2, "three" => 3, "four" => 4, "five" => 5, "six" => 6, "seven" => 7, "eight" => 8, @@ -10,14 +20,6 @@ ); -$fixItemTable = array( - "(purple|green) gloves" => 'a ${1} glove', - "heavy black metal rings" => "a heavy black metal ring", - "bracelet mades of green crystal" => "a bracelet made of green crystal", - "white cloth packs for holding salves" => "white cloth pack for holding salves", -); - - function getJSArraySegment($arr) { $str = ""; @@ -80,8 +82,14 @@ </p> </noscript> <p> +<form action"<? echo $pageIndex; ?>" method="post"> + <input type="hidden" value="YToxOntzOjU6Iml0ZW1zIjthOjQ3OntpOjA7czozODoiVGhlIHN0YWZmIG9mIExlcmV0aGluIGxhYmVsZWQgYXMgfEdncnwiO2k6MTtzOjM1OiJzd2lybGVkIGdyZWVuIHZlc3QgbGFiZWxlZCBhcyAoR2dyKSI7aToyO3M6Njk6ImEgd2VsbC1jcmFmdGVkIHBhaXIgb2Ygc3R1ZC1jb3ZlcmVkIGxlYXRoZXIgbGVnZ2luZ3MgbGFiZWxlZCBhcyAoR2dyKSI7aTozO3M6NTU6IlJpbmcgb2Ygd2lzZG9tIFtNYWRlIGJ5OiBOdWFuZV0gbGFiZWxlZCBhcyA2d2lzMWhwci9nZ3IiO2k6NDtzOjU0OiJzaGluaW5nIHJpbmcgY3JhZnRlZCBvdXQgb2YgbW9vbnN0b25lIGxhYmVsZWQgYXMgKEdncikiO2k6NTtzOjUxOiJHcmlteSBncmVhdCBjbG9hayBvZiB0cnVlIHNvcmNlcmVyIGxhYmVsZWQgYXMgfEdncnwiO2k6NjtzOjI5OiJhIGJsYWNrIGhvb2QgbGFiZWxlZCBhcyB8R2dyfCI7aTo3O3M6Mzg6InRoZSB0b21lIG9mIGtub3dsZWRnZSBsYWJlbGVkIGFzIChHZ3IpIjtpOjg7czo1MzoiaGVhdnkgdGFiYXJkIHdpdGggYSBjaGFsaWNlIGVuc2lnbmlhIGxhYmVsZWQgYXMgKEdncikiO2k6OTtzOjQ3OiJkYXJrIGdyZXkgYW5kIHdoaXRlIHBsYWlkIGtpbHQgbGFiZWxlZCBhcyAoR2dyKSI7aToxMDtzOjM4OiJzdHJvbmcgc2FwcGhpcmUgYm9vdHMgbGFiZWxlZCBhcyAoR2dyKSI7aToxMTtzOjI3OiJzdW4gYW11bGV0IGxhYmVsZWQgYXMgKEdncikiO2k6MTI7czo0MDoiQW5jaWVudCBCcmFjZXJzIG9mIFh6dWkgbGFiZWxlZCBhcyAoR2dyKSI7aToxMztzOjQyOiJnbGl0dGVyaW5nIGxlZyBwcm90ZWN0b3JzIGxhYmVsZWQgYXMgKEdncikiO2k6MTQ7czo0OToiYSBicmFjZWxldCBtYWRlIG9mIGdyZWVuIGNyeXN0YWwgbGFiZWxlZCBhcyAoR2dyKSI7aToxNTtzOjQ5OiJhIGJyYWNlbGV0IG1hZGUgb2YgZ3JlZW4gY3J5c3RhbCBsYWJlbGVkIGFzIChHZ3IpIjtpOjE2O3M6NDU6ImEgcmVpbmZvcmNlZCBicm9uemUgYnJhY2VsZXQgbGFiZWxlZCBhcyAoR2dyKSI7aToxNztzOjQyOiJ0aGUgQnJhY2VsZXRzIG9mIERhcmtuZXNzIGxhYmVsZWQgYXMgKEdncikiO2k6MTg7czozNDoiVGlidXJjaW8ncyBhbXVsZXQgbGFiZWxlZCBhcyAoR2dyKSI7aToxOTtzOjQ5OiJuZWNrbGFjZSBtYWRlIG91dCBvZiBzaGFycCBmYW5ncyBsYWJlbGVkIGFzIChHZ3IpIjtpOjIwO3M6NjI6ImEgZ2xpbW1lcmluZyBsZWF0aGVyIGJlbHQgd2l0aCBnZW0gZGVjb3JhdGlvbiBsYWJlbGVkIGFzIChHZ3IpIjtpOjIxO3M6NDE6ImEgaGVhdnkgYmxhY2sgbWV0YWwgcmluZyBsYWJlbGVkIGFzIChHZ3IpIjtpOjIyO3M6NDE6ImEgaGVhdnkgYmxhY2sgbWV0YWwgcmluZyBsYWJlbGVkIGFzIChHZ3IpIjtpOjIzO3M6NDU6IkRlbW9uaWMgUmluZyBvZiBJbnZpc2liaWxpdHkgbGFiZWxlZCBhcyAoR2dyKSI7aToyNDtzOjMxOiJhIHB1cnBsZSBnbG92ZSBsYWJlbGVkIGFzIChHZ3IpIjtpOjI1O3M6MzE6ImEgcHVycGxlIGdsb3ZlIGxhYmVsZWQgYXMgKEdncikiO2k6MjY7czozMDoiYSBncmVlbiBnbG92ZSBsYWJlbGVkIGFzIChHZ3IpIjtpOjI3O3M6MzA6ImEgZ3JlZW4gZ2xvdmUgbGFiZWxlZCBhcyAoR2dyKSI7aToyODtzOjQzOiJhIHBhaXIgb2YgYmxhY2sgYm9vdHMgbGFiZWxlZCBhcyB8R2dyTXVycml8IjtpOjI5O3M6NzI6IkEgYmVhdXRpZnVsIHJvc2FyeSBlbmZvbGRlZCB3aXRoIHdoaXRlIG1pc3QgbGFiZWxlZCBhcyB8R2dyTXVycml8IChob2x5KSI7aTozMDtzOjgyOiJhIHNtYWxsIHJpbmcgYmVhcmluZyB0aGUgZW1ibGVtIG9mIHRoZSBidW5ueSBbTWFkZSBieTogS2lvbWV0XSBsYWJlbGVkIGFzIDZ3aXMyaW50IjtpOjMxO3M6NjE6ImEgdmlhbCBjb250YWluaW5nIHRoZSB0ZWFycyBvZiBPeHRvdGggbGFiZWxlZCBhcyAoR2dyKSAoaG9seSkiO2k6MzI7czo0NDoiQSBsZWF0aGVyIHBvdWNoIGxhYmVsZWQgYXMgdjQgKHF1YXJ0ZXIgZnVsbCkiO2k6MzM7czo0Mzoic2xlZXZlcyBvZiBtb29taW4gZW11bHNpb24gbGFiZWxlZCBhcyAoR2dyKSI7aTozNDtzOjMzOiJhIGdyZWVuIGhlYWRiYW5kIGxhYmVsZWQgYXMgKEdncikiO2k6MzU7czozNDoiQ2FwZSBvZiBLbm93bGVkZ2UgbGFiZWxlZCBhcyAoR2dyKSI7aTozNjtzOjU0OiJUaGUgZ2xlYW1pbmcgYmx1ZSBjb2xsYXIgb2YgQmVuZ2Fsb3JlIGxhYmVsZWQgYXMgKEdncikiO2k6Mzc7czo1MToiZ29sZGVuIGJlbHQgb2YgRmFpciBSaXZlci1EYXVnaHRlciBsYWJlbGVkIGFzIChHZ3IpIjtpOjM4O3M6NDI6ImEgYmxhY2sgY2xvYWsgKGV2aWwgZ2xvdykgbGFiZWxlZCBhcyB8R2dyfCI7aTozOTtzOjM1OiJSaW5nIG9mIHRoZSBNZWR1c2EgbGFiZWxlZCBhcyAoR2dyKSI7aTo0MDtzOjQ0OiJBIGxvdyB3aWRlLWJyaW1tZWQgaGF0IGxhYmVsZWQgYXMgfEdnck11cnJpfCI7aTo0MTtzOjEzOiJhIHN0ZXRob3Njb3BlIjtpOjQyO3M6NjY6ImEgc2hpbW1lcmluZyBibHVlIGJyZWFzdHBsYXRlIG1hZGUgb2YgcXVhcnR6IGxhYmVsZWQgYXMgfEdnck11cnJpfCI7aTo0MztzOjUzOiJhIHBhaXIgb2YgcHVyZSB3aGl0ZSBmbG93aW5nIHNsZWV2ZXMgbGFiZWxlZCBhcyAoR2dyKSI7aTo0NDtzOjQzOiJSZWRmYW5nIEJlYWRzIG9mIElyb24gV2lsbCBsYWJlbGVkIGFzIChHZ3IpIjtpOjQ1O3M6NTk6Ik5vdmEgQXJjYW51bSwgTWVsa2lvcidzIGJvb2sgb2YgbmVjcm9tYW5jeSBsYWJlbGVkIGFzIChHZ3IpIjtpOjQ2O3M6NDQ6ImEgcGFpciBvZiBzaG9ydCBncmVlbiBib290cyBsYWJlbGVkIGFzIChHZ3IpIjt9fQ==" name="data" /> + <input type="hidden" value="2" name="mode" /> First, you should provide a list of equipments you wish to manage. Just plain copy & paste of an inventory listing is enough. +You can also test with pre-defined equipments, + <input type="submit" value=" Test " /> by clicking the button. +</form> </p> <p> <b>Stacks of items are not supported, and few other things may cause problems too.</b> @@ -119,41 +127,39 @@ foreach ($postData as $line) { // Trim whitespace $str = trim($line); + if ($str == "") continue; - if ($str != "") { - // Strip glows and counters from item "handle" - if (preg_match("/^(.+?)\s+(<.+? glow>|\(\d+\/\d+\)|\[\d+\/\d+\])$/", $str, $m)) - $str = $m[1]; + // Strip glows and counters from item "handle" + if (preg_match("/^(.+?)\s+(<.+? glow>|\(\d+\/\d+\)|\[\d+\/\d+\])$/", $str, $m)) + $str = $m[1]; - // Discard multi-item lines - if (preg_match("/^(two|three|four|five|six|seven|eight|nine)\s+(.+?)( labeled as .+|)$/", $str, $m)) { - if (isset($fixNumbers[$m[1]])) { - $n = $fixNumbers[$m[1]]; - $changed = 0; - - foreach ($fixItemTable as $pat => $rep) { - if ($pat[0] == "*") { - if (substr($pat, 1) == $m[2]) { - $res = $rep; - $changed = 1; - } - } else { - $res = preg_replace("/".$pat."/", $rep, $m[2], -1, &$changed); + // Discard multi-item lines + if (preg_match("/^(many|two|three|four|five|six|seven|eight|nine|ten)\s+(.+?)( labeled as .+|)$/", $str, $m)) { + if (!isset($fixNumbers[$m[1]])) { + $ignored[$str] = "Unparsed stack of many"; + } else { + $n = $fixNumbers[$m[1]]; + $changed = 0; + foreach ($fixItemTable as $pat => $rep) { + if ($pat[0] == "*") { + if (substr($pat, 1) == $m[2]) { + $res = $rep; + $changed = 1; } - if ($changed > 0) { - addItems($n, $res.$m[3]); - break; - } + } else { + $res = preg_replace("/".$pat."/", $rep, $m[2], -1, &$changed); + } + if ($changed > 0) { + addItems($n, $res.$m[3]); + break; } - - if ($changed == 0) { - $ignored[$str] = "Unsupported item stack"; - } - } else - $ignored[$str] = "Unparsed stack of many"; - } else - addItems(1, $str); - } + } + if ($changed == 0) { + $ignored[$str] = "Unsupported item stack"; + } + } + } else + addItems(1, $str); } if (count($ignored) > 0) { @@ -165,12 +171,18 @@ foreach ($ignored as $name => $reason) { echo " <tr><td>".htmlentities($name)."</td><td>".htmlentities($reason)."</td></tr>\n"; } + +$encData = base64_encode(serialize($data)); ?> </table> <form action="<? echo $pageIndex; ?>" method="post"> - <input type="hidden" value="<? echo base64_encode(serialize($data)); ?>" name="data" /> + <input type="hidden" value="<? echo $encData ?>" name="data" /> <input type="hidden" value="2" name="mode" /> +<? +// echo "<textarea name=\"data\" cols=\"100\" rows=\"20\">".$encData."</textarea>\n"; +?> + <br /> <input type="submit" value=" Continue " /> </form> <? @@ -180,7 +192,7 @@ $errorMsg = "No item data provided."; $errorSet = TRUE; } -} +} // formMode == 1 /*