mirror of
https://github.com/stashapp/stash.git
synced 2025-12-18 04:44:37 +03:00
String regex filter criteria and selective autotag (#1082)
* Add regex string filter criterion * Use query interface for auto tagging * Use Query interface for filename parser * Remove query regex interfaces * Add selective auto tag * Use page size 0 as no limit
This commit is contained in:
@@ -23,3 +23,35 @@ func (ff FindFilterType) GetDirection() string {
|
||||
}
|
||||
return direction
|
||||
}
|
||||
|
||||
func (ff FindFilterType) GetPage() int {
|
||||
const defaultPage = 1
|
||||
if ff.Page == nil || *ff.Page < 1 {
|
||||
return defaultPage
|
||||
}
|
||||
|
||||
return *ff.Page
|
||||
}
|
||||
|
||||
func (ff FindFilterType) GetPageSize() int {
|
||||
const defaultPerPage = 25
|
||||
const minPerPage = 1
|
||||
const maxPerPage = 1000
|
||||
|
||||
if ff.PerPage == nil {
|
||||
return defaultPerPage
|
||||
}
|
||||
|
||||
if *ff.PerPage > 1000 {
|
||||
return maxPerPage
|
||||
} else if *ff.PerPage < 0 {
|
||||
// PerPage == 0 -> no limit
|
||||
return minPerPage
|
||||
}
|
||||
|
||||
return *ff.PerPage
|
||||
}
|
||||
|
||||
func (ff FindFilterType) IsGetAll() bool {
|
||||
return ff.PerPage != nil && *ff.PerPage == 0
|
||||
}
|
||||
|
||||
@@ -627,13 +627,13 @@ func (_m *SceneReaderWriter) Query(sceneFilter *models.SceneFilterType, findFilt
|
||||
return r0, r1, r2
|
||||
}
|
||||
|
||||
// QueryAllByPathRegex provides a mock function with given fields: regex, ignoreOrganized
|
||||
func (_m *SceneReaderWriter) QueryAllByPathRegex(regex string, ignoreOrganized bool) ([]*models.Scene, error) {
|
||||
ret := _m.Called(regex, ignoreOrganized)
|
||||
// QueryForAutoTag provides a mock function with given fields: regex, pathPrefixes
|
||||
func (_m *SceneReaderWriter) QueryForAutoTag(regex string, pathPrefixes []string) ([]*models.Scene, error) {
|
||||
ret := _m.Called(regex, pathPrefixes)
|
||||
|
||||
var r0 []*models.Scene
|
||||
if rf, ok := ret.Get(0).(func(string, bool) []*models.Scene); ok {
|
||||
r0 = rf(regex, ignoreOrganized)
|
||||
if rf, ok := ret.Get(0).(func(string, []string) []*models.Scene); ok {
|
||||
r0 = rf(regex, pathPrefixes)
|
||||
} else {
|
||||
if ret.Get(0) != nil {
|
||||
r0 = ret.Get(0).([]*models.Scene)
|
||||
@@ -641,8 +641,8 @@ func (_m *SceneReaderWriter) QueryAllByPathRegex(regex string, ignoreOrganized b
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(string, bool) error); ok {
|
||||
r1 = rf(regex, ignoreOrganized)
|
||||
if rf, ok := ret.Get(1).(func(string, []string) error); ok {
|
||||
r1 = rf(regex, pathPrefixes)
|
||||
} else {
|
||||
r1 = ret.Error(1)
|
||||
}
|
||||
@@ -650,36 +650,6 @@ func (_m *SceneReaderWriter) QueryAllByPathRegex(regex string, ignoreOrganized b
|
||||
return r0, r1
|
||||
}
|
||||
|
||||
// QueryByPathRegex provides a mock function with given fields: findFilter
|
||||
func (_m *SceneReaderWriter) QueryByPathRegex(findFilter *models.FindFilterType) ([]*models.Scene, int, error) {
|
||||
ret := _m.Called(findFilter)
|
||||
|
||||
var r0 []*models.Scene
|
||||
if rf, ok := ret.Get(0).(func(*models.FindFilterType) []*models.Scene); ok {
|
||||
r0 = rf(findFilter)
|
||||
} else {
|
||||
if ret.Get(0) != nil {
|
||||
r0 = ret.Get(0).([]*models.Scene)
|
||||
}
|
||||
}
|
||||
|
||||
var r1 int
|
||||
if rf, ok := ret.Get(1).(func(*models.FindFilterType) int); ok {
|
||||
r1 = rf(findFilter)
|
||||
} else {
|
||||
r1 = ret.Get(1).(int)
|
||||
}
|
||||
|
||||
var r2 error
|
||||
if rf, ok := ret.Get(2).(func(*models.FindFilterType) error); ok {
|
||||
r2 = rf(findFilter)
|
||||
} else {
|
||||
r2 = ret.Error(2)
|
||||
}
|
||||
|
||||
return r0, r1, r2
|
||||
}
|
||||
|
||||
// ResetOCounter provides a mock function with given fields: id
|
||||
func (_m *SceneReaderWriter) ResetOCounter(id int) (int, error) {
|
||||
ret := _m.Called(id)
|
||||
|
||||
@@ -21,9 +21,8 @@ type SceneReader interface {
|
||||
CountMissingOSHash() (int, error)
|
||||
Wall(q *string) ([]*Scene, error)
|
||||
All() ([]*Scene, error)
|
||||
QueryForAutoTag(regex string, pathPrefixes []string) ([]*Scene, error)
|
||||
Query(sceneFilter *SceneFilterType, findFilter *FindFilterType) ([]*Scene, int, error)
|
||||
QueryAllByPathRegex(regex string, ignoreOrganized bool) ([]*Scene, error)
|
||||
QueryByPathRegex(findFilter *FindFilterType) ([]*Scene, int, error)
|
||||
GetCover(sceneID int) ([]byte, error)
|
||||
GetMovies(sceneID int) ([]MoviesScenes, error)
|
||||
GetTagIDs(sceneID int) ([]int, error)
|
||||
|
||||
Reference in New Issue
Block a user