Floppa's i2 scripts

This commit is contained in:
April
2022-10-08 14:51:20 -07:00
parent 828247480a
commit 499491334f
5 changed files with 1081 additions and 0 deletions

260
py2Lib/bit.py Normal file
View File

@ -0,0 +1,260 @@
import socket
import sys
import os
import struct
import binascii
import math
import time
MCAST_GRP = '224.1.1.77'
MCAST_IF = '127.0.0.1'
BUF_SIZE = 1396
MULTICAST_TTL = 2
conn = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
conn.setsockopt(socket.SOL_IP,socket.IP_ADD_MEMBERSHIP,socket.inet_aton(MCAST_GRP)+socket.inet_aton(MCAST_IF))
test = b"This is a test"
def sendFile(files, commands, numSgmts, Pri):
if Pri == 0:
MCAST_PORT = 7787
elif Pri == 1:
MCAST_PORT = 7788
else:
print("Invalid Priority Flag. 0 = Routine Message 1 = High Priority Message\n\nScript will now terminate...")
exit()
#Get the next message ID
with open('C:\\Clips\\msgId.txt', "r") as f:
oMsgId = f.read()
msgNum = int(oMsgId)
f.close()
nMsgNum = msgNum + 1
h = open('C:\\Clips\\msgId.txt', "w")
h.write(str(nMsgNum))
h.close()
segnmNum = 0
if Pri == 0:
print("Sending Routine Msg-" + str(msgNum) + " on UDP " + MCAST_GRP + " " + str(MCAST_PORT) + "....")
elif Pri == 1:
print("Sending High Priority Msg-" + str(msgNum) + " on UDP " + MCAST_GRP + " " + str(MCAST_PORT) + "....")
startFlag = False
for x, y in zip(files, commands):
size = os.path.getsize(x)
check = size - BUF_SIZE
pToBeSent = size / 1405
packRounded = math.ceil(pToBeSent) + 1
numSegments = numSgmts + 3
total_sent = 0
payloadLength = 0
packet_count = 1
j = 0
pc = packet_count.to_bytes(1, byteorder='big')
i = 0
encode1 = bytes(y + 'I2MSG', 'UTF-8')
commandLength = len(y)
encode2 = commandLength.to_bytes(4, byteorder='little')
theCommand = b"".join([encode1, encode2])
char = ''
new_file = open(x, "ab")
new_file.write(theCommand) # Append command to end of the file
new_file.close()
new_size = os.path.getsize(x)
if startFlag == False:
#Our 34 byte beginning packet
p1 = struct.pack(">BHHHIIBBBBBBBIBIBBB", 18, 1, 0 , 16, msgNum, 0, segnmNum, 0, 0, 8, numSegments, 3, 0, 0, 8, packRounded, 0, 0, 0)
conn.sendto(p1, (MCAST_GRP, MCAST_PORT))
startFlag = True
with open(x,"rb") as message:
message.seek(0)
data = message.read(BUF_SIZE)
while data:
packetHeader = struct.pack(">BHHHIIBBB", 18, 1, 0, 1405, msgNum, packet_count, 0, 0, 0)
fec = struct.pack("<IBI", packet_count, 0, new_size)
if len(data) < BUF_SIZE:
nullCharacterLen = BUF_SIZE - len(data)
char = ''
while(i < nullCharacterLen):
char += '00'
i = i+1
theNull = bytes.fromhex(char)
conn.sendto(packetHeader + fec + data + theNull, (MCAST_GRP, MCAST_PORT))
else:
conn.sendto(packetHeader + fec + data, (MCAST_GRP, MCAST_PORT))
print(packet_count)
packet_count += 1
j += 1
#Rate Limit UDP Packets To Prevent Packet Overflow On Transport Stream.
if j == 1000: #Number of packets to be sent before pausing
time.sleep(2) #Pause for this number of seconds
j = 0
data = message.read(BUF_SIZE)
else:
data = message.read(BUF_SIZE)
segnmNum += 1
# OUR TEST MESSAGE BLOCK
#-------------------------------------------------------------------------------------------------------
w = 3
while w <= 3 and w != 0:
p3 = struct.pack(">BHHHIIBBBBBBBI", 18, 1, 1, 8, msgNum, 0, segnmNum, 0, 0, 8, 0, 0, 0, 67108864)
p4 = struct.pack(">BHHHIIBBB", 18, 1, 1, 14, msgNum, 1, segnmNum, 0, 0) + test
conn.sendto(p3, (MCAST_GRP, MCAST_PORT))
conn.sendto(p4, (MCAST_GRP, MCAST_PORT))
segnmNum += 1
w -= 1
#-------------------------------------------------------------------------------------------------------
def sendCommand(command, Pri, msgNum = None):
if Pri == 0:
MCAST_PORT = 7787
elif Pri == 1:
MCAST_PORT = 7788
else:
print("Invalid Priority Flag. 0 = Routine Message 1 = High Priority Message\n\nScript will now terminate...")
exit()
#Get the next message ID
with open('C:\\Clips\\msgId.txt', "r") as f:
oMsgId = f.read()
msgNum = int(oMsgId)
f.close()
nMsgNum = msgNum + 1
h = open('C:\\Clips\\msgId.txt', "w")
h.write(str(nMsgNum))
h.close()
segnmNum = 0
if Pri == 0:
print("Sending Routine Msg-" + str(msgNum) + " on UDP " + MCAST_GRP + " " + str(MCAST_PORT) + "....")
elif Pri == 1:
print("Sending High Priority Msg-" + str(msgNum) + " on UDP " + MCAST_GRP + " " + str(MCAST_PORT) + "....")
startFlag = False
for x in command:
bx = bytes(x, 'utf-8')
with open('D:\\command', 'wb') as c:
c.write(bx)
c.close()
size = os.path.getsize('D:\\command')
encode1 = bytes('I2MSG', 'UTF-8')
commandLength = size
encode2 = commandLength.to_bytes(4, byteorder='little')
theCommand = b"".join([encode1, encode2])
with open('D:\\command', 'ab') as d:
d.write(theCommand)
d.close()
check = size - BUF_SIZE
pToBeSent = size / 1405
packRounded = math.ceil(pToBeSent) + 1
numSegments = 4
total_sent = 0
payloadLength = 0
packet_count = 1
j = 0
pc = packet_count.to_bytes(4, byteorder='little')
i = 0
char = ''
new_size = os.path.getsize('D:\\command')
if startFlag == False:
#Our 34 byte beginning packet
p1 = struct.pack(">BHHHIIBBBBBBBIBIBBB", 18, 1, 0 , 16, msgNum, 0, segnmNum, 0, 0, 8, numSegments, 3, 0, 0, 8, packRounded, 0, 0, 0)
conn.sendto(p1, (MCAST_GRP, MCAST_PORT))
startFlag = True
with open('D:\\Command',"rb") as message:
message.seek(0)
data = message.read(BUF_SIZE)
while data:
packetHeader = struct.pack(">BHHHIIBBB", 18, 1, 0, 1405, msgNum, packet_count, 0, 0, 0)
fec = struct.pack("<IBI", packet_count, 0, new_size)
if len(data) < BUF_SIZE:
nullCharacterLen = BUF_SIZE - len(data)
char = ''
while(i < nullCharacterLen):
char += '00'
i = i+1
theNull = bytes.fromhex(char)
conn.sendto(packetHeader + fec + data + theNull, (MCAST_GRP, MCAST_PORT))
else:
conn.sendto(packetHeader + fec + data, (MCAST_GRP, MCAST_PORT))
print(packet_count)
packet_count += 1
j += 1
#Rate limit UDP Packets to prevent Packet Overflow on i2 machine.
if j == 1000: #Number of packets to be sent before pausing
time.sleep(10) #Pause for this number of seconds
j = 0
data = message.read(BUF_SIZE)
else:
data = message.read(BUF_SIZE)
segnmNum += 1
# OUR TEST MESSAGE BLOCK
#-------------------------------------------------------------------------------------------------------
w = 3
while w <= 3 and w != 0:
p3 = struct.pack(">BHHHIIBBBBBBBI", 18, 1, 1, 8, msgNum, 0, segnmNum, 0, 0, 8, 0, 0, 0, 67108864)
p4 = struct.pack(">BHHHIIBBB", 18, 1, 1, 14, msgNum, 1, segnmNum, 0, 0) + test
conn.sendto(p3, (MCAST_GRP, MCAST_PORT))
conn.sendto(p4, (MCAST_GRP, MCAST_PORT))
segnmNum += 1
w -= 1
#-------------------------------------------------------------------------------------------------------
#Send Current Observations
#sendFile("C:\\Clips\\CurrentObservations.i2m.gz", '<MSG><Exec workRequest="storeData(File={0},QGROUP=__CurrentObservations__,Feed=CurrentObservations)" /><GzipCompressedMsg fname="CurrentObservations.i2m" /></MSG>I2MSG', 0)
#time.sleep(10)
#Send Hourly Forecast
#sendFile("C:\\Clips\\HourlyForecast.i2m.gz", '<MSG><Exec workRequest="storeData(File={0},QGROUP=__HourlyForecast__,Feed=HourlyForecast)" /><GzipCompressedMsg fname="HourlyForecast.i2m" /></MSG>I2MSG', 0)
#time.sleep(10)
#Send Daily Forecast
#sendFile("C:\\Clips\\DailyForecast.i2m.gz", '<MSG><Exec workRequest="storeData(File={0},QGROUP=__DailyForecast__,Feed=DailyForecast)" /><GzipCompressedMsg fname="DailyForecast.i2m" /></MSG>I2MSG', 0)
#Send radar image
#sendFile("C:\\Clips\\radar.i2m", '<MSG><Exec workRequest="storePriorityImage(File={0},FileExtension=.tiff,IssueTime=08/28/2022 03:00:00,Location=US,ImageType=Radar)" /></MSG>I2MSG', 0)
#Load Local On The 8s
#sendCommand('<MSG><Exec workRequest="loadPres(File={0},VideoBehind=000,Logo=domesticAds/tag3352,Flavor=domestic/V,Duration=1950,PresentationId=3E396FFF95A00067)" /></MSG>I2MSG', 1)
#time.sleep(25)
#Cancel LDL
#sendCommand('<MSG><Exec workRequest="cancelPres(File={0},PresentationId=LDL,StartTime=08/29/2022 00:20:55:02)" /></MSG>I2MSG', 1)
#time.sleep(1)
#Run Local On The 8s
#sendCommand('<MSG><Exec workRequest="runPres(File={0},PresentationId=3E396FFF95A00067,StartTime=08/29/2022 00:20:55:00)" /></MSG>I2MSG', 1)
#time.sleep(35)
#Load LDL
#sendCommand('<MSG><Exec workRequest="loadPres(File={0},Flavor=domestic/ldlE,PresentationId=LDL1)" /></MSG>I2MSG', 1)
#time.sleep(10)
#Run LDL
#sendCommand('<MSG><Exec workRequest="runPres(File={0},PresentationId=LDL1,StartTime=08/29/2022 00:22:00:02)" /></MSG>I2MSG', 1)
#Heartbeat Command
#sendCommand('<MSG><Exec workRequest="heartbeat(File={0},Time=08/28/2022 02:29:00.234)" /></MSG>I2MSG', 1)
#Misc commands
#sendCommand('<MSG><Exec workRequest="loadRunPres(File={0},Flavor=domestic/ldlE,PresentationId=LDL1)" /><CheckHeadendId><HeadendId>040500</HeadendId></CheckHeadendId></MSG>I2MSG', 1)
#sendCommand('<MSG><Exec workRequest="cancelPres(File={0},PresentationId=LDL1,StartTime=08/28/2022 15:00:00:00)" /><CheckHeadendId><HeadendId>040500</HeadendId></CheckHeadendId></MSG>I2MSG', 1)
#Restart Command
#sendCommand('<MSG><Exec workRequest="restartI2Service(File={0},CommandId=0000)" /><CheckHeadendId><HeadendId>040500</HeadendId></CheckHeadendId></MSG>I2MSG', 1)
#Set ANF Mode
#sendFile("C:\\Clips\\ANFOn.i2m",'<MSG><Exec workRequest="setANFDisplay(File={0},CommandId=0000)" /><CheckHeadendId><HeadendId>040500</HeadendId><HeadendId>040449</HeadendId><HeadendId>030025</HeadendId></CheckHeadendId></MSG>I2MSG', 1)
#SendBundle
#sendFile("C:\\Clips\\Bundles.zip",'<MSG><Exec workRequest="stageStarBundle(File={0})" /></MSG>I2MSG', 0)
#Send Upgrade
#sendFile("C:\\Clips\\Upgrades\\maintenance_1.0.0.50.zip",'<MSG><Exec workRequest="storeUpgrade(File={0},ReleaseName=maintenance_1.0.0.50)" /></MSG>I2MSG', 0)
#Stage Upgrade
#sendCommand('<MSG><Exec workRequest="stageUpgrade(File={0},InstallImmediately=False,ReleaseName=maintenance_1.0.0.50)" /></MSG>I2MSG', 0)
#Change Passwords
#sendFile("C:\\Clips\\passwords.i2m",'<MSG><Exec workRequest="changePassword(File={0},CommandId=0000)" /></MSG>I2MSG', 0)

