python service http refactor start
This commit is contained in:
BIN
audio-service/src/routes/__pycache__/device.cpython-313.pyc
Normal file
BIN
audio-service/src/routes/__pycache__/device.cpython-313.pyc
Normal file
Binary file not shown.
BIN
audio-service/src/routes/__pycache__/metadata.cpython-313.pyc
Normal file
BIN
audio-service/src/routes/__pycache__/metadata.cpython-313.pyc
Normal file
Binary file not shown.
BIN
audio-service/src/routes/__pycache__/recording.cpython-313.pyc
Normal file
BIN
audio-service/src/routes/__pycache__/recording.cpython-313.pyc
Normal file
Binary file not shown.
BIN
audio-service/src/routes/__pycache__/settings.cpython-313.pyc
Normal file
BIN
audio-service/src/routes/__pycache__/settings.cpython-313.pyc
Normal file
Binary file not shown.
37
audio-service/src/routes/device.py
Normal file
37
audio-service/src/routes/device.py
Normal file
@ -0,0 +1,37 @@
|
||||
from flask import Blueprint, request, jsonify
|
||||
from windows_audio import WindowsAudioManager
|
||||
from audio_recorder import AudioRecorder
|
||||
|
||||
device_bp = Blueprint('device', __name__)
|
||||
|
||||
audio_manager = WindowsAudioManager()
|
||||
recorder = AudioRecorder()
|
||||
|
||||
# @device_bp.route('/device/set', methods=['POST'])
|
||||
# def set_audio_device():
|
||||
# device_index = request.json.get('device_index')
|
||||
# try:
|
||||
# device_index = int(device_index)
|
||||
# print(f'HTTP: Setting audio device to index {device_index}')
|
||||
# sample_rate = audio_manager.set_default_input_device(device_index)
|
||||
# recorder.sample_rate = sample_rate
|
||||
# return jsonify({'status': 'device set', 'device_index': device_index, 'sample_rate': sample_rate})
|
||||
# except Exception as e:
|
||||
# return jsonify({'status': 'error', 'message': str(e)}), 400
|
||||
|
||||
@device_bp.route('/device/get', methods=['GET'])
|
||||
def get_audio_device():
|
||||
try:
|
||||
device_info = audio_manager.get_default_device('input')
|
||||
return jsonify({'status': 'success', 'device_info': device_info})
|
||||
except Exception as e:
|
||||
return jsonify({'status': 'error', 'message': str(e)}), 400
|
||||
|
||||
@device_bp.route('/device/list', methods=['GET'])
|
||||
def list_audio_devices():
|
||||
device_type = request.args.get('device_type', 'input')
|
||||
try:
|
||||
devices = audio_manager.list_audio_devices(device_type)
|
||||
return jsonify({'status': 'success', 'devices': devices})
|
||||
except Exception as e:
|
||||
return jsonify({'status': 'error', 'message': str(e)}), 400
|
||||
43
audio-service/src/routes/metadata.py
Normal file
43
audio-service/src/routes/metadata.py
Normal file
@ -0,0 +1,43 @@
|
||||
|
||||
from flask import Blueprint, request, jsonify
|
||||
from metadata_manager import MetaDataManager
|
||||
|
||||
metadata_bp = Blueprint('metadata', __name__)
|
||||
|
||||
@metadata_bp.route('/meta/collections', methods=['GET'])
|
||||
def get_collections():
|
||||
meta_manager = MetaDataManager()
|
||||
collections = meta_manager.get_collections()
|
||||
return jsonify({'status': 'success', 'collections': collections})
|
||||
|
||||
@metadata_bp.route('/meta/collections/add', methods=['POST'])
|
||||
def add_collection():
|
||||
meta_manager = MetaDataManager()
|
||||
collection_name = request.json.get('name')
|
||||
try:
|
||||
meta_manager.create_collection(collection_name)
|
||||
return jsonify({'status': 'success', 'collection': collection_name})
|
||||
except ValueError as e:
|
||||
return jsonify({'status': 'error', 'message': str(e)}), 400
|
||||
|
||||
@metadata_bp.route('/meta/collection/clips', methods=['GET'])
|
||||
def get_clips_in_collection():
|
||||
meta_manager = MetaDataManager()
|
||||
collection_name = request.args.get('name')
|
||||
try:
|
||||
clips = meta_manager.get_clips_in_collection(collection_name)
|
||||
return jsonify({'status': 'success', 'clips': clips})
|
||||
except ValueError as e:
|
||||
return jsonify({'status': 'error', 'message': str(e)}), 400
|
||||
|
||||
@metadata_bp.route('/meta/collection/clips/add', methods=['POST'])
|
||||
def add_clip_to_collection():
|
||||
meta_manager = MetaDataManager()
|
||||
collection_name = request.json.get('name')
|
||||
clip_metadata = request.json.get('clip')
|
||||
try:
|
||||
meta_manager.add_clip_to_collection(collection_name, clip_metadata)
|
||||
clips = meta_manager.get_clips_in_collection(collection_name)
|
||||
return jsonify({'status': 'success', 'clips': clips})
|
||||
except ValueError as e:
|
||||
return jsonify({'status': 'error', 'message': str(e)}), 400
|
||||
34
audio-service/src/routes/recording.py
Normal file
34
audio-service/src/routes/recording.py
Normal file
@ -0,0 +1,34 @@
|
||||
|
||||
from flask import Blueprint, request, jsonify
|
||||
from audio_recorder import AudioRecorder
|
||||
|
||||
recording_bp = Blueprint('recording', __name__)
|
||||
|
||||
@recording_bp.route('/record/start', methods=['POST'])
|
||||
def start_recording():
|
||||
recorder = AudioRecorder()
|
||||
print('HTTP: Starting audio recording')
|
||||
recorder.start_recording()
|
||||
return jsonify({'status': 'recording started'})
|
||||
|
||||
@recording_bp.route('/record/stop', methods=['POST'])
|
||||
def stop_recording():
|
||||
recorder = AudioRecorder()
|
||||
print('HTTP: Stopping audio recording')
|
||||
recorder.stop_recording()
|
||||
return jsonify({'status': 'recording stopped'})
|
||||
|
||||
@recording_bp.route('/record/save', methods=['POST'])
|
||||
def save_recording():
|
||||
recorder = AudioRecorder()
|
||||
print('HTTP: Saving audio recording')
|
||||
saved_file = recorder.save_last_n_seconds()
|
||||
return jsonify({'status': 'recording saved', 'file': saved_file})
|
||||
|
||||
|
||||
@recording_bp.route('/record/status', methods=['GET'])
|
||||
def recording_status():
|
||||
recorder = AudioRecorder()
|
||||
print('HTTP: Checking recording status')
|
||||
status = 'recording' if recorder.is_recording() else 'stopped'
|
||||
return jsonify({'status': status})
|
||||
25
audio-service/src/routes/settings.py
Normal file
25
audio-service/src/routes/settings.py
Normal file
@ -0,0 +1,25 @@
|
||||
from flask import Blueprint, request, jsonify
|
||||
from settings import SettingsManager
|
||||
|
||||
settings_bp = Blueprint('settings', __name__)
|
||||
|
||||
|
||||
@settings_bp.route('/settings', methods=['GET'])
|
||||
def get_all_settings():
|
||||
return jsonify({'status': 'success', 'settings': SettingsManager().get_all_settings()})
|
||||
|
||||
@settings_bp.route('/settings/<name>', methods=['GET'])
|
||||
def get_setting(name):
|
||||
value = SettingsManager().get_settings(name)
|
||||
if value is not None:
|
||||
return jsonify({'status': 'success', 'name': name, 'value': value})
|
||||
else:
|
||||
return jsonify({'status': 'error', 'message': f'Setting "{name}" not found'}), 404
|
||||
|
||||
@settings_bp.route('/settings/<name>', methods=['POST'])
|
||||
def set_setting(name):
|
||||
value = request.json.get('value')
|
||||
if value is None:
|
||||
return jsonify({'status': 'error', 'message': 'Value is required'}), 400
|
||||
SettingsManager().set_settings(name, value)
|
||||
return jsonify({'status': 'success', 'name': name, 'value': value})
|
||||
Reference in New Issue
Block a user