Compare commits
3 Commits
ec4a034581
...
875041fa71
Author | SHA1 | Date | |
---|---|---|---|
875041fa71 | |||
8cfb6aaf9a | |||
72494719b5 |
25
saddle.py
25
saddle.py
|
@ -41,6 +41,12 @@ async def index(request):
|
||||||
files.append(handle_filefield(filefield, rand_name=rand_name))
|
files.append(handle_filefield(filefield, rand_name=rand_name))
|
||||||
if data.get('url'):
|
if data.get('url'):
|
||||||
files.append(handle_url(data.get('url'), rand_name=rand_name))
|
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'):
|
if data.get('delete_this'):
|
||||||
delete_num = data.get('delete_num', '')
|
delete_num = data.get('delete_num', '')
|
||||||
|
@ -134,6 +140,25 @@ def handle_url(url, rand_name=True):
|
||||||
return tup
|
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=''):
|
def safe_filename(filename=''):
|
||||||
"""Sanitizes the given filename."""
|
"""Sanitizes the given filename."""
|
||||||
safe_char = string.ascii_letters + string.digits + '._ '
|
safe_char = string.ascii_letters + string.digits + '._ '
|
||||||
|
|
|
@ -82,6 +82,7 @@ section {
|
||||||
color: black;
|
color: black;
|
||||||
border: 1px solid darkgray;
|
border: 1px solid darkgray;
|
||||||
border-bottom: none;
|
border-bottom: none;
|
||||||
|
box-shadow: 0 1px 0 gainsboro;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tabWindow {
|
.tabWindow {
|
||||||
|
|
|
@ -11,3 +11,12 @@ function switchFileTab(span, window_id) {
|
||||||
let tab_window = document.querySelector('#' + window_id);
|
let tab_window = document.querySelector('#' + window_id);
|
||||||
tab_window.classList.add('tabWindowSelected');
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -2,4 +2,7 @@
|
||||||
<object id="logo" title="Saddle Logo" data="/static/saddle.svg"></object>
|
<object id="logo" title="Saddle Logo" data="/static/saddle.svg"></object>
|
||||||
<h1>Saddle</h1>
|
<h1>Saddle</h1>
|
||||||
</div>
|
</div>
|
||||||
<nav><span><a href="./gallery/{{ request.cookies.get('userid') }}">Gallery</a></span></nav>
|
<nav>
|
||||||
|
<span><a href="{{ url('index') }}">Home</a></span>
|
||||||
|
<span><a href="{{ url('gallery', user_id=request.cookies.get('userid')) }}">Gallery</a></span>
|
||||||
|
</nav>
|
||||||
|
|
|
@ -27,10 +27,12 @@
|
||||||
<input type="url" name="url" placeholder="URL"><br>
|
<input type="url" name="url" placeholder="URL"><br>
|
||||||
</div>
|
</div>
|
||||||
<div id="textTabWindow" class="tabWindow">
|
<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>
|
||||||
</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>
|
<label for="rand_name">Generate random filename.</label><br>
|
||||||
<input type="hidden" name="response_type" value="html">
|
<input type="hidden" name="response_type" value="html">
|
||||||
<input type="checkbox" name="delete_this" id="delete_this">
|
<input type="checkbox" name="delete_this" id="delete_this">
|
||||||
|
|
Loading…
Reference in New Issue
Block a user