commit 9941d08f198c8713dad9fac49852f810e57daf5d Author: Arian Nasr <81041177+arian-nasr@users.noreply.github.com> Date: Fri Feb 27 18:10:32 2026 -0500 repo init diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..091fc37 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +venv/ +setup.sh +navidrome-upload.service diff --git a/main.py b/main.py new file mode 100644 index 0000000..03a0281 --- /dev/null +++ b/main.py @@ -0,0 +1,45 @@ +import os +from flask import Flask, flash, request, redirect +from werkzeug.utils import secure_filename + +UPLOAD_FOLDER = '/opt/navidrome/music' +ALLOWED_EXTENSIONS = {'flac', 'mp3', 'wav'} + +app = Flask(__name__) +app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER + +def allowed_file(filename): + return '.' in filename and \ + filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS + +@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

+
+ + +
+ ''' + +if __name__ == '__main__': + app.run(host='192.168.2.24', port=5001, debug=False) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..c892a99 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,7 @@ +blinker==1.9.0 +click==8.3.1 +Flask==3.1.2 +itsdangerous==2.2.0 +Jinja2==3.1.6 +MarkupSafe==3.0.3 +Werkzeug==3.1.5