diff --git a/.gitignore b/.gitignore
index 091fc37..1814433 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
venv/
setup.sh
navidrome-upload.service
+.idea/
\ No newline at end of file
diff --git a/main.py b/main.py
index a305940..6b249e2 100644
--- a/main.py
+++ b/main.py
@@ -1,5 +1,5 @@
import os
-from flask import Flask, flash, request, redirect
+from flask import Flask, request, render_template
from werkzeug.utils import secure_filename
UPLOAD_FOLDER = '/opt/navidrome/music'
@@ -15,34 +15,22 @@ def allowed_file(filename):
@app.route('/', methods=['GET', 'POST'])
def upload_file():
if request.method == 'POST':
- # check if the post request has the file part
if 'file' not in request.files:
- flash('No file part')
- return redirect(request.url)
- file = request.files['file']
- # If the user does not select a file, the browser submits an
- # empty file without a filename.
- if file.filename == '':
- flash('No selected file')
- return redirect(request.url)
- if file and allowed_file(file.filename):
- filename = secure_filename(file.filename)
- file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
- # File saved successfully, return a success message
- return f'''
-
File {filename} uploaded successfully
-
- ''', 200
- return '''
-
- Upload new File
-
- Upload new File
-
- '''
+ return render_template('error.html', error_message='No file part in the request'), 400
+ files = request.files.getlist('file')
+ for file in files:
+ if file.filename == '':
+ return render_template('error.html', error_message='No selected file'), 400
+ if file and allowed_file(file.filename):
+ filename = secure_filename(file.filename)
+ file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
+ else:
+ return render_template('error.html', error_message=f'File "{file.filename}" is not allowed. Allowed types: {", ".join(ALLOWED_EXTENSIONS)}'), 400
+
+ return render_template('success.html', success_message=f'{len(files)} file(s) uploaded successfully!')
+
+ return render_template('index.html')
+
if __name__ == '__main__':
app.run(host='192.168.2.24', port=5001, debug=False)
diff --git a/templates/error.html b/templates/error.html
new file mode 100644
index 0000000..530cc3c
--- /dev/null
+++ b/templates/error.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+ Error - Upload Music
+
+
+
+
+ Error
+ {{ error_message }}
+
+
+
\ No newline at end of file
diff --git a/templates/index.html b/templates/index.html
new file mode 100644
index 0000000..1f49f62
--- /dev/null
+++ b/templates/index.html
@@ -0,0 +1,22 @@
+
+
+
+
+
+ Upload Music
+
+
+
+
+ Upload new File
+
+
+
\ No newline at end of file
diff --git a/templates/success.html b/templates/success.html
new file mode 100644
index 0000000..2c6e569
--- /dev/null
+++ b/templates/success.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+ Success - Upload Music
+
+
+
+
+ Success
+ {{ success_message }}
+
+
+
\ No newline at end of file