summaryrefslogtreecommitdiff
path: root/internal/gui
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-03-08 08:44:11 +0200
committerPaul Buetow <paul@buetow.org>2026-03-08 08:44:11 +0200
commit6e2635afc69579fdc895d6b7890538ca98dabaae (patch)
tree5db5aa603ab5ac3b372c2ac8512c84627fb063e1 /internal/gui
parentaa733f9a86b02d7b4d6edd8022a44e4ba417b24c (diff)
refactor(task-376): share audio attribution builder
Diffstat (limited to 'internal/gui')
-rw-r--r--internal/gui/generator.go21
1 files changed, 9 insertions, 12 deletions
diff --git a/internal/gui/generator.go b/internal/gui/generator.go
index 14f0f60..09ff534 100644
--- a/internal/gui/generator.go
+++ b/internal/gui/generator.go
@@ -367,20 +367,17 @@ func (a *Application) generateImagesWithPrompt(ctx context.Context, word string,
// saveAudioAttribution saves attribution info for generated audio
func (a *Application) saveAudioAttribution(word, audioFile, voice string, speed float64) error {
- attribution := fmt.Sprintf("Audio generated by OpenAI TTS\n\n")
- attribution += fmt.Sprintf("Bulgarian word: %s\n", word)
- attribution += fmt.Sprintf("Model: %s\n", a.audioConfig.OpenAIModel)
- attribution += fmt.Sprintf("Voice: %s\n", voice)
- attribution += fmt.Sprintf("Speed: %.2f\n", speed)
-
- if a.audioConfig.OpenAIInstruction != "" {
- attribution += fmt.Sprintf("\nVoice instructions:\n%s\n", a.audioConfig.OpenAIInstruction)
- }
-
- attribution += fmt.Sprintf("\nGenerated at: %s\n", time.Now().Format("2006-01-02 15:04:05"))
+ attribution := audio.BuildOpenAIAttribution(audio.AttributionParams{
+ Word: word,
+ Model: a.audioConfig.OpenAIModel,
+ Voice: voice,
+ Speed: speed,
+ Instruction: a.audioConfig.OpenAIInstruction,
+ GeneratedAt: time.Now(),
+ })
// Save to file
- attrPath := strings.TrimSuffix(audioFile, filepath.Ext(audioFile)) + "_attribution.txt"
+ attrPath := audio.AttributionPath(audioFile)
if err := os.WriteFile(attrPath, []byte(attribution), 0644); err != nil {
return fmt.Errorf("failed to write audio attribution file: %w", err)
}