mirror of https://github.com/stashapp/stash.git
130 lines
4.4 KiB
Go
130 lines
4.4 KiB
Go
package api
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"github.com/stashapp/stash/pkg/manager"
|
|
"github.com/stashapp/stash/pkg/manager/config"
|
|
"github.com/stashapp/stash/pkg/models"
|
|
"github.com/stashapp/stash/pkg/scraper"
|
|
"github.com/stashapp/stash/pkg/scraper/stashbox"
|
|
)
|
|
|
|
// deprecated
|
|
func (r *queryResolver) ScrapeFreeones(ctx context.Context, performer_name string) (*models.ScrapedPerformer, error) {
|
|
scrapedPerformer := models.ScrapedPerformerInput{
|
|
Name: &performer_name,
|
|
}
|
|
return manager.GetInstance().ScraperCache.ScrapePerformer(scraper.FreeonesScraperID, scrapedPerformer)
|
|
}
|
|
|
|
// deprecated
|
|
func (r *queryResolver) ScrapeFreeonesPerformerList(ctx context.Context, query string) ([]string, error) {
|
|
scrapedPerformers, err := manager.GetInstance().ScraperCache.ScrapePerformerList(scraper.FreeonesScraperID, query)
|
|
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
var ret []string
|
|
for _, v := range scrapedPerformers {
|
|
name := v.Name
|
|
ret = append(ret, *name)
|
|
}
|
|
|
|
return ret, nil
|
|
}
|
|
|
|
func (r *queryResolver) ListPerformerScrapers(ctx context.Context) ([]*models.Scraper, error) {
|
|
return manager.GetInstance().ScraperCache.ListPerformerScrapers(), nil
|
|
}
|
|
|
|
func (r *queryResolver) ListSceneScrapers(ctx context.Context) ([]*models.Scraper, error) {
|
|
return manager.GetInstance().ScraperCache.ListSceneScrapers(), nil
|
|
}
|
|
|
|
func (r *queryResolver) ListGalleryScrapers(ctx context.Context) ([]*models.Scraper, error) {
|
|
return manager.GetInstance().ScraperCache.ListGalleryScrapers(), nil
|
|
}
|
|
|
|
func (r *queryResolver) ListMovieScrapers(ctx context.Context) ([]*models.Scraper, error) {
|
|
return manager.GetInstance().ScraperCache.ListMovieScrapers(), nil
|
|
}
|
|
|
|
func (r *queryResolver) ScrapePerformerList(ctx context.Context, scraperID string, query string) ([]*models.ScrapedPerformer, error) {
|
|
if query == "" {
|
|
return nil, nil
|
|
}
|
|
|
|
return manager.GetInstance().ScraperCache.ScrapePerformerList(scraperID, query)
|
|
}
|
|
|
|
func (r *queryResolver) ScrapePerformer(ctx context.Context, scraperID string, scrapedPerformer models.ScrapedPerformerInput) (*models.ScrapedPerformer, error) {
|
|
return manager.GetInstance().ScraperCache.ScrapePerformer(scraperID, scrapedPerformer)
|
|
}
|
|
|
|
func (r *queryResolver) ScrapePerformerURL(ctx context.Context, url string) (*models.ScrapedPerformer, error) {
|
|
return manager.GetInstance().ScraperCache.ScrapePerformerURL(url)
|
|
}
|
|
|
|
func (r *queryResolver) ScrapeScene(ctx context.Context, scraperID string, scene models.SceneUpdateInput) (*models.ScrapedScene, error) {
|
|
return manager.GetInstance().ScraperCache.ScrapeScene(scraperID, scene)
|
|
}
|
|
|
|
func (r *queryResolver) ScrapeSceneURL(ctx context.Context, url string) (*models.ScrapedScene, error) {
|
|
return manager.GetInstance().ScraperCache.ScrapeSceneURL(url)
|
|
}
|
|
|
|
func (r *queryResolver) ScrapeGallery(ctx context.Context, scraperID string, gallery models.GalleryUpdateInput) (*models.ScrapedGallery, error) {
|
|
return manager.GetInstance().ScraperCache.ScrapeGallery(scraperID, gallery)
|
|
}
|
|
|
|
func (r *queryResolver) ScrapeGalleryURL(ctx context.Context, url string) (*models.ScrapedGallery, error) {
|
|
return manager.GetInstance().ScraperCache.ScrapeGalleryURL(url)
|
|
}
|
|
|
|
func (r *queryResolver) ScrapeMovieURL(ctx context.Context, url string) (*models.ScrapedMovie, error) {
|
|
return manager.GetInstance().ScraperCache.ScrapeMovieURL(url)
|
|
}
|
|
|
|
func (r *queryResolver) QueryStashBoxScene(ctx context.Context, input models.StashBoxSceneQueryInput) ([]*models.ScrapedScene, error) {
|
|
boxes := config.GetInstance().GetStashBoxes()
|
|
|
|
if input.StashBoxIndex < 0 || input.StashBoxIndex >= len(boxes) {
|
|
return nil, fmt.Errorf("invalid stash_box_index %d", input.StashBoxIndex)
|
|
}
|
|
|
|
client := stashbox.NewClient(*boxes[input.StashBoxIndex], r.txnManager)
|
|
|
|
if len(input.SceneIds) > 0 {
|
|
return client.FindStashBoxScenesByFingerprints(input.SceneIds)
|
|
}
|
|
|
|
if input.Q != nil {
|
|
return client.QueryStashBoxScene(*input.Q)
|
|
}
|
|
|
|
return nil, nil
|
|
}
|
|
|
|
func (r *queryResolver) QueryStashBoxPerformer(ctx context.Context, input models.StashBoxPerformerQueryInput) ([]*models.StashBoxPerformerQueryResult, error) {
|
|
boxes := config.GetInstance().GetStashBoxes()
|
|
|
|
if input.StashBoxIndex < 0 || input.StashBoxIndex >= len(boxes) {
|
|
return nil, fmt.Errorf("invalid stash_box_index %d", input.StashBoxIndex)
|
|
}
|
|
|
|
client := stashbox.NewClient(*boxes[input.StashBoxIndex], r.txnManager)
|
|
|
|
if len(input.PerformerIds) > 0 {
|
|
return client.FindStashBoxPerformersByNames(input.PerformerIds)
|
|
}
|
|
|
|
if input.Q != nil {
|
|
return client.QueryStashBoxPerformer(*input.Q)
|
|
}
|
|
|
|
return nil, nil
|
|
}
|