mirror of
https://github.com/Pax1601/DCSOlympus.git
synced 2025-10-29 16:56:34 +00:00
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -9061,10 +9061,10 @@
|
|||||||
"type": "AAA",
|
"type": "AAA",
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"liveries": {},
|
"liveries": {},
|
||||||
"aimTime": 18,
|
"aimTime": 25,
|
||||||
"shotsToFire": 5,
|
"shotsToFire": 2,
|
||||||
"acquisitionRange": 8000,
|
"acquisitionRange": 15000,
|
||||||
"engagementRange": 1000,
|
"engagementRange": 12000,
|
||||||
"description": "The flak 88. Fixed anti aircraft gun famously also used as an anti-tank gun. 88mm flak gun.",
|
"description": "The flak 88. Fixed anti aircraft gun famously also used as an anti-tank gun. 88mm flak gun.",
|
||||||
"abilities": "AA",
|
"abilities": "AA",
|
||||||
"canTargetPoint": true,
|
"canTargetPoint": true,
|
||||||
@@ -9074,11 +9074,11 @@
|
|||||||
"cost": 40000,
|
"cost": 40000,
|
||||||
"markerFile": "groundunit-aaa",
|
"markerFile": "groundunit-aaa",
|
||||||
"canAAA": true,
|
"canAAA": true,
|
||||||
"shotsBaseInterval": 5,
|
"shotsBaseInterval": 10,
|
||||||
"shotsBaseScatter": 5,
|
"shotsBaseScatter": 5,
|
||||||
"aimMethodRange": 100,
|
"aimMethodRange": 15000,
|
||||||
"targetingRange": 7000,
|
"targetingRange": 200,
|
||||||
"alertnessTimeConstant": 5
|
"alertnessTimeConstant": 15
|
||||||
},
|
},
|
||||||
"Pz_IV_H": {
|
"Pz_IV_H": {
|
||||||
"name": "Pz_IV_H",
|
"name": "Pz_IV_H",
|
||||||
|
|||||||
@@ -9061,10 +9061,10 @@
|
|||||||
"type": "AAA",
|
"type": "AAA",
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"liveries": {},
|
"liveries": {},
|
||||||
"aimTime": 18,
|
"aimTime": 25,
|
||||||
"shotsToFire": 5,
|
"shotsToFire": 2,
|
||||||
"acquisitionRange": 8000,
|
"acquisitionRange": 15000,
|
||||||
"engagementRange": 1000,
|
"engagementRange": 12000,
|
||||||
"description": "The flak 88. Fixed anti aircraft gun famously also used as an anti-tank gun. 88mm flak gun.",
|
"description": "The flak 88. Fixed anti aircraft gun famously also used as an anti-tank gun. 88mm flak gun.",
|
||||||
"abilities": "AA",
|
"abilities": "AA",
|
||||||
"canTargetPoint": true,
|
"canTargetPoint": true,
|
||||||
@@ -9074,11 +9074,11 @@
|
|||||||
"cost": 40000,
|
"cost": 40000,
|
||||||
"markerFile": "groundunit-aaa",
|
"markerFile": "groundunit-aaa",
|
||||||
"canAAA": true,
|
"canAAA": true,
|
||||||
"shotsBaseInterval": 5,
|
"shotsBaseInterval": 10,
|
||||||
"shotsBaseScatter": 5,
|
"shotsBaseScatter": 5,
|
||||||
"aimMethodRange": 100,
|
"aimMethodRange": 15000,
|
||||||
"targetingRange": 7000,
|
"targetingRange": 200,
|
||||||
"alertnessTimeConstant": 5
|
"alertnessTimeConstant": 15
|
||||||
},
|
},
|
||||||
"Pz_IV_H": {
|
"Pz_IV_H": {
|
||||||
"name": "Pz_IV_H",
|
"name": "Pz_IV_H",
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
1
scripts/python/.gitignore
vendored
Normal file
1
scripts/python/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
.venv
|
||||||
63
scripts/python/.vscode/launch.json
vendored
63
scripts/python/.vscode/launch.json
vendored
@@ -5,12 +5,71 @@
|
|||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"configurations": [
|
"configurations": [
|
||||||
{
|
{
|
||||||
"name": "Python: Current File",
|
"name": "Add missing units",
|
||||||
"type": "python",
|
"type": "python",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"program": "${file}",
|
"program": "addMissingUnits.py",
|
||||||
"console": "integratedTerminal",
|
"console": "integratedTerminal",
|
||||||
|
"args": ["${input:unitType}", "${input:searchFolder}"],
|
||||||
|
"justMyCode": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Add liveries",
|
||||||
|
"type": "python",
|
||||||
|
"request": "launch",
|
||||||
|
"program": "addLiveries.py",
|
||||||
|
"console": "integratedTerminal",
|
||||||
|
"args": ["${input:unitType}", "${input:searchFolder}"],
|
||||||
|
"justMyCode": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Generate payload tables",
|
||||||
|
"type": "python",
|
||||||
|
"request": "launch",
|
||||||
|
"program": "generatePayloadTables.py",
|
||||||
|
"console": "integratedTerminal",
|
||||||
|
"args": ["${input:searchFolder}"],
|
||||||
|
"justMyCode": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Add loadouts",
|
||||||
|
"type": "python",
|
||||||
|
"request": "launch",
|
||||||
|
"program": "addLoadouts.py",
|
||||||
|
"console": "integratedTerminal",
|
||||||
|
"args": ["${input:unitType}", "${input:searchFolder}"],
|
||||||
|
"justMyCode": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Add ranges",
|
||||||
|
"type": "python",
|
||||||
|
"request": "launch",
|
||||||
|
"program": "addRanges.py",
|
||||||
|
"console": "integratedTerminal",
|
||||||
|
"args": ["${input:unitType}", "${input:searchFolder}"],
|
||||||
"justMyCode": true
|
"justMyCode": true
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"id": "unitType",
|
||||||
|
"type": "command",
|
||||||
|
"command": "extension.commandvariable.promptStringRemember",
|
||||||
|
"args": {
|
||||||
|
"key": "type",
|
||||||
|
"description": "Unit type (aircraft, helicopter, groundunit, navyunit)",
|
||||||
|
"default": "aircraft"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "searchFolder",
|
||||||
|
"type": "command",
|
||||||
|
"command": "extension.commandvariable.promptStringRemember",
|
||||||
|
"args": {
|
||||||
|
"key": "folder",
|
||||||
|
"description": "DCS folder location",
|
||||||
|
"default": "E:\\Eagle Dynamics\\DCS World (Open Beta)"
|
||||||
|
}
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -4,9 +4,7 @@ import inspect
|
|||||||
import difflib
|
import difflib
|
||||||
from slpp import slpp as lua
|
from slpp import slpp as lua
|
||||||
|
|
||||||
SEARCH_FOLDER = "D:\\Eagle Dynamics\\DCS World OpenBeta"
|
SEARCH_FOLDER = sys.argv[2]
|
||||||
|
|
||||||
sys.path.append("..\\..\\..\\dcs-master\\dcs-master")
|
|
||||||
|
|
||||||
from dcs.weapons_data import Weapons
|
from dcs.weapons_data import Weapons
|
||||||
from dcs.planes import *
|
from dcs.planes import *
|
||||||
|
|||||||
@@ -4,15 +4,12 @@ import inspect
|
|||||||
import difflib
|
import difflib
|
||||||
from slpp import slpp as lua
|
from slpp import slpp as lua
|
||||||
|
|
||||||
SEARCH_FOLDER = "D:\\Eagle Dynamics\\DCS World OpenBeta"
|
SEARCH_FOLDER = sys.argv[2]
|
||||||
|
|
||||||
sys.path.append("..\..\..\dcs-master\dcs-master")
|
|
||||||
|
|
||||||
from dcs.weapons_data import Weapons
|
from dcs.weapons_data import Weapons
|
||||||
from dcs.planes import *
|
from dcs.planes import *
|
||||||
from dcs.helicopters import *
|
from dcs.helicopters import *
|
||||||
|
|
||||||
|
|
||||||
clsid_conversion = {
|
clsid_conversion = {
|
||||||
'ExtFuelTankID' : "{EFT_230GAL}" ,
|
'ExtFuelTankID' : "{EFT_230GAL}" ,
|
||||||
'InternalFuelTank100' : "{IAFS_ComboPak_100}" ,
|
'InternalFuelTank100' : "{IAFS_ComboPak_100}" ,
|
||||||
|
|||||||
@@ -4,9 +4,7 @@ import inspect
|
|||||||
import difflib
|
import difflib
|
||||||
from slpp import slpp as lua
|
from slpp import slpp as lua
|
||||||
|
|
||||||
SEARCH_FOLDER = "D:\\Eagle Dynamics\\DCS World OpenBeta"
|
SEARCH_FOLDER = sys.argv[2]
|
||||||
|
|
||||||
sys.path.append("..\\..\\..\\dcs-master\\dcs-master")
|
|
||||||
|
|
||||||
from dcs.vehicles import *
|
from dcs.vehicles import *
|
||||||
from dcs.ships import *
|
from dcs.ships import *
|
||||||
@@ -38,8 +36,8 @@ if len(sys.argv) > 1:
|
|||||||
"name": unit.id,
|
"name": unit.id,
|
||||||
"coalition": "",
|
"coalition": "",
|
||||||
"era": "",
|
"era": "",
|
||||||
"label": unit.name,
|
"label": unit.livery_name,
|
||||||
"shortLabel": unit.name,
|
"shortLabel": unit.livery_name,
|
||||||
"type": unit.__qualname__.split(".")[0],
|
"type": unit.__qualname__.split(".")[0],
|
||||||
"enabled": False,
|
"enabled": False,
|
||||||
"liveries": {}
|
"liveries": {}
|
||||||
|
|||||||
@@ -4,9 +4,7 @@ import inspect
|
|||||||
import difflib
|
import difflib
|
||||||
from slpp import slpp as lua
|
from slpp import slpp as lua
|
||||||
|
|
||||||
SEARCH_FOLDER = "D:\\Eagle Dynamics\\DCS World OpenBeta"
|
SEARCH_FOLDER = sys.argv[2]
|
||||||
|
|
||||||
sys.path.append("..\..\..\dcs-master\dcs-master")
|
|
||||||
|
|
||||||
from dcs.vehicles import *
|
from dcs.vehicles import *
|
||||||
from dcs.ships import *
|
from dcs.ships import *
|
||||||
|
|||||||
@@ -1,35 +0,0 @@
|
|||||||
import sys
|
|
||||||
import json
|
|
||||||
import re
|
|
||||||
|
|
||||||
|
|
||||||
# The database file on which to operate is the first standard argument of the call
|
|
||||||
if len(sys.argv) > 1:
|
|
||||||
if (sys.argv[1] == "aircraft"):
|
|
||||||
filename = '..\\..\\databases\\units\\aircraftdatabase.json'
|
|
||||||
elif (sys.argv[1] == "helicopter"):
|
|
||||||
filename = '..\\..\\databases\\units\\helicopterdatabase.json'
|
|
||||||
elif (sys.argv[1] == "groundunit"):
|
|
||||||
filename = '..\\..\\databases\\units\\groundunitdatabase.json'
|
|
||||||
elif (sys.argv[1] == "navyunit"):
|
|
||||||
filename = '..\\..\\databases\\units\\navyunitdatabase.json'
|
|
||||||
|
|
||||||
# Loads the database
|
|
||||||
with open(filename) as f:
|
|
||||||
database = json.load(f)
|
|
||||||
|
|
||||||
for name in database:
|
|
||||||
label = database[name]['label']
|
|
||||||
print(label)
|
|
||||||
res = re.findall("\((.*?)\)", label)
|
|
||||||
for tag in res:
|
|
||||||
label = label.replace(f"({tag})", "")
|
|
||||||
label = database[name]['label'] = label
|
|
||||||
if len(res) > 0:
|
|
||||||
database[name]["tags"] = "".join([f'{tag}{", " if i < len(res) - 1 else ""}' for i, tag in enumerate(res)])
|
|
||||||
|
|
||||||
# Dump everything in the database
|
|
||||||
with open(filename, "w") as f:
|
|
||||||
json.dump(database, f, indent=2)
|
|
||||||
|
|
||||||
print("Done!")
|
|
||||||
@@ -4,9 +4,7 @@ import os
|
|||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
sys.path.append("..\..\..\dcs-master\dcs-master")
|
SEARCH_FOLDER = sys.argv[1]
|
||||||
|
|
||||||
SEARCH_FOLDER = "D:\\Eagle Dynamics\\DCS World OpenBeta"
|
|
||||||
|
|
||||||
clsid_conversion = {
|
clsid_conversion = {
|
||||||
'ExtFuelTankID' : "{EFT_230GAL}" ,
|
'ExtFuelTankID' : "{EFT_230GAL}" ,
|
||||||
|
|||||||
@@ -1,23 +0,0 @@
|
|||||||
import socket
|
|
||||||
from email.utils import formatdate
|
|
||||||
|
|
||||||
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
||||||
sock.bind(('127.0.0.1', 3003))
|
|
||||||
sock.listen(5)
|
|
||||||
|
|
||||||
count = 0
|
|
||||||
while True:
|
|
||||||
connection, address = sock.accept()
|
|
||||||
buf = connection.recv(1024)
|
|
||||||
print(buf.decode("utf-8"))
|
|
||||||
if "OPTIONS" in buf.decode("utf-8"):
|
|
||||||
resp = (f"""HTTP/1.1 200 OK\r\nDate: {formatdate(timeval=None, localtime=False, usegmt=True)}\r\nAccess-Control-Allow-Origin: *\r\nAccess-Control-Allow-Methods: PUT, GET, OPTIONS\r\nAccess-Control-Allow-Headers: *\r\nAccess-Control-Max-Age: 86400\r\nVary: Accept-Encoding, Origin\r\nKeep-Alive: timeout=2, max=100\r\nConnection: Keep-Alive\r\n""".encode("utf-8"))
|
|
||||||
connection.send(resp)
|
|
||||||
if not "PUT" in buf.decode("utf-8"):
|
|
||||||
connection.close()
|
|
||||||
else:
|
|
||||||
resp = (f"""HTTP/1.1 200 OK\r\nDate: {formatdate(timeval=None, localtime=False, usegmt=True)}\r\nAccess-Control-Allow-Origin: *\r\nAccess-Control-Allow-Methods: PUT, GET, OPTIONS\r\nAccess-Control-Allow-Headers: *\r\nAccess-Control-Max-Age: 86400\r\nVary: Accept-Encoding, Origin\r\nKeep-Alive: timeout=2, max=100\r\nConnection: Keep-Alive\r\n\r\n{{"Hi": "Wirts!"}}\r\n""".encode("utf-8"))
|
|
||||||
connection.send(resp)
|
|
||||||
connection.close()
|
|
||||||
|
|
||||||
count += 1
|
|
||||||
@@ -1,98 +0,0 @@
|
|||||||
import sys
|
|
||||||
import os
|
|
||||||
import numpy
|
|
||||||
|
|
||||||
from PIL import Image
|
|
||||||
from concurrent import futures
|
|
||||||
from os import listdir
|
|
||||||
from os.path import isfile, isdir, join
|
|
||||||
|
|
||||||
# global counters
|
|
||||||
fut_counter = 0
|
|
||||||
tot_futs = 0
|
|
||||||
|
|
||||||
def printProgressBar(iteration, total, prefix = '', suffix = '', decimals = 1, length = 100, fill = '█', printEnd = "\r"):
|
|
||||||
percent = ("{0:." + str(decimals) + "f}").format(100 * (iteration / float(total)))
|
|
||||||
filledLength = int(length * iteration // total)
|
|
||||||
bar = fill * filledLength + '-' * (length - filledLength)
|
|
||||||
print(f'\r{prefix} |{bar}| {percent}% {suffix}', end = printEnd)
|
|
||||||
# Print New Line on Complete
|
|
||||||
if iteration == total:
|
|
||||||
print()
|
|
||||||
|
|
||||||
def done_callback(fut):
|
|
||||||
global fut_counter, tot_futs
|
|
||||||
fut_counter += 1
|
|
||||||
printProgressBar(fut_counter, tot_futs)
|
|
||||||
|
|
||||||
def remove_black_areas(im):
|
|
||||||
data = numpy.array(im)
|
|
||||||
red, green, blue = data.T
|
|
||||||
|
|
||||||
# If present, remove any "black" areas
|
|
||||||
background_areas = (red < 10) & (blue < 10) & (green < 10)
|
|
||||||
data[..., :][background_areas.T] = (221, 221, 221)
|
|
||||||
|
|
||||||
return Image.fromarray(data)
|
|
||||||
|
|
||||||
def convert_tiles(source, dest, tile):
|
|
||||||
zoom = tile[0]
|
|
||||||
X = tile[1]
|
|
||||||
Y = tile[2]
|
|
||||||
|
|
||||||
if not os.path.exists(os.path.join(dest, str(zoom))):
|
|
||||||
try:
|
|
||||||
os.mkdir(os.path.join(dest, str(zoom)))
|
|
||||||
except FileExistsError:
|
|
||||||
# Ignore this error, it means one other thread has already created the folder
|
|
||||||
pass
|
|
||||||
except Exception as e:
|
|
||||||
raise e
|
|
||||||
|
|
||||||
if not os.path.exists(os.path.join(dest, str(zoom), str(X))):
|
|
||||||
try:
|
|
||||||
os.mkdir(os.path.join(dest, str(zoom), str(X)))
|
|
||||||
except FileExistsError:
|
|
||||||
# Ignore this error, it means one other thread has already created the folder
|
|
||||||
pass
|
|
||||||
except Exception as e:
|
|
||||||
raise e
|
|
||||||
|
|
||||||
remove_black_areas(Image.open(os.path.join(source, str(zoom), str(X), f"{Y}.png")).convert('RGB')).save(os.path.join(dest, str(zoom), str(X), f"{Y}.jpg"))
|
|
||||||
|
|
||||||
if len(sys.argv) < 3:
|
|
||||||
print("Please provide a source and a destination folder")
|
|
||||||
else:
|
|
||||||
source = sys.argv[1]
|
|
||||||
dest = sys.argv[2]
|
|
||||||
|
|
||||||
if not os.path.exists(dest):
|
|
||||||
try:
|
|
||||||
os.mkdir(dest)
|
|
||||||
except FileExistsError:
|
|
||||||
# Ignore this error, it means one other thread has already created the folder
|
|
||||||
pass
|
|
||||||
except Exception as e:
|
|
||||||
raise e
|
|
||||||
|
|
||||||
print(f"Listing source tiles...")
|
|
||||||
existing_tiles = []
|
|
||||||
zooms = [int(f) for f in listdir(source) if isdir(join(source, f))]
|
|
||||||
for zoom in zooms:
|
|
||||||
Xs = [int(f) for f in listdir(join(source, str(zoom))) if isdir(join(source, str(zoom), f))]
|
|
||||||
for X in Xs:
|
|
||||||
Ys = [int(f.removesuffix(".png")) for f in listdir(os.path.join(source, str(zoom), str(X))) if isfile(join(source, str(zoom), str(X), f))]
|
|
||||||
for Y in Ys:
|
|
||||||
existing_tiles.append((zoom, X, Y))
|
|
||||||
|
|
||||||
print(f"{len(existing_tiles)} tiles will be converted")
|
|
||||||
|
|
||||||
# Merge the tiles with parallel thread execution
|
|
||||||
with futures.ThreadPoolExecutor() as executor:
|
|
||||||
print(f"Converting tiles to jpg...")
|
|
||||||
print(f"Initializing exectuion pool")
|
|
||||||
futs = [executor.submit(convert_tiles, source, dest, tile) for tile in existing_tiles]
|
|
||||||
tot_futs = len(futs)
|
|
||||||
fut_counter = 0
|
|
||||||
[fut.add_done_callback(done_callback) for fut in futs]
|
|
||||||
[fut.result() for fut in futures.as_completed(futs)]
|
|
||||||
@@ -1,69 +0,0 @@
|
|||||||
import os
|
|
||||||
|
|
||||||
# save DCS.openbeta\\mods\\aircraft path as variable
|
|
||||||
path = f"{os.environ['UserProfile']}\\Saved Games\\DCS.openbeta\\Mods\\aircraft"
|
|
||||||
|
|
||||||
# write everything to a working file - to be deleted after getting rid of unnecessary trailing commas
|
|
||||||
with open('working_file.lua', mode='w') as payload_file:
|
|
||||||
|
|
||||||
payload_file.write('Olympus.unitPayloads = {\n')
|
|
||||||
|
|
||||||
# iterate through everything in mod aircraft path
|
|
||||||
for f in os.listdir(path):
|
|
||||||
|
|
||||||
# modders are inconsistent with the lua filename, so grab that first file in the correct directory
|
|
||||||
try:
|
|
||||||
unitpayload_lua_dir = f"{path}\\{f}\\UnitPayloads"
|
|
||||||
try:
|
|
||||||
lua_filename = os.listdir(unitpayload_lua_dir)[0]
|
|
||||||
except IndexError:
|
|
||||||
pass
|
|
||||||
unitpayload_lua_path = f"{unitpayload_lua_dir}\\{lua_filename}"
|
|
||||||
|
|
||||||
# read the aircraft's payloads and write the relevant material into the working file
|
|
||||||
with open(unitpayload_lua_path) as payload_lua_file:
|
|
||||||
lines = payload_lua_file.readlines()
|
|
||||||
for line in lines:
|
|
||||||
if line.startswith(' ["name"]'):
|
|
||||||
ac_type = line.replace(' ["name"] = "', '').replace('",', '').rstrip()
|
|
||||||
ac_type = f'["{ac_type}"] =' + r' {'
|
|
||||||
payload_file.write(ac_type + '\n')
|
|
||||||
elif line.startswith(' ["name"]'):
|
|
||||||
loadout_name = line.replace(' ["name"] = "', '').replace('",', '').rstrip()
|
|
||||||
loadout_name = f'["{loadout_name}"] =' + r' {'
|
|
||||||
payload_file.write(loadout_name + '\n')
|
|
||||||
elif line.startswith(' ["CLSID"]'):
|
|
||||||
clsid = line.replace(' ', '').replace(',', '').rstrip()
|
|
||||||
clsid = r'{' + f'{clsid}' + r'}' + ','
|
|
||||||
elif line.startswith(' ["num"]'):
|
|
||||||
pylon = line.replace(' ["num"] = ', '').replace(',', '').rstrip()
|
|
||||||
pylon = f'[{pylon}] = '
|
|
||||||
payload_file.write(pylon + clsid + '\n')
|
|
||||||
elif line.startswith(' },'):
|
|
||||||
payload_file.write('},\n')
|
|
||||||
elif line.startswith('}'):
|
|
||||||
payload_file.write('},\n')
|
|
||||||
|
|
||||||
# skip directory if no directory or no file in directory
|
|
||||||
except FileNotFoundError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
payload_file.write('}')
|
|
||||||
|
|
||||||
# parse the working file, get rid of trailing commas when next line starts with a '}'.
|
|
||||||
with open("working_file.lua") as working_file:
|
|
||||||
lines = working_file.readlines()
|
|
||||||
prev_line = ''
|
|
||||||
with open("payloads.lua", mode="w") as payload_file:
|
|
||||||
for ind, line in enumerate(lines):
|
|
||||||
try:
|
|
||||||
if lines[ind + 1].startswith('}') and line.endswith('},\n'):
|
|
||||||
new_line = line.replace(',', '')
|
|
||||||
payload_file.write(f'{new_line}')
|
|
||||||
else:
|
|
||||||
payload_file.write(line)
|
|
||||||
except IndexError:
|
|
||||||
payload_file.write(line)
|
|
||||||
|
|
||||||
# delete the working file
|
|
||||||
os.remove("working_file.lua")
|
|
||||||
File diff suppressed because it is too large
Load Diff
BIN
scripts/python/requirements.txt
Normal file
BIN
scripts/python/requirements.txt
Normal file
Binary file not shown.
Reference in New Issue
Block a user