46 lines
1.4 KiB
Python
46 lines
1.4 KiB
Python
|
from flask import Flask, request, send_file, render_template
|
||
|
import os
|
||
|
from process_audio import process_mp3
|
||
|
from zipfile import ZipFile
|
||
|
import io
|
||
|
|
||
|
app = Flask(__name__)
|
||
|
app.config['UPLOAD_FOLDER'] = 'static/uploads'
|
||
|
|
||
|
if not os.path.exists(app.config['UPLOAD_FOLDER']):
|
||
|
os.makedirs(app.config['UPLOAD_FOLDER'])
|
||
|
|
||
|
@app.route('/')
|
||
|
def index():
|
||
|
return render_template('index.html')
|
||
|
|
||
|
@app.route('/upload', methods=['POST'])
|
||
|
def upload_file():
|
||
|
if 'files' not in request.files:
|
||
|
return "No file part"
|
||
|
files = request.files.getlist('files')
|
||
|
if not files:
|
||
|
return "No selected file"
|
||
|
|
||
|
processed_files = []
|
||
|
for file in files:
|
||
|
if file and file.filename.endswith('.mp3'):
|
||
|
filepath = os.path.join(app.config['UPLOAD_FOLDER'], file.filename)
|
||
|
file.save(filepath)
|
||
|
processed_filepath = process_mp3(filepath)
|
||
|
processed_files.append(processed_filepath)
|
||
|
else:
|
||
|
return "Invalid file type"
|
||
|
|
||
|
# ZIPファイルの作成
|
||
|
zip_buffer = io.BytesIO()
|
||
|
with ZipFile(zip_buffer, 'w') as zip_file:
|
||
|
for processed_file in processed_files:
|
||
|
zip_file.write(processed_file, os.path.basename(processed_file))
|
||
|
zip_buffer.seek(0)
|
||
|
|
||
|
return send_file(zip_buffer, as_attachment=True, download_name='intro_files.zip', mimetype='application/zip')
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
app.run(debug=True, host='0.0.0.0')
|