Add "split" xpath in post-processing , newlines in replace support (#579)

This commit is contained in:
bnkai
2020-06-18 03:47:10 +03:00
committed by GitHub
parent 3fbb4cdc32
commit 9d0522f62d
4 changed files with 109 additions and 4 deletions

View File

@@ -663,6 +663,14 @@ func makeSceneXPathConfig() xpathScraper {
studioConfig["URL"] = `$studioElem/@href`
config["Studio"] = studioConfig
const sep = " "
moviesNameConfig := make(map[interface{}]interface{})
moviesNameConfig["selector"] = `//i[@class="isMe tooltipTrig"]/@data-title`
moviesNameConfig["split"] = sep
moviesConfig := make(map[interface{}]interface{})
moviesConfig["Name"] = moviesNameConfig
config["Movies"] = moviesConfig
scraper := xpathScraper{
Scene: config,
Common: common,
@@ -692,6 +700,27 @@ func verifyTags(t *testing.T, expectedTagNames []string, actualTags []*models.Sc
}
}
func verifyMovies(t *testing.T, expectedMovieNames []string, actualMovies []*models.ScrapedSceneMovie) {
t.Helper()
i := 0
for i < len(expectedMovieNames) || i < len(actualMovies) {
expectedMovie := ""
actualMovie := ""
if i < len(expectedMovieNames) {
expectedMovie = expectedMovieNames[i]
}
if i < len(actualMovies) {
actualMovie = actualMovies[i].Name
}
if expectedMovie != actualMovie {
t.Errorf("Expected movie %s, got %s", expectedMovie, actualMovie)
}
i++
}
}
func verifyPerformers(t *testing.T, expectedNames []string, expectedURLs []string, actualPerformers []*models.ScrapedScenePerformer) {
t.Helper()
@@ -761,6 +790,15 @@ func TestApplySceneXPathConfig(t *testing.T) {
}
verifyTags(t, expectedTags, scene.Tags)
// verify movies
expectedMovies := []string{
"Video",
"of",
"verified",
"member",
}
verifyMovies(t, expectedMovies, scene.Movies)
expectedPerformerNames := []string{
"Alex D",
"Mia Malkova",