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')