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 = '