From e580fb57a29ec3c3f3e180b20cfa6ec28687689b Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sun, 20 Jul 2025 22:18:57 +0300 Subject: Refactor main.go into focused packages - Reduced main.go from 961 lines to 89 lines (91% reduction) - Created new packages for better separation of concerns: - cli: Command-line interface setup and configuration - processor: Core word processing logic and orchestration - batch: Batch file processing functionality - translation: Bulgarian to English translation services - models: OpenAI model listing functionality - phonetic: Phonetic information fetching - Each package has clear documentation in doc.go files - Improved testability and maintainability - All existing functionality preserved - All tests passing and build successful --- internal/cli/flags.go | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 internal/cli/flags.go (limited to 'internal/cli/flags.go') diff --git a/internal/cli/flags.go b/internal/cli/flags.go new file mode 100644 index 0000000..64575a0 --- /dev/null +++ b/internal/cli/flags.go @@ -0,0 +1,46 @@ +package cli + +// Flags holds all command-line flag values +type Flags struct { + // General flags + CfgFile string + OutputDir string + AudioFormat string + ImageAPI string + BatchFile string + SkipAudio bool + SkipImages bool + GenerateAnki bool + AnkiCSV bool + DeckName string + ListModels bool + AllVoices bool + GUIMode bool + + // OpenAI flags + OpenAIModel string + OpenAIVoice string + OpenAISpeed float64 + OpenAIInstruction string + + // OpenAI Image flags + OpenAIImageModel string + OpenAIImageSize string + OpenAIImageQuality string + OpenAIImageStyle string +} + +// NewFlags creates a new Flags instance with default values +func NewFlags() *Flags { + return &Flags{ + AudioFormat: "mp3", + ImageAPI: "openai", + DeckName: "Bulgarian Vocabulary", + OpenAIModel: "gpt-4o-mini-tts", + OpenAISpeed: 0.9, + OpenAIImageModel: "dall-e-3", + OpenAIImageSize: "1024x1024", + OpenAIImageQuality: "standard", + OpenAIImageStyle: "natural", + } +} -- cgit v1.2.3