- Add comprehensive documentation in botbook/ with 12 chapters - Add botapp/ Tauri desktop application - Add botdevice/ IoT device support - Add botlib/ shared library crate - Add botmodels/ Python ML models service - Add botplugin/ browser extension - Add botserver/ reorganized server code - Add bottemplates/ bot templates - Add bottest/ integration tests - Add botui/ web UI server - Add CI/CD workflows in .forgejo/workflows/ - Add AGENTS.md and PROD.md documentation - Add dependency management scripts (DEPENDENCIES.sh/ps1) - Remove legacy src/ structure and migrations - Clean up temporary and backup files
112 lines
3.1 KiB
QBasic
112 lines
3.1 KiB
QBasic
PARAM location AS STRING LIKE "New York" DESCRIPTION "City or location to get weather forecast"
|
|
|
|
DESCRIPTION "Get current weather forecast for any city or location"
|
|
|
|
lat = 40.7128
|
|
lon = -74.0060
|
|
|
|
location_lower = LCASE(location)
|
|
|
|
IF INSTR(location_lower, "new york") > 0 THEN
|
|
lat = 40.7128
|
|
lon = -74.0060
|
|
ELSE IF INSTR(location_lower, "london") > 0 THEN
|
|
lat = 51.5074
|
|
lon = -0.1278
|
|
ELSE IF INSTR(location_lower, "paris") > 0 THEN
|
|
lat = 48.8566
|
|
lon = 2.3522
|
|
ELSE IF INSTR(location_lower, "tokyo") > 0 THEN
|
|
lat = 35.6762
|
|
lon = 139.6503
|
|
ELSE IF INSTR(location_lower, "sydney") > 0 THEN
|
|
lat = -33.8688
|
|
lon = 151.2093
|
|
ELSE IF INSTR(location_lower, "berlin") > 0 THEN
|
|
lat = 52.5200
|
|
lon = 13.4050
|
|
ELSE IF INSTR(location_lower, "madrid") > 0 THEN
|
|
lat = 40.4168
|
|
lon = -3.7038
|
|
ELSE IF INSTR(location_lower, "sao paulo") > 0 OR INSTR(location_lower, "são paulo") > 0 THEN
|
|
lat = -23.5505
|
|
lon = -46.6333
|
|
ELSE IF INSTR(location_lower, "rio") > 0 THEN
|
|
lat = -22.9068
|
|
lon = -43.1729
|
|
ELSE IF INSTR(location_lower, "los angeles") > 0 THEN
|
|
lat = 34.0522
|
|
lon = -118.2437
|
|
ELSE IF INSTR(location_lower, "chicago") > 0 THEN
|
|
lat = 41.8781
|
|
lon = -87.6298
|
|
ELSE IF INSTR(location_lower, "toronto") > 0 THEN
|
|
lat = 43.6532
|
|
lon = -79.3832
|
|
ELSE IF INSTR(location_lower, "dubai") > 0 THEN
|
|
lat = 25.2048
|
|
lon = 55.2708
|
|
ELSE IF INSTR(location_lower, "singapore") > 0 THEN
|
|
lat = 1.3521
|
|
lon = 103.8198
|
|
ELSE IF INSTR(location_lower, "mumbai") > 0 THEN
|
|
lat = 19.0760
|
|
lon = 72.8777
|
|
ELSE IF INSTR(location_lower, "beijing") > 0 THEN
|
|
lat = 39.9042
|
|
lon = 116.4074
|
|
END IF
|
|
|
|
weather_url = "https://api.open-meteo.com/v1/forecast?latitude=" + lat + "&longitude=" + lon + "¤t_weather=true&timezone=auto"
|
|
|
|
weather_data = GET weather_url
|
|
|
|
IF weather_data.current_weather THEN
|
|
current = weather_data.current_weather
|
|
|
|
code = current.weathercode
|
|
condition = "Clear"
|
|
icon = "☀️"
|
|
|
|
IF code = 0 THEN
|
|
condition = "Clear sky"
|
|
icon = "☀️"
|
|
ELSE IF code >= 1 AND code <= 3 THEN
|
|
condition = "Partly cloudy"
|
|
icon = "⛅"
|
|
ELSE IF code >= 45 AND code <= 48 THEN
|
|
condition = "Foggy"
|
|
icon = "🌫️"
|
|
ELSE IF code >= 51 AND code <= 67 THEN
|
|
condition = "Rainy"
|
|
icon = "🌧️"
|
|
ELSE IF code >= 71 AND code <= 77 THEN
|
|
condition = "Snowy"
|
|
icon = "❄️"
|
|
ELSE IF code >= 80 AND code <= 82 THEN
|
|
condition = "Rain showers"
|
|
icon = "🌦️"
|
|
ELSE IF code >= 95 AND code <= 99 THEN
|
|
condition = "Thunderstorm"
|
|
icon = "⛈️"
|
|
END IF
|
|
|
|
WITH result
|
|
loc = location
|
|
temperature = current.temperature
|
|
windspeed = current.windspeed
|
|
weathercode = code
|
|
cond = condition
|
|
ico = icon
|
|
END WITH
|
|
|
|
TALK icon + " Weather for " + location + ":"
|
|
TALK "Temperature: " + current.temperature + "°C"
|
|
TALK "Condition: " + condition
|
|
TALK "Wind: " + current.windspeed + " km/h"
|
|
|
|
RETURN result
|
|
ELSE
|
|
TALK "Could not fetch weather for: " + location
|
|
RETURN NULL
|
|
END IF
|