- Add KB Statistics keywords for Qdrant vector database monitoring: KB STATISTICS, KB COLLECTION STATS, KB DOCUMENTS COUNT, KB DOCUMENTS ADDED SINCE, KB LIST COLLECTIONS, KB STORAGE SIZE - Add comprehensive infrastructure documentation: - Scaling and load balancing with LXC containers - Infrastructure design with encryption, sharding strategies - Observ
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
|