mirror of
https://github.com/stashapp/stash.git
synced 2025-12-18 04:44:37 +03:00
Identify task (#1839)
* Add identify task * Change type naming * Debounce folder select text input * Add generic slice comparison function
This commit is contained in:
39
pkg/models/stash_box.go
Normal file
39
pkg/models/stash_box.go
Normal file
@@ -0,0 +1,39 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type StashBoxes []*StashBox
|
||||
|
||||
func (sb StashBoxes) ResolveStashBox(source ScraperSourceInput) (*StashBox, error) {
|
||||
if source.StashBoxIndex != nil {
|
||||
index := source.StashBoxIndex
|
||||
if *index < 0 || *index >= len(sb) {
|
||||
return nil, fmt.Errorf("%w: invalid stash_box_index: %d", ErrScraperSource, index)
|
||||
}
|
||||
|
||||
return sb[*index], nil
|
||||
}
|
||||
|
||||
if source.StashBoxEndpoint != nil {
|
||||
var ret *StashBox
|
||||
endpoint := *source.StashBoxEndpoint
|
||||
for _, b := range sb {
|
||||
if strings.EqualFold(endpoint, b.Endpoint) {
|
||||
ret = b
|
||||
}
|
||||
}
|
||||
|
||||
if ret == nil {
|
||||
return nil, fmt.Errorf(`%w: stash-box with endpoint "%s"`, ErrNotFound, endpoint)
|
||||
}
|
||||
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
// neither stash-box inputs were provided, so assume it is a scraper
|
||||
|
||||
return nil, nil
|
||||
}
|
||||
Reference in New Issue
Block a user