заливка базы
This commit is contained in:
Vendored
BIN
Binary file not shown.
@@ -0,0 +1,45 @@
|
||||
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)
|
||||
@@ -0,0 +1,38 @@
|
||||
1. Настройки модуля конвертации
|
||||
|
||||
1. Требования:
|
||||
Python версии не менее 3.10, рекомендуемая версия: 3.12
|
||||
|
||||
2. Основной файл для запуска:
|
||||
"main.py"
|
||||
|
||||
2. Linux Service. Для автоматического запуска и перезапуска сервиса модуля ковертации необходимо выполнить следующие действия:
|
||||
1. Создать файл medods_mp3.service по пути /etc/systemd/system со следующим содержимым:
|
||||
```
|
||||
[Unit]
|
||||
Description=Convert Asterisk wav to mp3 for Medods
|
||||
After=medods.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/medods_mp3/venv/bin/python /medods_mp3/main.py
|
||||
WorkingDirectory=/medods_mp3/
|
||||
Restart=always
|
||||
RestartSec=2
|
||||
KillMode=process
|
||||
User=root
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
2. Выполнить следующие команды:
|
||||
1. systemctl daemon-reload
|
||||
2. systemctl medods_mp3 enable
|
||||
3. systemctl start medods_mp3
|
||||
|
||||
5. Профилактический перезапуск
|
||||
Нужно в файл /etc/crontabs добавить слудующую строку:
|
||||
```
|
||||
1 3 * * * root systemctl restart medods_mp3
|
||||
```
|
||||
Это позволит обеспечить бесперебойную работу системы
|
||||
@@ -0,0 +1 @@
|
||||
flask
|
||||
Reference in New Issue
Block a user