all repos

anpi @ 5b7a287

yaml to anki importer

anpi/main.go (view raw)

Oleksandr Smirnov Oleksandr Smirnov
olexsmir@gmail.com
implement parser, 1 year ago
1
package main
2
3
import (
4
	"fmt"
5
	"log/slog"
6
	"os"
7
8
	"github.com/olexsmir/anpi/anki"
9
	"github.com/olexsmir/anpi/parser"
10
)
11
12
func main() {
13
	anki := anki.NewAnkiClient()
14
15
	decks, err := anki.GetDeckNames()
16
	slog.Info("test deck names", "fields", decks, "err", err)
17
18
	fields, err := anki.GetModelFieldNames("Basic")
19
	slog.Info("test existent type", "fields", fields, "err", err)
20
21
	fieldsErr, err := anki.GetModelFieldNames("chicked jokey")
22
	slog.Info("test non-existent type", "fields", fieldsErr, "err", err)
23
24
	f, _ := os.ReadFile("test.yml")
25
	data, err := parser.Parse(f)
26
	slog.Info("parsing data", "err", err)
27
28
	for _, deck := range data {
29
		fmt.Printf("\nDeck: %s\n", deck.Deck)
30
		fmt.Printf("Type: %s\n", deck.Type)
31
		fmt.Printf("Global Tags: %v\n", deck.Tags)
32
		fmt.Println("Fields mapping:")
33
		for internalName, anki := range deck.Fields {
34
			fmt.Printf("  %s -> %s\n", internalName, anki)
35
		}
36
37
		fmt.Println("Notes:")
38
		for _, note := range deck.Notes {
39
			fmt.Println("  Note fields:")
40
			for internalName, value := range note.Fields {
41
				fmt.Printf("    %s: %s\n", internalName, value)
42
			}
43
			if len(note.Tags) > 0 {
44
				fmt.Printf("    Local Tags: %v\n", note.Tags)
45
			}
46
		}
47
	}
48
}