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