refactor: deduplicate numericOnly and DuckDuckGo result extraction
- Extract identical numericOnly inline functions from powerball and megamillions into shared sites/internal/parse.NumericOnly with tests - Extract duplicated DuckDuckGo result parsing from Search() and GetResults() into shared extractResults() helper Closes #13, #14 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
21
sites/internal/parse/parse.go
Normal file
21
sites/internal/parse/parse.go
Normal file
@@ -0,0 +1,21 @@
|
||||
package parse
|
||||
|
||||
import "strconv"
|
||||
|
||||
// NumericOnly extracts only digits and decimal points from a string and
|
||||
// returns the result as a float64. Returns 0 if parsing fails.
|
||||
func NumericOnly(in string) float64 {
|
||||
var out string
|
||||
for _, r := range in {
|
||||
if (r >= '0' && r <= '9') || r == '.' {
|
||||
out += string(r)
|
||||
}
|
||||
}
|
||||
|
||||
val, err := strconv.ParseFloat(out, 64)
|
||||
if err != nil {
|
||||
return 0
|
||||
}
|
||||
|
||||
return val
|
||||
}
|
||||
Reference in New Issue
Block a user