direct sharing of files

This commit is contained in:
2018-01-25 14:00:30 +02:00
parent 94860d5195
commit f6696d8e28
5 changed files with 21 additions and 5 deletions

View File

@@ -97,8 +97,11 @@ def list_view(name, password = None):
"list.html", "list.html",
name = share['name'], name = share['name'],
entries = files, entries = files,
password = get_or_none(share,'pass_hash'),
public = get_or_none(share,'public'), public = get_or_none(share,'public'),
upload = get_or_none(share,'upload'), upload = get_or_none(share,'upload'),
overwrite = get_or_none(share,'overwrite'),
direct = get_or_none(share,'direct_links'),
expire = get_or_none(share,'expire') expire = get_or_none(share,'expire')
) )

View File

@@ -2,7 +2,7 @@
{% block body %} {% block body %}
authenticate to {{ name|safe }} authenticate to {{ name|safe }}
<form action={{ url_for('authenticate',name=name) }} method=post enctype=multipart/form-data> <form action={{ url_for('authenticate',name=name) }} method=post enctype=multipart/form-data>
<p><input type=password name=password> <p><input type=password name=password autofocus>
<input type=submit value=Login> <input type=submit value=Login>
</form> </form>
{% endblock %} {% endblock %}

View File

@@ -6,9 +6,12 @@
<div id=list_upload> <div id=list_upload>
<form action={{ url_for('upload') }} method=post enctype=multipart/form-data> <form action={{ url_for('upload') }} method=post enctype=multipart/form-data>
<input type=hidden name=name value="{{ name|safe }}" /> <input type=hidden name=name value="{{ name|safe }}" />
<input type=file name=file> <input type=file name=file onchange="document.getElementById('list_upload_button').disabled = false;">
<input type=submit value=Upload> <input id="list_upload_button" type=submit value=Upload disabled>
</form> </form>
{% if overwrite == false %}
Overwriting disabled
{% endif %}
</div> </div>
{% else %} {% else %}
<div id=list_upload> <div id=list_upload>
@@ -47,6 +50,9 @@
{% for entry in entries %} {% for entry in entries %}
<tr> <tr>
<td><a href="{{ url_for('download_file', name = name, filename = entry.name) }}">{{ entry.name }}</a> <td><a href="{{ url_for('download_file', name = name, filename = entry.name) }}">{{ entry.name }}</a>
{% if direct %}
&nbsp;<a href="{{ url_for('download_file', name = name, password = password, filename = entry.name ) }}" title="Direct share link">&#x2756;</a>
{% endif %}
<td class=td_right>{{ entry.size|safe }} <td class=td_right>{{ entry.size|safe }}
<td>{{ entry.mtime|safe }} <td>{{ entry.mtime|safe }}
</tr> </tr>

View File

@@ -3,7 +3,7 @@
upload to {{ name|safe }} upload to {{ name|safe }}
<form action={{ url_for('upload') }} method=post enctype=multipart/form-data> <form action={{ url_for('upload') }} method=post enctype=multipart/form-data>
<input type=hidden name=name value="{{ name|safe }}" /> <input type=hidden name=name value="{{ name|safe }}" />
<p><input type=file name=file> <p><input type=file name=file onchange="function() { document.getElementById('upload_button').disabled = false; }">
<input type=submit value=Upload> <input id="upload_button" type=submit value=Upload disabled>
</form> </form>
{% endblock %} {% endblock %}

View File

@@ -9,9 +9,14 @@ parser.add_argument('-n','--name', action="store", dest="name", required = True)
parser.add_argument('-p','--path', action="store", dest="path", required = True,help= "path relative to data folder") parser.add_argument('-p','--path', action="store", dest="path", required = True,help= "path relative to data folder")
parser.add_argument('-P','--public', action="store_true", dest="public", default = False) parser.add_argument('-P','--public', action="store_true", dest="public", default = False)
parser.add_argument('-u','--upload', action="store_true", dest="upload", default = False) parser.add_argument('-u','--upload', action="store_true", dest="upload", default = False)
parser.add_argument('-o','--overwrite', action="store_false", dest="overwrite", default = True,
help = "Allow file overwrites")
parser.add_argument('-d','--direct', action="store_true", dest="direct", default = False,
help = "Allow direct file sharing (password hash included in URL)")
parser.add_argument('--pass-plain', action="store", dest="plain", default = False) parser.add_argument('--pass-plain', action="store", dest="plain", default = False)
parser.add_argument('--pass-hashed', action="store", dest="hashed", default = False) parser.add_argument('--pass-hashed', action="store", dest="hashed", default = False)
parser.add_argument('-e','--expire', action="store", dest="expire", default = False, help = "expire date in format 2018-12-24 21:00") parser.add_argument('-e','--expire', action="store", dest="expire", default = False, help = "expire date in format 2018-12-24 21:00")
parser.add_argument('-s','--shares', action="store", dest="shares", default = False, parser.add_argument('-s','--shares', action="store", dest="shares", default = False,
help = "Your current shares.json file") help = "Your current shares.json file")
parser.add_argument('-i','--insert', action="store_true", dest="insert", default = False, parser.add_argument('-i','--insert', action="store_true", dest="insert", default = False,
@@ -24,6 +29,8 @@ share = {
'path': opts.path, 'path': opts.path,
'public': opts.public, 'public': opts.public,
'upload': opts.upload, 'upload': opts.upload,
'overwrite': opts.overwrite,
'direct_links': opts.direct,
} }
if opts.plain: if opts.plain:
share.update({ share.update({