309
py2Lib/command.py Normal file
View File

@ -0,0 +1,309 @@
import bit
import os
import shutil
import math
import time
from datetime import datetime
def restartI2Service(headendIds):
HeadendList = ''
for x in headendIds:
HeadendList += ('<HeadendId>' + x + '</HeadendId>')
bit.sendCommand('<MSG><Exec workRequest="restartI2Service(File={0},CommandId=0000)" /><CheckHeadendId>' + HeadendList + '</CheckHeadendId></MSG>I2MSG', 1)
#print('<MSG><Exec workRequest="restartI2Service(File={0},CommandId=0000)" /><CheckHeadendId>' + HeadendList + '</CheckHeadendId></MSG>')
def rebootI2(headendIds):
HeadendList = ''
for x in headendIds:
HeadendList += ('<HeadendId>' + x + '</HeadendId>')
commands = []
command = '<MSG><Exec workRequest="rebootStar(File={0},CommandId=GOFUCK_YOURSELF)" /><CheckHeadendId>' + HeadendList + '</CheckHeadendId></MSG>'
commands.append(command)
bit.sendCommand(commands, 1)
def clearStarBundle(headendIds, btype):
HeadendList = ''
for x in headendIds:
HeadendList += ('<HeadendId>' + x + '</HeadendId>')
commands = []
command = '<MSG><Exec workRequest="clearStarBundle(File={0},BundleType=' + btype + ')" /><CheckHeadendId>' + HeadendList + '</CheckHeadendId></MSG>'
commands.append(command)
bit.sendCommand(commands, 1)
def changePasswords(PasswordFile, headendIds):
HeadendList = ''
files = []
files.append(PasswordFile)
commands = []
numSegs = 1
if headendIds != None:
for x in headendIds:
HeadendList += ('<HeadendId>' + x + '</HeadendId>')
command = '<MSG><Exec workRequest="changePassword(File={0},CommandId=GOFUCK_YOURSELF)" /><GzipCompressedMsg fname="passwords2.i2m" /><CheckHeadendId>' + HeadendList + '</CheckHeadendId></MSG>'
commands.append(command)
bit.sendFile(files, commands, numSegs, 0)
else:
command = '<MSG><Exec workRequest="changePassword(File={0},CommandId=GOFUCK_YOURSELF)" /><GzipCompressedMsg fname="passwords2.i2m" /></MSG>'
commands.append(command)
bit.sendFile(files, commands, numSegs, 0)
os.remove(PasswordFile)
def sendMaintCommand(File, headendIds):
HeadendList = ''
files = []
files.append(File)
commands = []
numSegs = 1
if headendIds != None:
for x in headendIds:
HeadendList += ('<HeadendId>' + x + '</HeadendId>')
#command = '<MSG><Exec workRequest="changePassword(File={0},CommandId=GOFUCK_YOURSELF)" /><GzipCompressedMsg fname="passwords" /><CheckHeadendId>' + HeadendList + '</CheckHeadendId></MSG>'
#command = '<MSG><Exec workRequest="setTsInNic(File={0},CommandId=GOFUCK_YOURSELF)" /><GzipCompressedMsg fname="TSInConfig" /><CheckHeadendId>' + HeadendList + '</CheckHeadendId></MSG>'
#command = '<MSG><Exec workRequest="setTsOutNic(File={0},CommandId=GOFUCK_YOURSELF)" /><GzipCompressedMsg fname="TSOutConfig" /><CheckHeadendId>' + HeadendList + '</CheckHeadendId></MSG>'
#command = '<MSG><Exec workRequest="setBackChannelNic(File={0},CommandId=GOFUCK_YOURSELF)" /><GzipCompressedMsg fname="BackChannelNicConfig" /><CheckHeadendId>' + HeadendList + '</CheckHeadendId></MSG>'
#command = '<MSG><Exec workRequest="setANFConfig(File={0},CommandId=GOFUCK_YOURSELF)" /><GzipCompressedMsg fname="ANFConfig" /><CheckHeadendId>' + HeadendList + '</CheckHeadendId></MSG>'
#command = '<MSG><Exec workRequest="setPipelineEncoderConfig(File={0},CommandId=GOFUCK_YOURSELF)" /><GzipCompressedMsg fname="EncoderConfig" /><CheckHeadendId>' + HeadendList + '</CheckHeadendId></MSG>'
#command = '<MSG><Exec workRequest="setPipelineDecoderConfig(File={0},CommandId=GOFUCK_YOURSELF)" /><GzipCompressedMsg fname="DecoderConfig" /><CheckHeadendId>' + HeadendList + '</CheckHeadendId></MSG>'
#I2 HD
#command = '<MSG><Exec workRequest="setTsiiConfig(File={0},DeviceType=Encoder,CommandId=GOFUCK_YOURSELF)" /><CheckHeadendId>' + HeadendList + '</CheckHeadendId></MSG>'
commands.append(command)
bit.sendFile(files, commands, numSegs, 0)
else:
#command = '<MSG><Exec workRequest="changePassword(File={0},CommandId=GOFUCK_YOURSELF)" /><GzipCompressedMsg fname="passwords.i2m" /></MSG>'
commands.append(command)
bit.sendFile(files, commands, numSegs, 0)
os.remove(File)
def loadRunPres(headendIds, Flavor, Logo, Duration, Id):
HeadendList = ''
for x in headendIds:
HeadendList += ('<HeadendId>' + x + '</HeadendId>')
if Logo == '':
command = ['<MSG><Exec workRequest="loadRunPres(File={0},Flavor='+Flavor+',Duration='+Duration+',PresentationId='+Id+')" /><CheckHeadendId>' + HeadendList + '</CheckHeadendId></MSG>']
bit.sendCommand(command, 1)
else:
command = ['<MSG><Exec workRequest="loadRunPres(File={0},Flavor='+Flavor+',Logo='+Logo+',Duration='+Duration+',PresentationId='+Id+')" /><CheckHeadendId>' + HeadendList + '</CheckHeadendId></MSG>']
bit.sendCommand(command, 1)
def sendStarBundle(File):
size = os.path.getsize(File)
if size >= 67550000:
CHUNK_SIZE = 67550000
file_number = 1
fPath = os.path.dirname(File)
fpToSplit = os.path.splitext(File)
splitFn = fpToSplit[0].split('\\')
newFn = splitFn[-1]
eCount = size / CHUNK_SIZE
estCount = math.ceil(eCount)
print("File size is greater than 64MB. Will need to split the files for transmission...\n")
time.sleep(1)
with open(File, "rb") as f:
chunk = f.read(CHUNK_SIZE)
while chunk:
if file_number < 10:
fileNum = '0' + str(file_number)
else:
fileNum = file_number
with open(fPath + '\\split\\' + newFn + '_' + str(fileNum), "wb") as chunk_file:
chunk_file.write(chunk)
print('Successfully split file ' + str(file_number) + ' out of ' + str(estCount) + '\n')
file_number += 1
chunk = f.read(CHUNK_SIZE)
count = file_number - 1
part = 1
with open('C:\\Clips\\msgId.txt', "r") as f:
oMsgId = f.read()
Id = int(oMsgId)
f.close()
for x in os.listdir(fPath + '\\split'):
path = fPath + '\\split\\'
y = path + x
if part != count:
print(x)
bit.sendFile([y],['<MSG><SplitMsg id="'+str(Id)+'" part="'+str(part)+'" count="'+str(count)+'" /></MSG>'], 1, 0)
part += 1
time.sleep(30)
elif part == count:
print(x)
bit.sendFile([y],['<MSG><SplitMsg id="'+str(Id)+'" part="'+str(part)+'" count="'+str(count)+'" /></MSG>'], 1, 0)
time.sleep(30)
bit.sendCommand(['<MSG><Exec workRequest="stageStarBundle(File=C:\\Program Files\\TWC\\i2\\Volatile\\MsgIngester-7787\\' + str(Id) + ')" /></MSG>'], 0)
for f in os.listdir(path):
os.remove(os.path.join(path, f))
else:
bit.sendFile([File],['<MSG><Exec workRequest="stageStarBundle(File={0})" /></MSG>'], 1, 0)
os.remove(File)
def sendUpgrade(File, RelName):
size = os.path.getsize(File)
if size >= 67550000:
CHUNK_SIZE = 67550000
file_number = 1
fPath = os.path.dirname(File)
fpToSplit = os.path.splitext(File)
splitFn = fpToSplit[0].split('\\')
newFn = splitFn[-1]
eCount = size / CHUNK_SIZE
estCount = math.ceil(eCount)
print("File size is greater than 64MB. Will need to split the files for transmission...\n")
time.sleep(1)
with open(File, "rb") as f:
chunk = f.read(CHUNK_SIZE)
while chunk:
if file_number < 10:
fileNum = '0' + str(file_number)
else:
fileNum = file_number
with open(fPath + '\\split\\' + newFn + '_' + str(fileNum), "wb") as chunk_file:
chunk_file.write(chunk)
print('Successfully split file ' + str(file_number) + ' out of ' + str(estCount) + '\n')
file_number += 1
chunk = f.read(CHUNK_SIZE)
count = file_number - 1
part = 1
with open('C:\\Clips\\msgId.txt', "r") as f:
oMsgId = f.read()
Id = int(oMsgId)
f.close()
for x in os.listdir(fPath + '\\split'):
path = fPath + '\\split\\'
y = path + x
if part != count:
print(x)
bit.sendFile([y],['<MSG><SplitMsg id="'+str(Id)+'" part="'+str(part)+'" count="'+str(count)+'" /></MSG>'], 1, 0)
part += 1
time.sleep(10)
elif part == count:
print(x)
bit.sendFile([y],['<MSG><SplitMsg id="'+str(Id)+'" part="'+str(part)+'" count="'+str(count)+'" /></MSG>'], 1, 0)
part += 1
time.sleep(15)
bit.sendCommand(['<MSG><Exec workRequest="storeUpgrade(File=C:\\Program Files\\TWC\\i2\\Volatile\\MsgIngester-7787\\' + str(Id) + ',ReleaseName=' + RelName + ')" /></MSG>'], 0)
for f in os.listdir(path):
os.remove(os.path.join(path, f))
else:
bit.sendFile([File],['<MSG><Exec workRequest="storeUpgrade(File={0},ReleaseName=' + RelName + ')" /></MSG>'], 1, 0)
os.remove(File)
def makeStarBundle(Directory, Type, flag, Version, date, sendAfter):
header = '<StarBundle>\n <Version>' + Version + '</Version>\n <ApplyDate>' + date + '</ApplyDate>\n <Type>' + Type + '</Type>\n <FileActions>\n'
with open('D:\\i2State\\SD\\ChangesetBundle\\MetaData\\manifest.xml', 'w') as ma:
ma.write(header)
ma.close()
for (root,dirs,files) in os.walk(Directory, topdown=True):
for name in files:
rootDir = root[24:]
bDest = os.path.join(rootDir,name)
fDest = os.path.join(root,name)
shutil.copy(fDest, 'D:\\i2State\\SD\\ChangesetBundle')
for name in files:
if flag == 'Domestic_Universe':
flag = 'flags="Domestic_Universe"'
elif flag == 'Domestic_SD_Universe':
flag = 'flags="Domestic_SD_Universe"'
else:
pass
with open('D:\\i2State\\SD\\ChangesetBundle\\MetaData\\manifest.xml', 'a') as mb:
mb.write(' <Add src="' + name + '" dest="' + bDest + '" ' + flag + ' />\n')
mb.close()
closer = ' </FileActions>\n</StarBundle>'
with open('D:\\i2State\\SD\\ChangesetBundle\\MetaData\\manifest.xml', 'a') as ma:
ma.write(closer)
ma.close()
#restartI2Service(['006833'])
#rebootI2(['006833'])
#clearStarBundle(['006833'], 'Changeset')
#bit.sendCommand(['<MSG><Exec workRequest="cancelPres(File={0},PresentationId=LDL,StartTime=09/28/2022 03:37:30:22)" /></MSG>'], 1)
#loadRunPres(['038488'], 'domestic/ldlE', '', '72000', 'LDL1')
#changePasswords('C:\\Clips\\passwords2.gz', ['006833'])
#sendMaintCommand('C:\\Clips\\maint\\temp\\passwords',['040500'])
#sendStarBundle("C:\\Clips\\Bundle.zip")
#sendUpgrade("C:\\Clips\\Upgrades\\wireshark_1.4.6.0.zip", "wireshark_1.4.6.0")
#For splitting
#sendUpgrade("C:\\Clips\\ChangesetHD.zip", "PipelineMaint_6.15.1.5714")
#For no split upgrades
#bit.sendFile('C:\\Clips\\Upgrades\\vizRequiredFilesForI2_1.2.0.0.zip', '<MSG><Exec workRequest="storeUpgrade(File={0},ReleaseName=vlc_1.1.12.0)" /><CheckHeadendId><HeadendId>040500</HeadendId></CheckHeadendId></MSG>I2MSG', 0)
#For split upgrades
#bit.sendFile('C:\\Clips\\split\\ChangesetHD_04', '<MSG><SplitMsg id="410059811" part="4" count="69" /></MSG>I2MSG', 0)
#Command for split upgrades
#commands = []
#command = '<MSG><Exec workRequest="storeUpgrade(File=C:/Program Files/TWC/i2/Volatile/MsgIngester-7787/410059791,ReleaseName=tts_1.0.0.1)" /></MSG>'
#commands.append(command)
#bit.sendCommand(commands, 1, 0)
#bit.sendFile(['C:\\Clips\\Alert.gz'], ['<MSG><Exec workRequest="storePriorityData(File={0},QGROUP=__BEUrgent__,Feed=BEUrgent)" /><GzipCompressedMsg fname="Alert.i2m" /></MSG>'], 1, 0)
'''
bit.sendCommand(['<MSG><Exec workRequest="stageUpgrade(File={0},InstallImmediately=False,ReleaseName=7zip_9.20.0.0)" /></MSG>'], 0)
bit.sendCommand(['<MSG><Exec workRequest="stageUpgrade(File={0},InstallImmediately=False,ReleaseName=agentRansack_2010.03.29.47911)" /></MSG>'], 0)
bit.sendCommand(['<MSG><Exec workRequest="stageUpgrade(File={0},InstallImmediately=False,ReleaseName=cirrusDriver_6.12.0.5645)" /></MSG>'], 0)
bit.sendCommand(['<MSG><Exec workRequest="stageUpgrade(File={0},InstallImmediately=False,ReleaseName=cirrusFirmware_6.15.0.5692)" /></MSG>'], 0)
bit.sendCommand(['<MSG><Exec workRequest="stageUpgrade(File={0},InstallImmediately=False,ReleaseName=dotNetFx40_Full_x86_x64)" /></MSG>'], 0)
bit.sendCommand(['<MSG><Exec workRequest="stageUpgrade(File={0},InstallImmediately=False,ReleaseName=fileZilla_3.4.0.0)" /></MSG>'], 0)
bit.sendCommand(['<MSG><Exec workRequest="stageUpgrade(File={0},InstallImmediately=False,ReleaseName=i2_7.4.5-release_81535)" /></MSG>'], 0)
bit.sendCommand(['<MSG><Exec workRequest="stageUpgrade(File={0},InstallImmediately=False,ReleaseName=i2PluginRuntime_7.4.1-release_19905)" /></MSG>'], 0)
bit.sendCommand(['<MSG><Exec workRequest="stageUpgrade(File={0},InstallImmediately=False,ReleaseName=i2Shell_6.3.0-release_18031)" /></MSG>'], 0)
bit.sendCommand(['<MSG><Exec workRequest="stageUpgrade(File={0},InstallImmediately=False,ReleaseName=notepad_5.9.0.0)" /></MSG>'], 0)
bit.sendCommand(['<MSG><Exec workRequest="stageUpgrade(File={0},InstallImmediately=False,ReleaseName=vizEngine_2.8.5.2988002)" /></MSG>'], 0)
bit.sendCommand(['<MSG><Exec workRequest="stageUpgrade(File={0},InstallImmediately=False,ReleaseName=vizRequiredFilesForI2_1.2.0.0)" /></MSG>'], 0)
bit.sendCommand(['<MSG><Exec workRequest="stageUpgrade(File={0},InstallImmediately=False,ReleaseName=vlc_1.1.11.0)" /></MSG>'], 0)
bit.sendCommand(['<MSG><Exec workRequest="stageUpgrade(File={0},InstallImmediately=False,ReleaseName=wireshark_1.4.6.0)" /></MSG>'], 0)
'''
#bit.sendCommand(['<MSG><Exec workRequest="cancelPres(File={0},PresentationId=LDL,StartTime=09/17/2022 02:32:40:00)" /><CheckHeadendId><HeadendId>006833</HeadendId></CheckHeadendId></MSG>'], 1)
#bit.sendCommand('C:\\Clips\\Upgrades\\split\\PipelineMaint_6.15.1.5714_03', '<MSG><Exec workRequest="storeUpgrade(File=C:/Program Files/TWC/i2/Volatile/MsgIngester-7787/410059604,ReleaseName=PipelineMaint_6.15.1.5714)" /></MSG>I2MSG', 0)
#bit.sendCommand(['<MSG><Exec workRequest="stageStarBundle(File=C:\\Program Files\\TWC\\i2\\Volatile\\MsgIngester-7787\\410069442)" /></MSG>'], 0)
#bit.sendCommand(['<MSG><Exec workRequest="loadPres(File={0},Flavor=domestic/ldlI,Duration=72000,PresentationId=ldl)" /></MSG>'], 1)
#bit.sendCommand(['<MSG><Exec workRequest="cancelPres(File={0},PresentationId=LDL,StartTime=09/25/2022 04:01:30:22)" /></MSG>'], 1)
#bit.sendCommand(['<MSG><Exec workRequest="runPres(File={0},PresentationId=ldl,StartTime=09/17/2022 17:03:35:00)" /></MSG>'], 1)
#makeStarBundle('D:\\i2State\\SD\\Changeset\\audio\\domesticSD\\vocalLocal\\Cantore', 'Changeset', 'Domestic_SD_Universe', '63702614401035937', '09/19/2022', 0)

