diff --git a/main.py b/main.py
index 905b9f6..91457a6 100644
--- a/main.py
+++ b/main.py
@@ -2,7 +2,7 @@ import asyncio
from asyncio.log import logger
from asyncore import loop
import logging,coloredlogs
-from recordGenerators import DailyForecast,CurrentObservations,HourlyForecast,AirQuality,AirportDelays,PollenForecast,Breathing,Alerts
+import recordGenerators as RG
from radar import TWCRadarProcessor, RadarProcessor
import os
@@ -35,7 +35,7 @@ l.info("Developed by mewtek32, Floppaa, Goldblaze, and needlenose")
async def grabAlertsLoop():
while True:
- Alerts.makeRecord()
+ RG.Alerts.makeRecord()
await asyncio.sleep(60)
@@ -47,18 +47,19 @@ async def grabAlertsLoop():
async def FiveMinUpdaters():
while True:
- CurrentObservations.makeDataFile()
+ RG.CurrentObservations.makeDataFile()
l.debug("Sleeping for 5 minutes...")
await asyncio.sleep(5 * 60)
async def HourUpdaters():
while True:
- DailyForecast.makeDataFile()
- HourlyForecast.makeDataFile()
- AirQuality.writeData()
- PollenForecast.makeDataFile()
- AirportDelays.writeData()
- Breathing.makeDataFile()
+ RG.DailyForecast.makeDataFile()
+ RG.HourlyForecast.makeDataFile()
+ RG.AirQuality.writeData()
+ RG.PollenForecast.makeDataFile()
+ RG.AirportDelays.writeData()
+ RG.Breathing.makeDataFile()
+ RG.HeatingAndCooling.makeRecord()
l.debug("Sleeping for an hour...")
await asyncio.sleep(60 * 60)
diff --git a/recordGenerators/HeatingAndCooling.py b/recordGenerators/HeatingAndCooling.py
new file mode 100644
index 0000000..1eef679
--- /dev/null
+++ b/recordGenerators/HeatingAndCooling.py
@@ -0,0 +1,76 @@
+import shutil
+import requests
+import logging,coloredlogs
+from py2Lib import bit
+import Util.MachineProductCfg as MPC
+import records.LFRecord as LFR
+import gzip
+from os import remove
+import xml.dom.minidom
+
+l = logging.getLogger(__name__)
+coloredlogs.install()
+
+geocodes = []
+coopIds = []
+
+for i in MPC.getPrimaryLocations():
+ coopIds.append(LFR.getCoopId(i))
+ geocodes.append(LFR.getLatLong(i).replace('/', ','))
+
+apiKey = "21d8a80b3d6b444998a80b3d6b1449d3"
+
+def getData(coopId, geocode):
+ fetchUrl = f"https://api.weather.com/indices/heatCool/daypart/7day?geocode={geocode}&language=en-US&format=xml&apiKey={apiKey}"
+
+ res = requests.get(fetchUrl)
+
+ if res.status_code != 200:
+ l.error("DO NOT REPORT THE ERROR BELOW")
+ l.error(f"Failed to write HeatingAndCooling record -- Status code {res.status_code}")
+ return
+
+ data = res.text()
+ data = data[63:-26]
+
+ i2Doc = f'\n {data}\n {coopId}\n '
+
+ f = open('./.temp/HeatingAndCooling.i2m', 'a')
+ f.write(i2Doc)
+ f.close()
+
+def makeRecord():
+ l.info("Writing HeatingAndCooling record.")
+
+ header = '