mirror of
https://github.com/dbisu/pico-ducky.git
synced 2026-01-21 09:15:59 +00:00
Small improvements (#195)
* fixed crashes on one-line scripts, auto .dd * Delete button * Additional crash fix * Disable read-only --------- Co-authored-by: Dave <dbisu@users.noreply.github.com>
This commit is contained in:
23
webapp.py
23
webapp.py
@@ -82,7 +82,7 @@ response_html = """<!DOCTYPE html>
|
|||||||
</html>
|
</html>
|
||||||
"""
|
"""
|
||||||
|
|
||||||
newrow_html = "<tr><td>{}</td><td><a href='/edit/{}'><button>Edit</button></a><a href='/run/{}'><button>Run</button></a></tr>"
|
newrow_html = "<tr><td>{}</td><td><a href='/edit/{}'>Edit</a> / <a href='/delete/{}'>Delete</a> / <a href='/run/{}'>Run</a></tr>"
|
||||||
|
|
||||||
def setPayload(payload_number):
|
def setPayload(payload_number):
|
||||||
if(payload_number == 1):
|
if(payload_number == 1):
|
||||||
@@ -103,7 +103,7 @@ def ducky_main(request):
|
|||||||
for f in files:
|
for f in files:
|
||||||
if ('.dd' in f) == True:
|
if ('.dd' in f) == True:
|
||||||
payloads.append(f)
|
payloads.append(f)
|
||||||
newrow = newrow_html.format(f,f,f)
|
newrow = newrow_html.format(f,f,f,f)
|
||||||
#print(newrow)
|
#print(newrow)
|
||||||
rows = rows + newrow
|
rows = rows + newrow
|
||||||
|
|
||||||
@@ -181,8 +181,8 @@ def write_script(request, filename):
|
|||||||
textbuffer = form_data['scriptData']
|
textbuffer = form_data['scriptData']
|
||||||
textbuffer = cleanup_text(textbuffer)
|
textbuffer = cleanup_text(textbuffer)
|
||||||
#print(textbuffer)
|
#print(textbuffer)
|
||||||
for line in textbuffer:
|
for line in textbuffer.splitlines():
|
||||||
f.write(line)
|
f.write(line + '\n')
|
||||||
f.close()
|
f.close()
|
||||||
storage.remount("/",readonly=True)
|
storage.remount("/",readonly=True)
|
||||||
response = response_html.format("Wrote script " + filename)
|
response = response_html.format("Wrote script " + filename)
|
||||||
@@ -202,17 +202,28 @@ def write_new_script(request):
|
|||||||
form_data[key] = value
|
form_data[key] = value
|
||||||
#print(form_data)
|
#print(form_data)
|
||||||
filename = form_data['scriptName']
|
filename = form_data['scriptName']
|
||||||
|
if ".dd" not in filename:
|
||||||
|
filename = filename + ".dd"
|
||||||
textbuffer = form_data['scriptData']
|
textbuffer = form_data['scriptData']
|
||||||
textbuffer = cleanup_text(textbuffer)
|
textbuffer = cleanup_text(textbuffer)
|
||||||
storage.remount("/",readonly=False)
|
storage.remount("/",readonly=False)
|
||||||
f = open(filename,"w",encoding='utf-8')
|
f = open(filename,"w",encoding='utf-8')
|
||||||
for line in textbuffer:
|
for line in textbuffer.splitlines():
|
||||||
f.write(line)
|
f.write(line + '\n')
|
||||||
f.close()
|
f.close()
|
||||||
storage.remount("/",readonly=True)
|
storage.remount("/",readonly=True)
|
||||||
response = response_html.format("Wrote script " + filename)
|
response = response_html.format("Wrote script " + filename)
|
||||||
return("200 OK",[('Content-Type', 'text/html')], response)
|
return("200 OK",[('Content-Type', 'text/html')], response)
|
||||||
|
|
||||||
|
@web_app.route("/delete/<filename>")
|
||||||
|
def delete(request, filename):
|
||||||
|
print("Deleting ", filename)
|
||||||
|
storage.remount("/",readonly=False)
|
||||||
|
os.remove(filename)
|
||||||
|
response = response_html.format("Deleted script " + filename)
|
||||||
|
storage.remount("/",readonly=True)
|
||||||
|
return("200 OK",[('Content-Type', 'text/html')], response)
|
||||||
|
|
||||||
@web_app.route("/run/<filename>")
|
@web_app.route("/run/<filename>")
|
||||||
def run_script(request, filename):
|
def run_script(request, filename):
|
||||||
print("run_script ", filename)
|
print("run_script ", filename)
|
||||||
|
|||||||
Reference in New Issue
Block a user