45
py2Lib/starbundle.py Normal file
View File

@ -0,0 +1,45 @@
import os
import shutil
import random
def makeStarBundle(Directory, Type, flag, Version, date, sendAfter):
header = '<StarBundle>\n <Version>' + Version + '</Version>\n <ApplyDate>' + date + '</ApplyDate>\n <Type>' + Type + '</Type>\n <FileActions>\n'
with open('C:\\Bundle\\MetaData\\manifest.xml', 'w') as ma:
ma.write(header)
ma.close()
for (root,dirs,files) in os.walk(Directory, topdown=True):
num = 0
for name in files:
rootDir = None
if Type == "Managed":
rootDir= root[22:]
else:
rootDir = root[24:]
bDest = os.path.join(rootDir,name)
fDest = os.path.join(root,name)
signature = ''.join(random.choice('abcdef0123456789') for i in range(32))
splitExt = os.path.splitext(name)
bName = splitExt[0] + '_' + signature
shutil.copy(fDest, 'C:\\Bundle\\' + bName)
if flag == 'Domestic_Universe':
flag = 'flags="Domestic_Universe"'
elif flag == 'Domestic_SD_Universe':
flag = 'flags="Domestic_SD_Universe"'
else:
pass
with open('C:\\Bundle\\MetaData\\manifest.xml', 'a') as mb:
mb.write(' <Add src="' + bName + '" dest="' + bDest + '" ' + flag + ' />\n')
mb.close()
num += 1
closer = ' </FileActions>\n</StarBundle>'
with open('C:\\Bundle\\MetaData\\manifest.xml', 'a') as ma:
ma.write(closer)
ma.close()
#Directory which contains Files to be bundled Type Flags Version Date SendImmediately(Does not apply to this script)
makeStarBundle('D:\\i2State\\SD\\Managed\\Events', 'Managed', 'Domestic_SD_Universe', '637898877227230030', '09/28/2022', 0)