Fix identify and script scraper bugs (#2375)

* Continue identify if source fails
* Handle empty result set correctly
* Parse null values from scraper script correctly
* Omit warning when json selector value missing
* Return nil when scraped item not found
* Fix graphql validation errors
This commit is contained in:
WithoutPants
2022-03-15 09:42:22 +11:00
committed by GitHub
parent e4d6d3b085
commit 9e3d56b22f
11 changed files with 86 additions and 37 deletions

View File

@@ -173,21 +173,21 @@ func (s *scriptScraper) scrapeByURL(ctx context.Context, url string, ty models.S
func (s *scriptScraper) scrape(ctx context.Context, input string, ty models.ScrapeContentType) (models.ScrapedContent, error) {
switch ty {
case models.ScrapeContentTypePerformer:
var performer models.ScrapedPerformer
var performer *models.ScrapedPerformer
err := s.runScraperScript(input, &performer)
return &performer, err
return performer, err
case models.ScrapeContentTypeGallery:
var gallery models.ScrapedGallery
var gallery *models.ScrapedGallery
err := s.runScraperScript(input, &gallery)
return &gallery, err
return gallery, err
case models.ScrapeContentTypeScene:
var scene models.ScrapedScene
var scene *models.ScrapedScene
err := s.runScraperScript(input, &scene)
return &scene, err
return scene, err
case models.ScrapeContentTypeMovie:
var movie models.ScrapedMovie
var movie *models.ScrapedMovie
err := s.runScraperScript(input, &movie)
return &movie, err
return movie, err
}
return nil, ErrNotSupported
@@ -200,11 +200,11 @@ func (s *scriptScraper) scrapeSceneByScene(ctx context.Context, scene *models.Sc
return nil, err
}
var ret models.ScrapedScene
var ret *models.ScrapedScene
err = s.runScraperScript(string(inString), &ret)
return &ret, err
return ret, err
}
func (s *scriptScraper) scrapeGalleryByGallery(ctx context.Context, gallery *models.Gallery) (*models.ScrapedGallery, error) {
@@ -214,11 +214,11 @@ func (s *scriptScraper) scrapeGalleryByGallery(ctx context.Context, gallery *mod
return nil, err
}
var ret models.ScrapedGallery
var ret *models.ScrapedGallery
err = s.runScraperScript(string(inString), &ret)
return &ret, err
return ret, err
}
func findPythonExecutable() (string, error) {