mirror of
https://github.com/HKUDS/nanobot.git
synced 2026-08-12 07:09:19 +03:00
fix(skills): make weather workflow Windows-safe
This commit is contained in:
@@ -11,23 +11,39 @@ Two free services, no API keys needed.
|
||||
|
||||
## wttr.in (primary)
|
||||
|
||||
Quick one-liner:
|
||||
Choose one request that matches the user's scope. Do not fetch current
|
||||
conditions separately when a today or forecast request already includes them.
|
||||
|
||||
Platform notes:
|
||||
- On Windows PowerShell, use `curl.exe`; bare `curl` may resolve to
|
||||
`Invoke-WebRequest`.
|
||||
- On macOS and Linux, use `curl`.
|
||||
|
||||
Current conditions only:
|
||||
```bash
|
||||
curl -s "wttr.in/London?format=3"
|
||||
curl -s "https://wttr.in/London?format=3"
|
||||
# Output: London: ⛅️ +8°C
|
||||
```
|
||||
|
||||
Compact format:
|
||||
Custom current conditions format:
|
||||
```bash
|
||||
curl -s "wttr.in/London?format=%l:+%c+%t+%h+%w"
|
||||
curl -s "https://wttr.in/London?format=%l:+%c+%t+%h+%w"
|
||||
# Output: London: ⛅️ +8°C 71% ↙5km/h
|
||||
```
|
||||
|
||||
Today's weather, including current conditions (use this single request for
|
||||
questions about today's weather):
|
||||
```bash
|
||||
curl -s "https://wttr.in/London?1&m"
|
||||
```
|
||||
|
||||
Full forecast:
|
||||
```bash
|
||||
curl -s "wttr.in/London?T"
|
||||
curl -s "https://wttr.in/London?T&m"
|
||||
```
|
||||
|
||||
On Windows PowerShell, replace `curl` with `curl.exe` in the commands above.
|
||||
|
||||
Format codes: `%c` condition · `%t` temp · `%h` humidity · `%w` wind · `%l` location · `%m` moon
|
||||
|
||||
Tips:
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
from nanobot.agent.skills import BUILTIN_SKILLS_DIR
|
||||
|
||||
|
||||
def test_weather_skill_uses_windows_safe_single_today_request() -> None:
|
||||
content = (BUILTIN_SKILLS_DIR / "weather" / "SKILL.md").read_text(encoding="utf-8")
|
||||
normalized = " ".join(content.split())
|
||||
|
||||
assert "On Windows PowerShell, use `curl.exe`" in normalized
|
||||
assert "bare `curl` may resolve to `Invoke-WebRequest`" in normalized
|
||||
assert "https://wttr.in/London?1&m" in content
|
||||
assert (
|
||||
"Do not fetch current conditions separately when a today or forecast "
|
||||
"request already includes them."
|
||||
) in normalized
|
||||
Reference in New Issue
Block a user