mirror of
https://github.com/stashapp/stash.git
synced 2025-12-06 16:34:02 +01:00
* Make config instance-based * Remove config dependency in paths * Refactor config init * Allow startup without database * Get system status at UI initialise * Add setup wizard * Cache and Metadata optional. Database mandatory * Handle metadata not set during full import/export * Add links * Remove config check middleware * Stash not mandatory * Panic on missing mandatory config fields * Redirect setup to main page if setup not required * Add migration UI * Remove unused stuff * Move UI initialisation into App * Don't create metadata paths on RefreshConfig * Add folder selector for generated in setup * Env variable to set and create config file. Make docker images use a fixed config file. * Set config file during setup
109 lines
3.8 KiB
Go
109 lines
3.8 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.StashBoxQueryInput) ([]*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
|
|
}
|