mirror of
https://github.com/mewtek/i2ME-Legacy.git
synced 2025-06-10 05:30:00 -05:00
Merge pull request #7 from GWES-EAS-Relay-Network/main
Small updates, nothing major.
This commit is contained in:
@ -20,9 +20,9 @@ This software handles data collection and processing for The Weather Channel's I
|
||||
- [ ] WMRecord - Marine Forecast
|
||||
|
||||
# Usage instructions
|
||||
[Download a release](https://github.com/the5dcrew/i2MessageEncoder-Rewrite/releases) for the most stable version, or clone the repository.
|
||||
[Download a release](https://github.com/Open-Telecom/i2MessageEncoder-Rewrite/releases) for the most stable version, or clone the repository.
|
||||
|
||||
``git clone https://github.com/the5dcrew/i2MessageEncoder-Rewrite``
|
||||
``git clone https://github.com/Open-Telecom/i2MessageEncoder-Rewrite``
|
||||
|
||||
*(If downloading this as a zip, extract to the directory of your choosing.)*
|
||||
|
||||
|
@ -4,28 +4,22 @@ from radar import TWCRadarCollector
|
||||
from datetime import datetime
|
||||
|
||||
|
||||
""" This houses the tasks needed to update the data records concurrently
|
||||
I have no idea if this is a messy way to do things, but it will be worked upon if it is.
|
||||
"""
|
||||
|
||||
async def updateMosaicTask():
|
||||
mosaicUpdateIntervals = [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55]
|
||||
mosaicUpdateIntervals = [i+1 for i in range(0, 60, 5)]
|
||||
|
||||
while True:
|
||||
# Server takes ~15 - 35 seconds to fully generate a frame, so use 40 seconds to ensure it's fully generated.
|
||||
if datetime.now().minute in mosaicUpdateIntervals and datetime.now().second == 40:
|
||||
# Mosaic intervals are 5+1 minutes, so instead of waiting 40 seconds and running "Datetime.now()" twice, We run it once and wait for 60.
|
||||
if datetime.now().minute in mosaicUpdateIntervals:
|
||||
await TWCRadarCollector.collect("radarmosaic")
|
||||
|
||||
await asyncio.sleep(1)
|
||||
|
||||
async def updateSatradTask():
|
||||
satradUpdateIntervals = [0, 10, 20, 30, 40, 50]
|
||||
satradUpdateIntervals = [i+1 for i in range(0, 60, 10)]
|
||||
|
||||
while True:
|
||||
# Server takes ~15 - 35 seconds to fully generate a frame, so use 40 seconds to ensure it's fully generated.
|
||||
if datetime.now().minute in satradUpdateIntervals and datetime.now().second == 40:
|
||||
#Satrad intervals are 10+1 minutes, so instead of waiting 40 seconds and running "Datetime.now()" twice, We run it once and wait for 60.
|
||||
if datetime.now().minute in satradUpdateIntervals:
|
||||
await TWCRadarCollector.collect("satrad")
|
||||
|
||||
await asyncio.sleep(1)
|
||||
|
||||
|
||||
|
137
lo8s.py
137
lo8s.py
@ -1,42 +1,21 @@
|
||||
import py2Lib.bit as bit
|
||||
import time
|
||||
from datetime import datetime,timedelta
|
||||
import random
|
||||
import secrets
|
||||
|
||||
theNow = datetime.now()
|
||||
|
||||
currentHour = theNow.strftime('%H')
|
||||
from time import sleep
|
||||
from datetime import datetime, timedelta
|
||||
from random import choice
|
||||
|
||||
def runLo8s(flavor, duration, LDL, logo = None, LDLColor = None, EmergencyLFCancel = None):
|
||||
|
||||
Id = ''.join(random.choice('ABCDEF0123456789') for i in range(16))
|
||||
|
||||
nowUTC = datetime.utcnow()
|
||||
|
||||
now = datetime.now()
|
||||
|
||||
currentHour = nowUTC.strftime('%H')
|
||||
|
||||
friendlyRunTime = now + timedelta(seconds=30)
|
||||
|
||||
friendlyRunTime = now + timedelta(seconds=30).strftime('%m/%d/%Y %I:%M:%S %p')
|
||||
runTime = nowUTC + timedelta(seconds=30)
|
||||
|
||||
runTimeLDL = nowUTC + timedelta(seconds=30)
|
||||
|
||||
ldlCancelTime = runTimeLDL.strftime('%m/%d/%Y %H:%M:%S'+':02')
|
||||
|
||||
lo8sRunTime = runTime.strftime('%m/%d/%Y %H:%M:%S'+':00')
|
||||
|
||||
friendlyLo8sRunTime = friendlyRunTime.strftime('%m/%d/%Y %I:%M:%S %p')
|
||||
|
||||
ldlCancelTime = runTime.strftime('%m/%d/%Y %H:%M:%S:02')
|
||||
lo8sRunTime = runTime.strftime('%m/%d/%Y %H:%M:%S:00')
|
||||
if flavor == 'Z':
|
||||
nextLDLRunTime = runTime + timedelta(seconds=91)
|
||||
else:
|
||||
nextLDLRunTime = runTime + timedelta(seconds=65)
|
||||
|
||||
nextLDLRun = nextLDLRunTime.strftime('%m/%d/%Y %H:%M:%S'+':02')
|
||||
|
||||
nextLDLRun = nextLDLRunTime.strftime('%m/%d/%Y %H:%M:%S:02')
|
||||
if duration == '60':
|
||||
duration = '1800'
|
||||
elif duration == '65':
|
||||
@ -46,66 +25,45 @@ def runLo8s(flavor, duration, LDL, logo = None, LDLColor = None, EmergencyLFCanc
|
||||
elif duration == '120':
|
||||
duration = '3600'
|
||||
else:
|
||||
print('Invalid Duration specified. Please specifiy length of the local forecast in seconds. 60 for 1 minute, 65 for 1 minute 5 seconds, 90 for 1 minute 30 seconds, 120 for 2 minutes.\n\nScript will now terminate...')
|
||||
print('Invalid Duration specified. Please specifiy length of the local forecast in seconds.\n60 for 1 minute, 65 for 1 minute 5 seconds, 90 for 1 minute 30 seconds, 120 for 2 minutes.\n\nScript will now terminate...')
|
||||
exit()
|
||||
nextLDLRun = nextLDLRunTime.strftime('%m/%d/%Y %H:%M:%S'+':02')
|
||||
|
||||
if EmergencyLFCancel == 1:
|
||||
print('Emergency Local On The 8s Kill Switch is Activated. No Local On The 8s Will Air. Maybe b3atdropp3r Hacked An i2 Again???\n' + friendlyLo8sRunTime)
|
||||
time.sleep(27)
|
||||
print(f'Emergency Local On The 8s Kill Switch is Activated. No Local On The 8s Will Air. Maybe b3atdropp3r Hacked An i2 Again???\n{friendlyLo8sRunTime}')
|
||||
sleep(27)
|
||||
elif logo != '':
|
||||
print('Sending Load Command To All Stars. The Local On The 8s is expected to start at ' + friendlyLo8sRunTime + ' ...')
|
||||
bit.sendCommand(['<MSG><Exec workRequest="loadPres(File={0},VideoBehind=000,Logo=domesticAds/TAG'+ logo +',Flavor=domestic/'+flavor+',Duration='+duration+',PresentationId='+Id+')" /></MSG>'], 1)
|
||||
time.sleep(27)
|
||||
print(f'Sending Load Command To All Stars. The Local On The 8s is expected to start at {friendlyLo8sRunTime} ...')
|
||||
bit.sendCommand([f'<MSG><Exec workRequest="loadPres(File={0},VideoBehind=000,Logo=domesticAds/TAG{logo},Flavor=domestic/{flavor},Duration={duration},PresentationId={Id})" /></MSG>'], 1)
|
||||
sleep(27)
|
||||
else:
|
||||
print('Sending Load Command To All Stars. The Local On The 8s is expected to start at ' + friendlyLo8sRunTime + ' ...')
|
||||
bit.sendCommand(['<MSG><Exec workRequest="loadPres(File={0},VideoBehind=000,Flavor=domestic/'+flavor+',Duration='+duration+',PresentationId='+Id+')" /></MSG>'], 1)
|
||||
time.sleep(27)
|
||||
#Cancel LDL
|
||||
print(f'Sending Load Command To All Stars. The Local On The 8s is expected to start at {friendlyLo8sRunTime} ...')
|
||||
bit.sendCommand([f'<MSG><Exec workRequest="loadPres(File={0},VideoBehind=000,Flavor=domestic/{flavor},Duration={duration},PresentationId={Id})" /></MSG>'], 1)
|
||||
sleep(27)
|
||||
print('\nCanceling LDL...')
|
||||
bit.sendCommand(['<MSG><Exec workRequest="cancelPres(File={0},PresentationId=LDL,StartTime='+ldlCancelTime+')" /></MSG>'], 1)
|
||||
#time.sleep(1)
|
||||
bit.sendCommand([f'<MSG><Exec workRequest="cancelPres(File={0},PresentationId=LDL,StartTime={ldlCancelTime})" /></MSG>'], 1)
|
||||
|
||||
if EmergencyLFCancel == 1:
|
||||
print('Not Airing Local On The 8s Due To Kill Switch Activated. Will Reload LDL After National DBS Forecast Finishes...')
|
||||
time.sleep(53)
|
||||
sleep(53)
|
||||
else:
|
||||
#Run Local On The 8s
|
||||
print('\nSending The Run Command. Stand By For Your Local Forecast...')
|
||||
bit.sendCommand(['<MSG><Exec workRequest="runPres(File={0},PresentationId='+Id+',StartTime='+lo8sRunTime+')" /></MSG>'], 1)
|
||||
time.sleep(53)
|
||||
bit.sendCommand([f'<MSG><Exec workRequest="runPres(File={0},PresentationId={Id},StartTime={lo8sRunTime})" /></MSG>'], 1)
|
||||
sleep(53)
|
||||
|
||||
if EmergencyLFCancel == 1:
|
||||
#color = None
|
||||
#if LDLColor == 0:
|
||||
#color = 'E'
|
||||
#elif LDLColor == 1:
|
||||
#color = 'F'
|
||||
#else:
|
||||
#color = 'E'
|
||||
print("\nGetting The LDL Ready So It'll Cue After The National DBS Local Forecast")
|
||||
bit.sendCommand(['<MSG><Exec workRequest="loadPres(File={0},Flavor=domestic/ldl'+LDLColor+',Duration=72000,PresentationId=LDL1)" /></MSG>'], 1)
|
||||
bit.sendCommand([f'<MSG><Exec workRequest="loadPres(File={0},Flavor=domestic/ldl{LDLColor},Duration=72000,PresentationId=LDL1)" /></MSG>'], 1)
|
||||
time.sleep(10)
|
||||
print("\nSending The Run Command For The LDL...")
|
||||
bit.sendCommand(['<MSG><Exec workRequest="runPres(File={0},PresentationId=LDL1,StartTime='+nextLDLRun+')" /></MSG>'], 1)
|
||||
bit.sendCommand([f'<MSG><Exec workRequest="runPres(File={0},PresentationId=LDL1,StartTime={nextLDLRun})" /></MSG>'], 1)
|
||||
elif LDL == 1:
|
||||
#color = None
|
||||
#if LDLColor == 0:
|
||||
#color = 'E'
|
||||
#elif LDLColor == 1:
|
||||
#color = 'F'
|
||||
#else:
|
||||
#color = 'E'
|
||||
#Load LDL
|
||||
print("\nGetting The LDL Ready So It'll Cue After This Local Forecast...")
|
||||
bit.sendCommand(['<MSG><Exec workRequest="loadPres(File={0},Flavor=domestic/ldl'+LDLColor+',PresentationId=LDL1)" /></MSG>'], 1)
|
||||
bit.sendCommand([f'<MSG><Exec workRequest="loadPres(File={0},Flavor=domestic/ldl{LDLColor},PresentationId=LDL1)" /></MSG>'], 1)
|
||||
time.sleep(10)
|
||||
#Run LDL
|
||||
print('''\nSending The Run Command For The LDL. As Dave Schwartz Would Say... "That's a Wrap!"''')
|
||||
bit.sendCommand(['<MSG><Exec workRequest="runPres(File={0},PresentationId=LDL1,StartTime='+nextLDLRun+')" /></MSG>'], 1)
|
||||
print('\nSending The Run Command For The LDL. As Dave Schwartz Would Say... "That\'s a Wrap!"')
|
||||
bit.sendCommand([f'<MSG><Exec workRequest="runPres(File={0},PresentationId=LDL1,StartTime={nextLDLRun})" /></MSG>'], 1)
|
||||
else:
|
||||
time.sleep(10)
|
||||
print('''That's It Folks. As Dave Schwartz Would Say... "That's a Wrap!"''')
|
||||
print('That\'s It Folks. As Dave Schwartz Would Say... "That\'s a Wrap!"')
|
||||
|
||||
#----- SET BACKGROUNDS HERE ----------------------#
|
||||
BGCatastrophic = ['3094', '3095', '3103', '3115']
|
||||
@ -114,8 +72,6 @@ BGAlert = ['3094', '3095', '3103', '3115']
|
||||
#BGNight = ['3091', '3092', '3102', '3114', '3191']
|
||||
BGNorm = ['3091', '3092', '3102', '3114']
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
|
||||
#------ BG RULES SECTION ------------------------#
|
||||
|
||||
if BGCatastrophic:
|
||||
@ -137,29 +93,28 @@ else:
|
||||
brandedNormal = ''
|
||||
#----------------------------------------------
|
||||
|
||||
i = 0
|
||||
while i == 0:
|
||||
mode = input('\nPlease specify mode. 1 for "Normal", 2 for "Alert", 3 for "Storm Mode", 4 for "Catastrophic", 5 for "Tag" or 0 for "Unbranded"\n')
|
||||
if mode == '5':
|
||||
ad = input('Please specify Tag Number.\n')
|
||||
flavor = input("Flavor Overide? Default is 'V'.\nEnter flavor letter or enter to bypass...")
|
||||
while True:
|
||||
mode = input('Please specify mode.\n0 - "Unbranded"\n1 - "Normal"\n2 - "Alert"\n3 - "Storm Mode"\n4 - "Catastrophic"\n5 - "Tag"\n9 - Exit LOT8\n==>')
|
||||
if mode == '0':
|
||||
runLo8s('V', '65', 1, '', 'E')
|
||||
elif mode == '1':
|
||||
runLo8s('V', '65', 1, brandedNormal, 'E')
|
||||
elif mode == '2':
|
||||
runLo8s('V', '65', 1, brandedAlert, 'E')
|
||||
elif mode == '3':
|
||||
runLo8s('V1', '65', 1, brandedStorm, 'STORM')
|
||||
elif mode == '4':
|
||||
runLo8s('V2', '65', 1, brandedCatastrophic, 'F')
|
||||
elif mode == '5':
|
||||
ad = input('Please specify Tag Number.\n==>')
|
||||
flavor = input("Flavor Overide? Default is 'V'.\nEnter flavor letter, or press enter to bypass.\n==>")
|
||||
if flavor == '':
|
||||
runLo8s('V', '65', 1, ad, 'E')
|
||||
else:
|
||||
runLo8s(flavor, '65', 1, ad, 'E')
|
||||
elif mode == '4':
|
||||
runLo8s('V2', '65', 1, brandedCatastrophic, 'F')
|
||||
elif mode == '3':
|
||||
runLo8s('V1', '65', 1, brandedStorm, 'STORM')
|
||||
elif mode == '2':
|
||||
runLo8s('V', '65', 1, brandedAlert, 'E')
|
||||
elif mode == '1':
|
||||
runLo8s('V', '65', 1, brandedNormal, 'E')
|
||||
elif mode == '0':
|
||||
runLo8s('V', '65', 1, '', 'E')
|
||||
elif mode == '9':
|
||||
print("\n\nGoodbye.\n\n")
|
||||
exit()
|
||||
else:
|
||||
print("An invalid mode was specified. This is not allowed! Will now shutdown...\n")
|
||||
time.sleep(5)
|
||||
i = 1
|
||||
|
||||
#runLo8s('V', '65', 1, brandedNormal, 'E')
|
||||
print("Not a valid selection.\n\n")
|
||||
time.sleep(1)
|
||||
|
Reference in New Issue
Block a user