mirror of
https://github.com/stashapp/stash.git
synced 2025-12-17 20:34:37 +03:00
Use case-insensitive matching in nameMatchesPath (#2378)
* Use case-insensitive matching in nameMatchesPath Also ensures that only unique words are returned in getPathWords.
This commit is contained in:
@@ -11,6 +11,7 @@ import (
|
|||||||
"github.com/stashapp/stash/pkg/image"
|
"github.com/stashapp/stash/pkg/image"
|
||||||
"github.com/stashapp/stash/pkg/models"
|
"github.com/stashapp/stash/pkg/models"
|
||||||
"github.com/stashapp/stash/pkg/scene"
|
"github.com/stashapp/stash/pkg/scene"
|
||||||
|
"github.com/stashapp/stash/pkg/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -62,7 +63,7 @@ func getPathWords(path string) []string {
|
|||||||
// just use the first two characters
|
// just use the first two characters
|
||||||
// #2293 - need to convert to unicode runes for the substring, otherwise
|
// #2293 - need to convert to unicode runes for the substring, otherwise
|
||||||
// the resulting string is corrupted.
|
// the resulting string is corrupted.
|
||||||
ret = append(ret, string([]rune(w)[0:2]))
|
ret = utils.StrAppendUnique(ret, string([]rune(w)[0:2]))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -85,13 +86,7 @@ func nameMatchesPath(name, path string) int {
|
|||||||
// #2363 - optimisation: only use unicode character regexp if path contains
|
// #2363 - optimisation: only use unicode character regexp if path contains
|
||||||
// unicode characters
|
// unicode characters
|
||||||
re := nameToRegexp(name, !allASCII(path))
|
re := nameToRegexp(name, !allASCII(path))
|
||||||
found := re.FindAllStringIndex(path, -1)
|
return regexpMatchesPath(re, path)
|
||||||
|
|
||||||
if found == nil {
|
|
||||||
return -1
|
|
||||||
}
|
|
||||||
|
|
||||||
return found[len(found)-1][0]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// nameToRegexp compiles a regexp pattern to match paths from the given name.
|
// nameToRegexp compiles a regexp pattern to match paths from the given name.
|
||||||
|
|||||||
@@ -54,6 +54,12 @@ func Test_nameMatchesPath(t *testing.T) {
|
|||||||
"before_first last/after",
|
"before_first last/after",
|
||||||
6,
|
6,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"within string case insensitive",
|
||||||
|
name,
|
||||||
|
"before FIRST last/after",
|
||||||
|
6,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"not within string",
|
"not within string",
|
||||||
name,
|
name,
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
### 🎨 Improvements
|
### 🎨 Improvements
|
||||||
* Allow customisation of UI theme color using `theme_color` property in `config.yml` ([#2365](https://github.com/stashapp/stash/pull/2365))
|
* Allow customisation of UI theme color using `theme_color` property in `config.yml` ([#2365](https://github.com/stashapp/stash/pull/2365))
|
||||||
* Improved autotag performance. ([#2368](https://github.com/stashapp/stash/pull/2368))
|
* Improved autotag performance. ([#2368](https://github.com/stashapp/stash/pull/2368))
|
||||||
|
|
||||||
|
### 🐛 Bug fixes
|
||||||
|
* Fix auto-tag not using case-insensitive matching. ([#2378](https://github.com/stashapp/stash/pull/2378))
|
||||||
Reference in New Issue
Block a user