Handle more weird naming cases
This commit is contained in:
@@ -8,12 +8,14 @@ import (
|
|||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/fatih/camelcase"
|
||||||
"github.com/firestuff/dnd/internal"
|
"github.com/firestuff/dnd/internal"
|
||||||
"github.com/samber/lo"
|
"github.com/samber/lo"
|
||||||
"golang.org/x/exp/slog"
|
"golang.org/x/exp/slog"
|
||||||
)
|
)
|
||||||
|
|
||||||
var removeWords = map[string]bool{
|
var removeWords = map[string]bool{
|
||||||
|
"+": true,
|
||||||
"1": true,
|
"1": true,
|
||||||
"2": true,
|
"2": true,
|
||||||
"diamond": true,
|
"diamond": true,
|
||||||
@@ -21,7 +23,9 @@ var removeWords = map[string]bool{
|
|||||||
"high": true,
|
"high": true,
|
||||||
"psd": true,
|
"psd": true,
|
||||||
"res": true,
|
"res": true,
|
||||||
|
"roll20": true,
|
||||||
"roll20+tokens": true,
|
"roll20+tokens": true,
|
||||||
|
"tokens": true,
|
||||||
}
|
}
|
||||||
|
|
||||||
var actions = map[string]string{
|
var actions = map[string]string{
|
||||||
@@ -37,10 +41,14 @@ var actions = map[string]string{
|
|||||||
"*/high res/gridless/floor 1/*.png": "Maps/{MAPNAME}",
|
"*/high res/gridless/floor 1/*.png": "Maps/{MAPNAME}",
|
||||||
"*/high res/gridless/floor 2/*.jpg": "Maps/{MAPNAME}",
|
"*/high res/gridless/floor 2/*.jpg": "Maps/{MAPNAME}",
|
||||||
"*/high res/gridless/floor 2/*.png": "Maps/{MAPNAME}",
|
"*/high res/gridless/floor 2/*.png": "Maps/{MAPNAME}",
|
||||||
|
"*/high resolution/gridless/*.jpg": "Maps/{MAPNAME}",
|
||||||
|
"*/grid/*.jpg": "{SKIP}",
|
||||||
"*/high res/grid/*.jpg": "{SKIP}",
|
"*/high res/grid/*.jpg": "{SKIP}",
|
||||||
|
"*/high resolution/grid/*.jpg": "{SKIP}",
|
||||||
"*/creature tokens/*.png": "Creatures",
|
"*/creature tokens/*.png": "Creatures",
|
||||||
"*/creature tokens/variants/*.png": "Creatures",
|
"*/creature tokens/variants/*.png": "Creatures",
|
||||||
"*/map tokens/*.png": "Maps/{MAPNAME}/Objects",
|
"*/map tokens/*.png": "Maps/{MAPNAME}/Objects",
|
||||||
|
"*/tokens/*.png": "Maps/{MAPNAME}/Objects",
|
||||||
"*/roll20/grid/*.jpg": "{SKIP}",
|
"*/roll20/grid/*.jpg": "{SKIP}",
|
||||||
"*/roll20/grid/*.png": "{SKIP}",
|
"*/roll20/grid/*.png": "{SKIP}",
|
||||||
"*/roll20/grid/attic/*.jpg": "{SKIP}",
|
"*/roll20/grid/attic/*.jpg": "{SKIP}",
|
||||||
@@ -154,6 +162,10 @@ func mapName(path string) string {
|
|||||||
withoutZIP := strings.TrimSuffix(filepath.Base(path), ".zip")
|
withoutZIP := strings.TrimSuffix(filepath.Base(path), ".zip")
|
||||||
parts := strings.Split(withoutZIP, " ")
|
parts := strings.Split(withoutZIP, " ")
|
||||||
|
|
||||||
|
if len(parts) == 1 {
|
||||||
|
parts = camelcase.Split(parts[0])
|
||||||
|
}
|
||||||
|
|
||||||
i := len(parts) - 1
|
i := len(parts) - 1
|
||||||
for i >= 0 && removeWords[strings.ToLower(parts[i])] {
|
for i >= 0 && removeWords[strings.ToLower(parts[i])] {
|
||||||
i--
|
i--
|
||||||
|
|||||||
5
go.mod
5
go.mod
@@ -4,4 +4,7 @@ go 1.20
|
|||||||
|
|
||||||
require github.com/samber/lo v1.38.1
|
require github.com/samber/lo v1.38.1
|
||||||
|
|
||||||
require golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea
|
require (
|
||||||
|
github.com/fatih/camelcase v1.0.0
|
||||||
|
golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea
|
||||||
|
)
|
||||||
|
|||||||
2
go.sum
2
go.sum
@@ -1,3 +1,5 @@
|
|||||||
|
github.com/fatih/camelcase v1.0.0 h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8=
|
||||||
|
github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc=
|
||||||
github.com/samber/lo v1.38.1 h1:j2XEAqXKb09Am4ebOg31SpvzUTTs6EN3VfgeLUhPdXM=
|
github.com/samber/lo v1.38.1 h1:j2XEAqXKb09Am4ebOg31SpvzUTTs6EN3VfgeLUhPdXM=
|
||||||
github.com/samber/lo v1.38.1/go.mod h1:+m/ZKRl6ClXCE2Lgf3MsQlWfh4bn1bz6CXEOxnEXnEA=
|
github.com/samber/lo v1.38.1/go.mod h1:+m/ZKRl6ClXCE2Lgf3MsQlWfh4bn1bz6CXEOxnEXnEA=
|
||||||
golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQJHQdp89IZBA/+azVC4=
|
golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQJHQdp89IZBA/+azVC4=
|
||||||
|
|||||||
Reference in New Issue
Block a user