chore: updated regex for weather condition parsing
a1ac9a11
1 file(s) · +4 −2
| 359 | 359 | ||
| 360 | 360 | var weatherClient = &http.Client{Timeout: 10 * time.Second} |
|
| 361 | 361 | ||
| 362 | - | var qualifierRE = regexp.MustCompile(`(?i)^(slight chance|chance|isolated|scattered|patchy|areas)\s+(of\s+)?`) |
|
| 362 | + | var qualifierRE = regexp.MustCompile(`(?i)^(slight chance|chance|isolated|scattered|numerous|widespread|patchy|areas|periods|occasional|frequent)\s+(of\s+)?`) |
|
| 363 | + | var trailingQualifierRE = regexp.MustCompile(`(?i)\s+(likely)$`) |
|
| 363 | 364 | ||
| 364 | 365 | func getWeather(location string) string { |
|
| 365 | 366 | if location == "" { |
|
| 400 | 401 | } |
|
| 401 | 402 | period := weatherForecast.Properties.Periods[0] |
|
| 402 | 403 | temp := strconv.Itoa(period.Temperature) |
|
| 403 | - | formattedConditions := strings.TrimSpace(qualifierRE.ReplaceAllString(period.ShortForecast, "")) |
|
| 404 | + | stripped := qualifierRE.ReplaceAllString(period.ShortForecast, "") |
|
| 405 | + | formattedConditions := strings.TrimSpace(trailingQualifierRE.ReplaceAllString(stripped, "")) |
|
| 404 | 406 | weather := fmt.Sprintf("%s,%s,%s,%s", formattedConditions, temp, city, state) |
|
| 405 | 407 | return weather |
|
| 406 | 408 | } |
|