new: Get file downloaded in capture

pull/793/head
Raphaël Vinot 2023-09-27 12:09:20 +02:00
parent 5d760e3ec7
commit 532dcba04d
1 changed files with 18 additions and 0 deletions

View File

@ -3,7 +3,10 @@
import base64
import hashlib
import json
from io import BytesIO
from typing import Any, Dict, Optional
from zipfile import ZipFile
import flask_login # type: ignore
from flask import request, send_file
@ -462,6 +465,21 @@ class CaptureExport(Resource):
return send_file(lookyloo.get_capture(capture_uuid), mimetype='application/zip')
@api.route('/bin/<string:capture_uuid>/data')
@api.doc(description='Get the file downloaded by the capture.',
params={'capture_uuid': 'The UUID of the capture'})
class CaptureData(Resource):
@api.produces(['application/zip'])
def get(self, capture_uuid: str):
filename, data = lookyloo.get_data(capture_uuid)
to_return = BytesIO()
with ZipFile(to_return, 'w') as z:
z.writestr(filename, data.getvalue())
to_return.seek(0)
return send_file(to_return, mimetype='application/zip')
# Compare captures (WiP)
compare_settings_mapping = api.model('CompareSettings', {