Files
Dev PC 69d5429d3a init
2025-08-03 15:53:23 +03:00

46 lines
1.3 KiB
Python

import os
import subprocess
from flask import Flask, send_file
app = Flask(__name__)
def find_file_by_part_name(directory, part_name):
record_file = {
"wav": None,
"mp3": None,
}
for root, dirs, files in os.walk(directory):
for file_name in files:
if part_name in file_name:
if file_name.lower().endswith(".mp3"):
record_file["mp3"] = os.path.join(root, file_name)
break
if file_name.lower().endswith(".wav"):
record_file["wav"] = os.path.join(root, file_name)
if record_file["mp3"]:
return record_file["mp3"]
if record_file["wav"]:
record_file["mp3"] = record_file["wav"][:-3] + "mp3"
with open(os.devnull, "w") as devnull:
subprocess.call(
["ffmpeg", "-i", record_file["wav"], record_file["mp3"]],
stdout=devnull,
stderr=devnull,
)
return record_file["mp3"]
return None
@app.route("/<path:path>")
def get_file(path):
dir = "/var/spool/asterisk/monitor"
file_path = find_file_by_part_name(dir, path)
if file_path is not None:
return send_file(file_path, mimetype="audio/mpeg")
return "", 404
if __name__ == "__main__":
app.run(host="0.0.0.0", port=3050)