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 &amp; 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
 
 
 /*