diff options
Diffstat (limited to 'web-project/src/recording.py')
| -rw-r--r-- | web-project/src/recording.py | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/web-project/src/recording.py b/web-project/src/recording.py index 2afd567..4301b02 100644 --- a/web-project/src/recording.py +++ b/web-project/src/recording.py @@ -3,11 +3,16 @@ from contextlib import contextmanager from asyncio import sleep from tempfile import TemporaryDirectory from datetime import date +from re import sub from nicegui import ui, run +from slugify import slugify _recording = None +def _removeParens(string): + return sub(r'\(.*?\)', '', string).strip() + @contextmanager def _disable(button: ui.button): button.disable() @@ -48,10 +53,11 @@ def _makePlayCallback(playButton, recordButton, uploadButton, soloTool, recorder soloTool.play() return f -def _makeUploadCallback(playButton, recordButton, uploadButton, tempDir, sessionManager): +def _makeUploadCallback(playButton, recordButton, uploadButton, tempDir, sessionManager, getCurrentSong): async def f(): with ui.dialog() as dialog, ui.card(): - fileName = ui.input(label='File name', value="jam.mp3") + defaultName = f"{slugify(_removeParens(getCurrentSong()))}.mp3" + fileName = ui.input(label='File name', value=defaultName) with ui.row(): ui.button('Upload', color='positive', on_click=lambda: dialog.submit(fileName.value)) ui.button('Cancel', color='negative' ,on_click=lambda: dialog.submit(None)) @@ -91,7 +97,7 @@ def _makeUploadCallback(playButton, recordButton, uploadButton, tempDir, session n.dismiss() return f -def recordingControls(soloTool, recorder, sessionManager): +def recordingControls(soloTool, recorder, sessionManager, getCurrentSong): tempDir = TemporaryDirectory(prefix="solotool-") wavFile = Path(tempDir.name) / "st_recording.wav" @@ -108,4 +114,4 @@ def recordingControls(soloTool, recorder, sessionManager): recordButton.on_click(_makeRecordCallback(playButton, recordButton, uploadButton, soloTool, recorder, wavFile)) playButton.on_click(_makePlayCallback(playButton, recordButton, uploadButton, soloTool, recorder, wavFile)) - uploadButton.on_click(_makeUploadCallback(playButton, recordButton, uploadButton, tempDir, sessionManager)) + uploadButton.on_click(_makeUploadCallback(playButton, recordButton, uploadButton, tempDir, sessionManager, getCurrentSong)) |
