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)
|
## 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
|
```bash
|
||||||
curl -s "wttr.in/London?format=3"
|
curl -s "https://wttr.in/London?format=3"
|
||||||
# Output: London: ⛅️ +8°C
|
# Output: London: ⛅️ +8°C
|
||||||
```
|
```
|
||||||
|
|
||||||
Compact format:
|
Custom current conditions format:
|
||||||
```bash
|
```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
|
# 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:
|
Full forecast:
|
||||||
```bash
|
```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
|
Format codes: `%c` condition · `%t` temp · `%h` humidity · `%w` wind · `%l` location · `%m` moon
|
||||||
|
|
||||||
Tips:
|
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