Skip to content

Commit 69891da

Browse files
Add files via upload
1 parent fe4428e commit 69891da

11 files changed

+1715
-0
lines changed
390 KB
Binary file not shown.

Main.gd

Lines changed: 198 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,198 @@
1+
extends Node
2+
3+
var city
4+
var state
5+
var stateCode
6+
var zipCode
7+
var lat
8+
var long
9+
var fullURL
10+
var ForecastURL
11+
var HForecastURL
12+
var baseURL = "https://api.weather.gov/points/"
13+
var GeoAPI = "http://ip-api.com/json/"
14+
var ImpUnits = "?units=us"
15+
var CatForecastURL
16+
var WeeklyForecastResult
17+
var HourlyForecastResult
18+
var DetailedForecastNumebr
19+
var CityState = str(city,state)
20+
21+
func _ready():
22+
print("Program Starting")
23+
$GUI/AlertDisplay.visible = false
24+
findLocation()
25+
26+
func findLocation():
27+
print("Finding Location...")
28+
$NetworkController/Location.request(GeoAPI)
29+
30+
func _on_Location_request_completed(result, response_code, headers, body):
31+
print("Location Found.")
32+
var json = JSON.parse(body.get_string_from_utf8())
33+
city = json.result.city
34+
state = json.result.regionName
35+
stateCode = json.result.region
36+
zipCode = json.result.zip
37+
lat = json.result.lat
38+
long = json.result.lon
39+
fullURL = str(baseURL, lat, ",", long)
40+
CityState = str(city," ",state)
41+
$GUI/Forecasts/Window/Header/Location.text = String(CityState)
42+
print("Lat:")
43+
print(lat)
44+
print("Long:")
45+
print(long)
46+
print("Full URL:")
47+
print(fullURL)
48+
print("Fetching Forecast URLs...")
49+
getGridPoints()
50+
51+
func getGridPoints():
52+
$NetworkController/Forecast.request(fullURL)
53+
54+
func _on_Forecast_request_completed(result, response_code, headers, body):
55+
print("Forecast URLs Returned.")
56+
var GPjson = JSON.parse(body.get_string_from_utf8())
57+
ForecastURL = GPjson.result.properties.forecast
58+
HForecastURL = GPjson.result.properties.forecastHourly
59+
CatForecastURL = str(ForecastURL,ImpUnits)
60+
print("Forecast URL:")
61+
print(ForecastURL)
62+
print("Hourly URL:")
63+
print(HForecastURL)
64+
print("Full Weekly URL:")
65+
print(CatForecastURL)
66+
print("Getting Weekly Forecast")
67+
getHourlyForecast()
68+
getWeeklyForecast()
69+
70+
func getHourlyForecast():
71+
$NetworkController/HoulyForecast.request(HForecastURL)
72+
73+
func getWeeklyForecast():
74+
$NetworkController/WeeklyForecast.request(CatForecastURL)
75+
76+
func _on_HoulyForecast_request_completed(result, response_code, headers, body):
77+
var HourlyForecastJSON = JSON.parse(body.get_string_from_utf8())
78+
HourlyForecastResult = HourlyForecastJSON.result.properties.periods
79+
PrintHourlyResults()
80+
81+
func _on_WeeklyForecast_request_completed(result, response_code, headers, body):
82+
var WeeklyForecastJSON = JSON.parse(body.get_string_from_utf8())
83+
WeeklyForecastResult = WeeklyForecastJSON.result.properties.periods
84+
PrintWeeklyResults()
85+
86+
func PrintHourlyResults():
87+
#NowCast
88+
$GUI/Forecasts/Window/NowCast/NowTemp/Temp.text = String(HourlyForecastResult[0].temperature)
89+
$GUI/Forecasts/Window/NowCast/NowTemp/Unit.text = String(HourlyForecastResult[0].temperatureUnit)
90+
$GUI/Forecasts/Window/NowCast/NowWind/WindSpeed.text = String(HourlyForecastResult[0].windSpeed)
91+
$GUI/Forecasts/Window/NowCast/NowWind/Direction.text = String(HourlyForecastResult[0].windDirection)
92+
$GUI/Forecasts/Window/NowCast/ShortCast.text = String(HourlyForecastResult[0].shortForecast)
93+
#Hourly Forecast for Next 24 Hours
94+
$GUI/Forecasts/Window/HourlyScroll/HourlyCast/T0/DateTime.text = String(HourlyForecastResult[1].startTime)
95+
$GUI/Forecasts/Window/HourlyScroll/HourlyCast/T0/T0Temp/Temp.text = String(HourlyForecastResult[1].temperature)
96+
$GUI/Forecasts/Window/HourlyScroll/HourlyCast/T0/T0Temp/Unit.text = String(HourlyForecastResult[1].temperatureUnit)
97+
$GUI/Forecasts/Window/HourlyScroll/HourlyCast/T0/T0Wind/WindSpeed.text = String(HourlyForecastResult[1].windSpeed)
98+
$GUI/Forecasts/Window/HourlyScroll/HourlyCast/T0/T0Wind/Direction.text = String(HourlyForecastResult[1].windDirection)
99+
100+
func PrintWeeklyResults():
101+
$GUI/Forecasts/Window/WeeklyScroll.get_v_scrollbar().modulate = Color(0, 0, 0, 0) #Hide Scroll Bar
102+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W0/Date.text = String(WeeklyForecastResult[0].name)
103+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W0/W0Temp/Temp.text = String(WeeklyForecastResult[0].temperature)
104+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W0/W0Temp/Unit.text = String(WeeklyForecastResult[0].temperatureUnit)
105+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W0/W0Wind/Speed.text = String(WeeklyForecastResult[0].windSpeed)
106+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W0/W0Wind/Direction.text = String(WeeklyForecastResult[0].windDirection)
107+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W0/Forecast.text = String(WeeklyForecastResult[0].detailedForecast)
108+
109+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W1/Date.text = String(WeeklyForecastResult[1].name)
110+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W1/W0Temp/Temp.text = String(WeeklyForecastResult[1].temperature)
111+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W1/W0Temp/Unit.text = String(WeeklyForecastResult[1].temperatureUnit)
112+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W1/W0Wind/Speed.text = String(WeeklyForecastResult[1].windSpeed)
113+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W1/W0Wind/Direction.text = String(WeeklyForecastResult[1].windDirection)
114+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W1/Forecast.text = String(WeeklyForecastResult[1].detailedForecast)
115+
116+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W2/Date.text = String(WeeklyForecastResult[2].name)
117+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W2/W0Temp/Temp.text = String(WeeklyForecastResult[2].temperature)
118+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W2/W0Temp/Unit.text = String(WeeklyForecastResult[2].temperatureUnit)
119+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W2/W0Wind/Speed.text = String(WeeklyForecastResult[2].windSpeed)
120+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W2/W0Wind/Direction.text = String(WeeklyForecastResult[2].windDirection)
121+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W2/Forecast.text = String(WeeklyForecastResult[2].detailedForecast)
122+
123+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W3/Date.text = String(WeeklyForecastResult[3].name)
124+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W3/W0Temp/Temp.text = String(WeeklyForecastResult[3].temperature)
125+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W3/W0Temp/Unit.text = String(WeeklyForecastResult[3].temperatureUnit)
126+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W3/W0Wind/Speed.text = String(WeeklyForecastResult[3].windSpeed)
127+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W3/W0Wind/Direction.text = String(WeeklyForecastResult[3].windDirection)
128+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W3/Forecast.text = String(WeeklyForecastResult[3].detailedForecast)
129+
130+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W4/Date.text = String(WeeklyForecastResult[4].name)
131+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W4/W0Temp/Temp.text = String(WeeklyForecastResult[4].temperature)
132+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W4/W0Temp/Unit.text = String(WeeklyForecastResult[4].temperatureUnit)
133+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W4/W0Wind/Speed.text = String(WeeklyForecastResult[4].windSpeed)
134+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W4/W0Wind/Direction.text = String(WeeklyForecastResult[4].windDirection)
135+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W4/Forecast.text = String(WeeklyForecastResult[4].detailedForecast)
136+
137+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W5/Date.text = String(WeeklyForecastResult[5].name)
138+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W5/W0Temp/Temp.text = String(WeeklyForecastResult[5].temperature)
139+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W5/W0Temp/Unit.text = String(WeeklyForecastResult[5].temperatureUnit)
140+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W5/W0Wind/Speed.text = String(WeeklyForecastResult[5].windSpeed)
141+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W5/W0Wind/Direction.text = String(WeeklyForecastResult[5].windDirection)
142+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W5/Forecast.text = String(WeeklyForecastResult[5].detailedForecast)
143+
144+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W6/Date.text = String(WeeklyForecastResult[6].name)
145+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W6/W0Temp/Temp.text = String(WeeklyForecastResult[6].temperature)
146+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W6/W0Temp/Unit.text = String(WeeklyForecastResult[6].temperatureUnit)
147+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W6/W0Wind/Speed.text = String(WeeklyForecastResult[6].windSpeed)
148+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W6/W0Wind/Direction.text = String(WeeklyForecastResult[6].windDirection)
149+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W6/Forecast.text = String(WeeklyForecastResult[6].detailedForecast)
150+
151+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W7/Date.text = String(WeeklyForecastResult[7].name)
152+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W7/W0Temp/Temp.text = String(WeeklyForecastResult[7].temperature)
153+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W7/W0Temp/Unit.text = String(WeeklyForecastResult[7].temperatureUnit)
154+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W7/W0Wind/Speed.text = String(WeeklyForecastResult[7].windSpeed)
155+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W7/W0Wind/Direction.text = String(WeeklyForecastResult[7].windDirection)
156+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W7/Forecast.text = String(WeeklyForecastResult[7].detailedForecast)
157+
158+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W8/Date.text = String(WeeklyForecastResult[8].name)
159+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W8/W0Temp/Temp.text = String(WeeklyForecastResult[8].temperature)
160+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W8/W0Temp/Unit.text = String(WeeklyForecastResult[8].temperatureUnit)
161+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W8/W0Wind/Speed.text = String(WeeklyForecastResult[8].windSpeed)
162+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W8/W0Wind/Direction.text = String(WeeklyForecastResult[8].windDirection)
163+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W8/Forecast.text = String(WeeklyForecastResult[8].detailedForecast)
164+
165+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W9/Date.text = String(WeeklyForecastResult[9].name)
166+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W9/W0Temp/Temp.text = String(WeeklyForecastResult[9].temperature)
167+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W9/W0Temp/Unit.text = String(WeeklyForecastResult[9].temperatureUnit)
168+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W9/W0Wind/Speed.text = String(WeeklyForecastResult[9].windSpeed)
169+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W9/W0Wind/Direction.text = String(WeeklyForecastResult[9].windDirection)
170+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W9/Forecast.text = String(WeeklyForecastResult[9].detailedForecast)
171+
172+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W10/Date.text = String(WeeklyForecastResult[10].name)
173+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W10/W0Temp/Temp.text = String(WeeklyForecastResult[10].temperature)
174+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W10/W0Temp/Unit.text = String(WeeklyForecastResult[10].temperatureUnit)
175+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W10/W0Wind/Speed.text = String(WeeklyForecastResult[10].windSpeed)
176+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W10/W0Wind/Direction.text = String(WeeklyForecastResult[10].windDirection)
177+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W10/Forecast.text = String(WeeklyForecastResult[10].detailedForecast)
178+
179+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W11/Date.text = String(WeeklyForecastResult[11].name)
180+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W11/W0Temp/Temp.text = String(WeeklyForecastResult[11].temperature)
181+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W11/W0Temp/Unit.text = String(WeeklyForecastResult[11].temperatureUnit)
182+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W11/W0Wind/Speed.text = String(WeeklyForecastResult[11].windSpeed)
183+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W11/W0Wind/Direction.text = String(WeeklyForecastResult[11].windDirection)
184+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W11/Forecast.text = String(WeeklyForecastResult[11].detailedForecast)
185+
186+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W12/Date.text = String(WeeklyForecastResult[12].name)
187+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W12/W0Temp/Temp.text = String(WeeklyForecastResult[12].temperature)
188+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W12/W0Temp/Unit.text = String(WeeklyForecastResult[12].temperatureUnit)
189+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W12/W0Wind/Speed.text = String(WeeklyForecastResult[12].windSpeed)
190+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W12/W0Wind/Direction.text = String(WeeklyForecastResult[12].windDirection)
191+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W12/Forecast.text = String(WeeklyForecastResult[12].detailedForecast)
192+
193+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W13/Date.text = String(WeeklyForecastResult[13].name)
194+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W13/W0Temp/Temp.text = String(WeeklyForecastResult[13].temperature)
195+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W13/W0Temp/Unit.text = String(WeeklyForecastResult[13].temperatureUnit)
196+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W13/W0Wind/Speed.text = String(WeeklyForecastResult[13].windSpeed)
197+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W13/W0Wind/Direction.text = String(WeeklyForecastResult[13].windDirection)
198+
$GUI/Forecasts/Window/WeeklyScroll/WeekCast/W13/Forecast.text = String(WeeklyForecastResult[13].detailedForecast)

0 commit comments

Comments
 (0)