Discard null values from scraper results (#1374)

This commit is contained in:
bnkai 2021-05-16 09:40:54 +03:00 committed by GitHub
parent c73025c86d
commit bc9aa02835
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 4 deletions

View file

@ -75,7 +75,7 @@ func (s mappedConfig) postProcess(q mappedQuery, attrConfig mappedScraperAttrCon
result = attrConfig.postProcess(result, q)
if attrConfig.hasSplit() {
results := attrConfig.splitString(result)
results = attrConfig.distinctResults(results)
results = attrConfig.cleanResults(results)
return results
}
@ -89,7 +89,7 @@ func (s mappedConfig) postProcess(q mappedQuery, attrConfig mappedScraperAttrCon
ret = append(ret, text)
}
ret = attrConfig.distinctResults(ret)
ret = attrConfig.cleanResults(ret)
}
return ret
@ -643,8 +643,10 @@ func (c mappedScraperAttrConfig) concatenateResults(nodes []string) string {
return strings.Join(result, separator)
}
func (c mappedScraperAttrConfig) distinctResults(nodes []string) []string {
return utils.StrUnique(nodes)
func (c mappedScraperAttrConfig) cleanResults(nodes []string) []string {
cleaned := utils.StrUnique(nodes) // remove duplicate values
cleaned = utils.StrDelete(cleaned, "") // remove empty values
return cleaned
}
func (c mappedScraperAttrConfig) splitString(value string) []string {

View file

@ -69,6 +69,17 @@ func StrUnique(vs []string) []string {
return ret
}
// StrDelete returns the vs string slice with toDel values removed.
func StrDelete(vs []string, toDel string) []string {
var ret []string
for _, v := range vs {
if v != toDel {
ret = append(ret, v)
}
}
return ret
}
// StringSliceToIntSlice converts a slice of strings to a slice of ints.
// Returns an error if any values cannot be parsed.
func StringSliceToIntSlice(ss []string) ([]int, error) {