diff options
Diffstat (limited to 'internal/anki/apkg_generator.go')
| -rw-r--r-- | internal/anki/apkg_generator.go | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/internal/anki/apkg_generator.go b/internal/anki/apkg_generator.go index 7f0538e..9707937 100644 --- a/internal/anki/apkg_generator.go +++ b/internal/anki/apkg_generator.go @@ -68,8 +68,16 @@ func (g *APKGGenerator) GenerateAPKG(outputPath string) error { return fmt.Errorf("failed to create database: %w", err) } - // Create the .apkg zip file - if err := g.createZipPackage(tempDir, outputPath); err != nil { + // Create the .apkg zip file with a timestamped name + timestamp := time.Now().Format("2006-01-02-15:04:05") + safeDeckName := strings.ReplaceAll(g.deckName, " ", "_") + safeDeckName = strings.ReplaceAll(safeDeckName, "/", "-") + numberOfCards := len(g.cards) + outputDir := filepath.Dir(outputPath) + finalName := fmt.Sprintf("%s-%s-%d.apkg", safeDeckName, timestamp, numberOfCards) + finalPath := filepath.Join(outputDir, finalName) + + if err := g.createZipPackage(tempDir, finalPath); err != nil { return fmt.Errorf("failed to create zip package: %w", err) } |
