implement text upload
This commit is contained in:
parent
8cfb6aaf9a
commit
875041fa71
25
saddle.py
25
saddle.py
|
@ -41,6 +41,12 @@ async def index(request):
|
|||
files.append(handle_filefield(filefield, rand_name=rand_name))
|
||||
if data.get('url'):
|
||||
files.append(handle_url(data.get('url'), rand_name=rand_name))
|
||||
if data.get('text'):
|
||||
files.append(handle_text(
|
||||
data.get('text'),
|
||||
data.get('text_filename', ''),
|
||||
rand_name=rand_name)
|
||||
)
|
||||
|
||||
if data.get('delete_this'):
|
||||
delete_num = data.get('delete_num', '')
|
||||
|
@ -134,6 +140,25 @@ def handle_url(url, rand_name=True):
|
|||
return tup
|
||||
|
||||
|
||||
def handle_text(text, filename, rand_name=True):
|
||||
"""Handles a posted text field."""
|
||||
filename = safe_filename(filename)
|
||||
if not filename:
|
||||
rand_name = True
|
||||
prefix = get_rand_chars()
|
||||
if rand_name:
|
||||
filename = prefix + os.path.splitext(filename)[1]
|
||||
else:
|
||||
filename = prefix + '_' + filename
|
||||
filename = filename + '.txt'
|
||||
|
||||
with open(os.path.join(config.upload_dir, filename), 'w') as file:
|
||||
file.write(text)
|
||||
|
||||
tup = (prefix, filename)
|
||||
return tup
|
||||
|
||||
|
||||
def safe_filename(filename=''):
|
||||
"""Sanitizes the given filename."""
|
||||
safe_char = string.ascii_letters + string.digits + '._ '
|
||||
|
|
|
@ -11,3 +11,12 @@ function switchFileTab(span, window_id) {
|
|||
let tab_window = document.querySelector('#' + window_id);
|
||||
tab_window.classList.add('tabWindowSelected');
|
||||
}
|
||||
|
||||
function disable_text_filename(checkbox) {
|
||||
let input = document.querySelector('#text_filename');
|
||||
if (checkbox.checked) {
|
||||
input.disabled = true;
|
||||
} else {
|
||||
input.disabled = false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,10 +27,12 @@
|
|||
<input type="url" name="url" placeholder="URL"><br>
|
||||
</div>
|
||||
<div id="textTabWindow" class="tabWindow">
|
||||
Imagine actually using this feature.
|
||||
<label for="text_filename">Filename:</label>
|
||||
<input type="text" name="text_filename" id="text_filename" required disabled><br>
|
||||
<textarea name="text"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<input type="checkbox" name="rand_name" id="rand_name" checked>
|
||||
<input type="checkbox" name="rand_name" id="rand_name" onchange="disable_text_filename(this)" checked>
|
||||
<label for="rand_name">Generate random filename.</label><br>
|
||||
<input type="hidden" name="response_type" value="html">
|
||||
<input type="checkbox" name="delete_this" id="delete_this">
|
||||
|
|
Loading…
Reference in New Issue
Block a user