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:
WithoutPants
2022-03-11 09:35:48 +11:00
committed by GitHub
parent 7bd47c651c
commit e4d6d3b085
3 changed files with 12 additions and 8 deletions

View File

@@ -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.

View File

@@ -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,

View File

@@ -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))