new pasteboard idea

This commit is contained in:
2018-08-20 20:43:55 +03:00
parent c004c75f75
commit f4a23ad08c
5 changed files with 259 additions and 4 deletions

View File

@@ -14,7 +14,7 @@ from utils.utils import *
from utils.crypt import *
__FLEES_VERSION__ = "20180724.0"
__FLEES_VERSION__ = "20180820.0"
app = Flask(__name__)
app.config.from_object(__name__)
# Read config from json !
@@ -333,6 +333,67 @@ def file_details(name, token):
return jsonify(files), 200
@app.route('/file/delete/<name>/<token>/<path:filename>', methods=['GET'])
def file_delete(name, token, filename):
(ok,share) = get_share(name, token = token)
if not ok:
return share
full_path = os.path.join(
share['path'],
secure_filename_hidden(filename)
)
if not os.path.exists(full_path):
return "-1", 403
allow_direct = get_or_none('direct_links', share) if get_or_none('pass_hash', share) else False
if not allow_direct:
return "Not allowed", 403
upload = get_or_none('upload', share)
if not upload:
return "Not allowed", 403
overwrite = get_or_none('overwrite', share)
if overwrite:
os.remove(full_path)
else:
file_versionize(full_path)
return "OK", 200
#~ @app.route('/file/direct/<name>/<token>/<path:filename>', methods=['GET'])
#~ def file_direct(name, token, filename):
#~ (ok,share) = get_share(name, token = token)
#~ if not ok:
#~ return share
#~ full_path = os.path.join(
#~ share['path'],
#~ secure_filename_hidden(filename)
#~ )
#~ if not os.path.exists(full_path):
#~ return "-1", 403
#~ allow_direct = get_or_none('direct_links', share) if get_or_none('pass_hash', share) else False
#~ if not allow_direct:
#~ return "-1", 403
#~ token = get_direct_token(share, filename)
#~ return token, 200
@app.route('/file/ls/<name>/<token>', methods=['GET'])
def file_ls(name, token):
(ok,share) = get_share(name, token = token)
if not ok:
return share
files = []
for file in iter_folder_files(share['path'], version_folder = app.config['VERSION_FOLDER']):
status = file_stat(share['path'],file)
files.append(
"%s %8s %s"%(
status['mtime'],
status['size'],
status['name'],
)
)
return "\n".join(files), 200
@app.route('/file/size/<name>/<token>/<path:filename>', methods=['GET'])
def file_size(name, token, filename):
(ok,share) = get_share(name, token = token)
@@ -378,7 +439,7 @@ def list_view(name, token = None):
used_token = session[name + 'Token']
else:
used_token = '[TOKEN]'
script_api = [get_script_url(app.config['PUBLIC_URL'], share, x, used_token) for x in ('client', 'download', 'upload_split')]
script_api = [get_script_url(app.config['PUBLIC_URL'], share, x, used_token) for x in ('client', 'download', 'upload_split', 'flip')]
if not upload:
overwrite = False
return render_template(
@@ -494,6 +555,17 @@ def script_client(name = None, token = None):
rooturl = request.url_root
)
@app.route('/script/flip/<name>/<token>', methods=['GET'])
@app.route('/script/flip', methods=['GET'])
def script_flip(name = "", token = ""):
return render_template(
"flip",
name = name,
token = token,
rooturl = request.url_root,
version = __FLEES_VERSION__
)
@app.route('/script/upload/<name>/<token>', methods=['GET'])
def script_upload(name = None, token = None):