import asyncio, aiofiles from asyncio.log import logger from asyncore import loop import logging,coloredlogs from radar import TWCRadarCollector import os from datetime import datetime import RecordTasks # Open the config file and make it accessible via "cfg" import json with open("conf.json", "r") as file: cfg = json.load(file) l = logging.getLogger(__name__) coloredlogs.install(logger=l) useRadarServer = cfg[useRadarServer] async def createTemp(): """ Used on a first time run, creates necessary files & directories for the message encoder to work properly. """ if not (os.path.exists('./.temp/')): l.info("Creating necessary directories & files..") os.mkdir('./.temp') # Used for the record generator os.mkdir('./.temp/tiles/') os.mkdir('./.temp/tiles/output/') # Used for radar server downloads os.mkdir('./.temp/output') os.mkdir('./.temp/output/radarmosaic') os.mkdir('./.temp/output/satrad') # Create msgId file for bit.py async with aiofiles.open('./.temp/msgId.txt', 'w') as msgId: await msgId.write('410080515') await msgId.close() else: l.debug(".temp file exists") return async def main(): await createTemp() mosaicTask = asyncio.create_task(RecordTasks.updateMosaicTask()) satradTask = asyncio.create_task(RecordTasks.updateSatradTask()) alertsTask = asyncio.create_task(RecordTasks.alertsTask()) coTask = asyncio.create_task(RecordTasks.coTask()) hfTask = asyncio.create_task(RecordTasks.hfTask()) dfTask = asyncio.create_task(RecordTasks.dfTask()) aqTask = asyncio.create_task(RecordTasks.aqTask()) aptTask = asyncio.create_task(RecordTasks.aptTask()) apTask = asyncio.create_task(RecordTasks.apTask()) brTask = asyncio.create_task(RecordTasks.brTask()) hcTask = asyncio.create_task(RecordTasks.hcTask()) maTask = asyncio.create_task(RecordTasks.maTask()) pTask = asyncio.create_task(RecordTasks.pTask()) tTask = asyncio.create_task(RecordTasks.tTask()) wnTask = asyncio.create_task(RecordTasks.wnTask()) # In theory, these should all run concurrently without problems await alertsTask await coTask await hfTask await dfTask await aqTask await aptTask await apTask await brTask await hcTask await maTask await pTask await tTask await wnTask if useRadarServer: await mosaicTask await satradTask if __name__ == "__main__": asyncio.run(main())