seperated weather data
This commit is contained in:
parent
b209d1b530
commit
388d0a259d
129
weather.go
Normal file
129
weather.go
Normal file
@ -0,0 +1,129 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/fatih/color"
|
||||
)
|
||||
|
||||
type WeatherAPI struct {
|
||||
Coord Coord `json:"coord"`
|
||||
Weather []Weather `json:"weather"`
|
||||
Base string `json:"base"`
|
||||
Main Main `json:"main"`
|
||||
Visability int64 `json:"visibility"`
|
||||
Wind Wind `json:"wind"`
|
||||
Rain Rain `json:"rain"`
|
||||
Clouds Cloud `json:"cloud"`
|
||||
DT int64 `json:"dt"`
|
||||
Sys Sys `json:"sys"`
|
||||
TimeZone int `json:"timezone"`
|
||||
ID int `json:"id"`
|
||||
Name string `json:"name"`
|
||||
COD int `json:"cod"`
|
||||
}
|
||||
|
||||
type Coord struct {
|
||||
Lon float64 `json:"lon"`
|
||||
Lat float64 `json:"lat"`
|
||||
}
|
||||
|
||||
type Weather struct {
|
||||
ID int `json:"id"`
|
||||
Main string `json:"main"`
|
||||
Description string `json:"description"`
|
||||
Icon string `json:"icon"`
|
||||
}
|
||||
|
||||
type Main struct {
|
||||
Temp float64 `json:"temp"`
|
||||
Feels_like float64 `json:"feels_like"`
|
||||
Temp_min float64 `json:"temp_min"`
|
||||
Temp_max float64 `json:"temp_max"`
|
||||
Pressure float64 `json:"pressure"`
|
||||
Humidity float64 `json:"humidity"`
|
||||
}
|
||||
|
||||
type Wind struct {
|
||||
Speed float64 `json:"speed"`
|
||||
Deg float64 `json:"deg"`
|
||||
Gust float64 `json:"gust"`
|
||||
}
|
||||
|
||||
type Rain struct {
|
||||
T1h float64 `json:"1h"`
|
||||
}
|
||||
|
||||
type Cloud struct {
|
||||
All int `json:"all"`
|
||||
}
|
||||
|
||||
type Sys struct {
|
||||
Types int `json:"type"`
|
||||
Id int64 `json:"id"`
|
||||
Country string `json:"country"`
|
||||
Sunrise int64 `json:"sunrise"`
|
||||
Sunset int64 `json:"sunset"`
|
||||
}
|
||||
|
||||
func iconToEmoji(icon string) {
|
||||
var em string
|
||||
switch icon {
|
||||
case "Clouds":
|
||||
em = "☁️"
|
||||
case "Drizzle":
|
||||
em = "🌧️"
|
||||
case "Rain":
|
||||
em = "🌧️"
|
||||
case "Snow":
|
||||
em = "❄️"
|
||||
case "Clear":
|
||||
em = "☀️"
|
||||
default:
|
||||
em = "☀️"
|
||||
}
|
||||
fmt.Print(em)
|
||||
}
|
||||
|
||||
func printWeather(data WeatherAPI) {
|
||||
weatherData := data
|
||||
|
||||
white := color.New(color.FgWhite)
|
||||
boldWhite := white.Add(color.Bold)
|
||||
|
||||
dt := time.Now()
|
||||
boldWhite.Println(dt.Format("01/02/2006 15:04"))
|
||||
|
||||
str_loc := weatherData.Name
|
||||
str_code := weatherData.Sys.Country
|
||||
str_weather := weatherData.Weather[0].Main
|
||||
str_weather_detail := weatherData.Weather[0].Description
|
||||
str_weather_icon := weatherData.Weather[0].Main
|
||||
str_temp := weatherData.Main.Temp
|
||||
str_temp_fl := weatherData.Main.Feels_like
|
||||
str_temp_min := weatherData.Main.Temp_min
|
||||
str_temp_max := weatherData.Main.Temp_max
|
||||
str_sunset := time.Unix(weatherData.Sys.Sunset, 0)
|
||||
str_sunrise := time.Unix(weatherData.Sys.Sunrise, 0)
|
||||
//str_wind_speed := weatherData.Wind.Speed
|
||||
|
||||
boldWhite.Printf("⚙️TESTING⚙️\n")
|
||||
|
||||
boldWhite.Printf("📍Location: ")
|
||||
fmt.Printf("%v, %v\n", str_loc, str_code)
|
||||
|
||||
boldWhite.Printf("Weather:")
|
||||
iconToEmoji(str_weather_icon)
|
||||
fmt.Printf(" %v (%v)\n", str_weather, str_weather_detail)
|
||||
|
||||
boldWhite.Printf("🌡️ Temp: ")
|
||||
fmt.Printf("%v°C (Feels like: %v°C)\n(Min: %v°C, Max: %v°C)\n", str_temp, str_temp_fl, str_temp_min, str_temp_max)
|
||||
|
||||
boldWhite.Printf("🌅Sunrise: ")
|
||||
fmt.Printf("%v\t", str_sunrise.Format("15:04"))
|
||||
boldWhite.Printf("🌇Sunset: ")
|
||||
|
||||
fmt.Printf("%v\n", str_sunset.Format("15:04"))
|
||||
//fmt.Printf("Wind Speed: %vm/s", str_wind_speed)
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user