From 1136cf121019429da079c22ba854908e435ecbec Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Sun, 14 May 2023 18:01:39 -0700 Subject: [PATCH] morvoldpress support --- cmd/dndcheck/main.go | 1 + cmd/dndimport/main.go | 146 ++++++++++++++++++++++++------------------ 2 files changed, 86 insertions(+), 61 deletions(-) diff --git a/cmd/dndcheck/main.go b/cmd/dndcheck/main.go index 7fd3897..224e48b 100644 --- a/cmd/dndcheck/main.go +++ b/cmd/dndcheck/main.go @@ -14,6 +14,7 @@ import ( var mapSigs = map[string]string{ "./*.jpg;./*.psd;Objects/*.png": "patreon-drmapzo-diamond", "./*.jpg;./*.png;./*.psd;Objects/*.png": "patreon-drmapzo-diamond", + "./*.jpg;./*.webp;Objects/*.png": "patreon-morvoldpress-tier2", } func main() { diff --git a/cmd/dndimport/main.go b/cmd/dndimport/main.go index fe1de44..8bb9582 100644 --- a/cmd/dndimport/main.go +++ b/cmd/dndimport/main.go @@ -30,70 +30,88 @@ var removeWords = map[string]bool{ "res": true, "roll20": true, "roll20+tokens": true, + "support": true, + "tier": true, "tokens": true, } var actions = map[string]string{ - "creature tokens/*.png": "Creatures", - "grid/*.jpg": "{SKIP}", - "grid/grid 1/*.jpg": "{SKIP}", - "grid/grid 2/*.jpg": "{SKIP}", - "gridless/*.jpg": "Maps/{MAPNAME}", - "gridless/extra color/*.jpg": "Maps/{MAPNAME}", - "gridless/line/*.jpg": "Maps/{MAPNAME}", - "gridless/normal/*.jpg": "Maps/{MAPNAME}", - "line/*.jpg": "Maps/{MAPNAME}", - "map tokens/*.png": "Maps/{MAPNAME}/Objects", - "tokens/*.png": "Maps/{MAPNAME}/Objects", - "./*.psd": "Maps/{MAPNAME}", - "*/high resolution/*.jpg": "Maps/{MAPNAME}", // Trust that it's gridless - "*/high resolution/*.png": "Maps/{MAPNAME}", // Trust that it's gridless - "*/gridless/*.jpg": "Maps/{MAPNAME}", - "*/high-res/gridless/*.jpg": "Maps/{MAPNAME}", - "*/high-res/gridless/*.png": "Maps/{MAPNAME}", - "*/high res/gridless/*.jpg": "Maps/{MAPNAME}", - "*/high res/gridless/*.png": "Maps/{MAPNAME}", - "*/high res/gridless/attic/*.jpg": "Maps/{MAPNAME}", - "*/high res/gridless/attic/*.png": "Maps/{MAPNAME}", - "*/high res/gridless/basement/*.jpg": "Maps/{MAPNAME}", - "*/high res/gridless/basement/*.png": "Maps/{MAPNAME}", - "*/high res/gridless/floor 1/*.jpg": "Maps/{MAPNAME}", - "*/high res/gridless/floor 1/*.png": "Maps/{MAPNAME}", - "*/high res/gridless/floor 2/*.jpg": "Maps/{MAPNAME}", - "*/high res/gridless/floor 2/*.png": "Maps/{MAPNAME}", - "*/high resolution/gridless/*.jpg": "Maps/{MAPNAME}", - "*/grid/*.jpg": "{SKIP}", - "*/gridded/*.jpg": "{SKIP}", - "*/high-res/grid/*.jpg": "{SKIP}", - "*/high res/grid/*.jpg": "{SKIP}", - "*/high resolution/grid/*.jpg": "{SKIP}", - "*/creature tokens/*.png": "Creatures", - "*/creature tokens/variants/*.png": "Creatures", - "*/map tokens/*.png": "Maps/{MAPNAME}/Objects", - "*/tokens/*.png": "Maps/{MAPNAME}/Objects", - "*/roll20/*.jpg": "{SKIP}", - "*/roll20/*.png": "{SKIP}", - "*/roll20/grid/*.jpg": "{SKIP}", - "*/roll20/gridded/*.jpg": "{SKIP}", - "*/roll20/grid/*.png": "{SKIP}", - "*/roll20/grid/attic/*.jpg": "{SKIP}", - "*/roll20/grid/attic/*.png": "{SKIP}", - "*/roll20/grid/basement/*.jpg": "{SKIP}", - "*/roll20/grid/basement/*.png": "{SKIP}", - "*/roll20/grid/floor 1/*.jpg": "{SKIP}", - "*/roll20/grid/floor 1/*.png": "{SKIP}", - "*/roll20/grid/floor 2/*.jpg": "{SKIP}", - "*/roll20/grid/floor 2/*.png": "{SKIP}", - "*/roll20/gridless/*.jpg": "{SKIP}", - "*/roll20/gridless/*.png": "{SKIP}", - "*/roll20/gridless/attic/*.jpg": "{SKIP}", - "*/roll20/gridless/attic/*.png": "{SKIP}", - "*/roll20/gridless/basement/*.jpg": "{SKIP}", - "*/roll20/gridless/basement/*.png": "{SKIP}", - "*/roll20/gridless/floor 1/*.jpg": "{SKIP}", - "*/roll20/gridless/floor 1/*.png": "{SKIP}", - "*/roll20/gridless/floor 2/*.jpg": "{SKIP}", - "*/roll20/gridless/floor 2/*.png": "{SKIP}", + "2nd floors/*.png": "Maps/{MAPNAME}/Objects", + "assets & tiles/*.png": "Maps/{MAPNAME}/Objects", + "assets & tiles/rooftops/*.png": "Maps/{MAPNAME}/Objects", + "assets & tokens/*.png": "Maps/{MAPNAME}/Objects", + "assets & tokens/rooftops/*.png": "Maps/{MAPNAME}/Objects", + "assets & tokens/rooftop_tiles/*.png": "Maps/{MAPNAME}/Objects", + "assets & tokens/tiles or tokens/*.png": "Maps/{MAPNAME}/Objects", + "creature tokens/*.png": "Creatures", + "grid/*.jpg": "{SKIP}", + "grid/grid 1/*.jpg": "{SKIP}", + "grid/grid 2/*.jpg": "{SKIP}", + "gridded/*.dd2vtt": "{SKIP}", + "gridded/*.jpg": "{SKIP}", + "gridded/*.webp": "{SKIP}", + "gridless/*.jpg": "Maps/{MAPNAME}", + "gridless/extra color/*.jpg": "Maps/{MAPNAME}", + "gridless/line/*.jpg": "Maps/{MAPNAME}", + "gridless/normal/*.jpg": "Maps/{MAPNAME}", + "line/*.jpg": "Maps/{MAPNAME}", + "map tokens/*.png": "Maps/{MAPNAME}/Objects", + "sloop vessel/*.png": "Maps/{MAPNAME}/Objects", + "tokens/*.png": "Maps/{MAPNAME}/Objects", + "ungridded/*.dd2vtt": "{SKIP}", + "ungridded/*.jpg": "Maps/{MAPNAME}", + "ungridded/*.webp": "Maps/{MAPNAME}", + "./*.jpg": "Maps/{MAPNAME}", + "./*.psd": "Maps/{MAPNAME}", + "./*.pdf": "{SKIP}", + "*/high resolution/*.jpg": "Maps/{MAPNAME}", // Trust that it's gridless + "*/high resolution/*.png": "Maps/{MAPNAME}", // Trust that it's gridless + "*/gridless/*.jpg": "Maps/{MAPNAME}", + "*/high-res/gridless/*.jpg": "Maps/{MAPNAME}", + "*/high-res/gridless/*.png": "Maps/{MAPNAME}", + "*/high res/gridless/*.jpg": "Maps/{MAPNAME}", + "*/high res/gridless/*.png": "Maps/{MAPNAME}", + "*/high res/gridless/attic/*.jpg": "Maps/{MAPNAME}", + "*/high res/gridless/attic/*.png": "Maps/{MAPNAME}", + "*/high res/gridless/basement/*.jpg": "Maps/{MAPNAME}", + "*/high res/gridless/basement/*.png": "Maps/{MAPNAME}", + "*/high res/gridless/floor 1/*.jpg": "Maps/{MAPNAME}", + "*/high res/gridless/floor 1/*.png": "Maps/{MAPNAME}", + "*/high res/gridless/floor 2/*.jpg": "Maps/{MAPNAME}", + "*/high res/gridless/floor 2/*.png": "Maps/{MAPNAME}", + "*/high resolution/gridless/*.jpg": "Maps/{MAPNAME}", + "*/grid/*.jpg": "{SKIP}", + "*/gridded/*.jpg": "{SKIP}", + "*/high-res/grid/*.jpg": "{SKIP}", + "*/high res/grid/*.jpg": "{SKIP}", + "*/high resolution/grid/*.jpg": "{SKIP}", + "*/creature tokens/*.png": "Creatures", + "*/creature tokens/variants/*.png": "Creatures", + "*/map tokens/*.png": "Maps/{MAPNAME}/Objects", + "*/tokens/*.png": "Maps/{MAPNAME}/Objects", + "*/roll20/*.jpg": "{SKIP}", + "*/roll20/*.png": "{SKIP}", + "*/roll20/grid/*.jpg": "{SKIP}", + "*/roll20/gridded/*.jpg": "{SKIP}", + "*/roll20/grid/*.png": "{SKIP}", + "*/roll20/grid/attic/*.jpg": "{SKIP}", + "*/roll20/grid/attic/*.png": "{SKIP}", + "*/roll20/grid/basement/*.jpg": "{SKIP}", + "*/roll20/grid/basement/*.png": "{SKIP}", + "*/roll20/grid/floor 1/*.jpg": "{SKIP}", + "*/roll20/grid/floor 1/*.png": "{SKIP}", + "*/roll20/grid/floor 2/*.jpg": "{SKIP}", + "*/roll20/grid/floor 2/*.png": "{SKIP}", + "*/roll20/gridless/*.jpg": "{SKIP}", + "*/roll20/gridless/*.png": "{SKIP}", + "*/roll20/gridless/attic/*.jpg": "{SKIP}", + "*/roll20/gridless/attic/*.png": "{SKIP}", + "*/roll20/gridless/basement/*.jpg": "{SKIP}", + "*/roll20/gridless/basement/*.png": "{SKIP}", + "*/roll20/gridless/floor 1/*.jpg": "{SKIP}", + "*/roll20/gridless/floor 1/*.png": "{SKIP}", + "*/roll20/gridless/floor 2/*.jpg": "{SKIP}", + "*/roll20/gridless/floor 2/*.png": "{SKIP}", } var root = flag.String("root", "", "root directory to write to") @@ -196,11 +214,17 @@ func mapName(path string) string { i-- } + parts = parts[:i+1] + + for len(parts) > 0 && removeWords[strings.ToLower(parts[0])] { + parts = parts[1:] + } + if len(parts) == 0 { panic(path) } - return strings.Join(parts[:i+1], " ") + return strings.Join(parts, " ") } func printable(in string) string {