From a7adab09d7f94afd80742ae38052d8b7e6b73f8d Mon Sep 17 00:00:00 2001 From: gumi Date: Wed, 3 Jul 2019 12:49:39 -0400 Subject: add a new item frob tool to replace the old one removes the specified items, non-existant items and item stubs (0 qty) --- server/frob/README.md | 19 +++++ server/frob/char.ts | 152 ++++++++++++++++++++++++++++++++++++++++ server/frob/index.ts | 183 +++++++++++++++++++++++++++++++++++++++++++++++++ server/frob/itemdb.ts | 68 ++++++++++++++++++ server/frob/storage.ts | 117 +++++++++++++++++++++++++++++++ 5 files changed, 539 insertions(+) create mode 100644 server/frob/README.md create mode 100644 server/frob/char.ts create mode 100644 server/frob/index.ts create mode 100644 server/frob/itemdb.ts create mode 100644 server/frob/storage.ts diff --git a/server/frob/README.md b/server/frob/README.md new file mode 100644 index 0000000..19fbe13 --- /dev/null +++ b/server/frob/README.md @@ -0,0 +1,19 @@ +# tmwAthena item frobber +## Prerequisites +- [Deno] + +## Compatibility +- works with tmwAthena `v16.2.9 - v19.4.15` + - newer versions may modify the flatfile structure and break things + +## Usage +- from `tmwa-server-data`: +``` +# choose whatever syntax you prefer: +make frob items="item[,item[,item...]]" # item list (csv) +make frob items="item[ item[ item...]]" # item list +make frob items="item-item" # item range +make frob items="item..item" # item range +``` + +[Deno]: https://deno.land diff --git a/server/frob/char.ts b/server/frob/char.ts new file mode 100644 index 0000000..e0cb5f3 --- /dev/null +++ b/server/frob/char.ts @@ -0,0 +1,152 @@ +class CharParser { + private char_line = + "^" + + "(?[0-9]+)\t" + + "(?[0-9]+),(?[0-9]+)\t" + + "(?[^\t]+)\t" + + "(?[0-9]+),(?[0-9]+),(?[0-9]+)\t" + + "(?[0-9]+),(?[0-9]+),(?[0-9]+)\t" + + "(?[0-9]+),(?[0-9]+),(?[0-9]+),(?[0-9]+)\t" + + "(?[0-9]+),(?[0-9]+),(?[0-9]+),(?[0-9]+),(?[0-9]+),(?[0-9]+)\t" + + "(?[0-9]+),(?[0-9]+)\t" + + "(?