-
Notifications
You must be signed in to change notification settings - Fork 0
/
anki_operator.go
43 lines (38 loc) · 1.33 KB
/
anki_operator.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package domain
import "fmt"
type OperatorGenerate struct {
gpter GPTer
textToSpeecher TextToSpeecher
ankier Ankier
}
func NewOperatorGenerate(gpter GPTer, textToSpeecher TextToSpeecher, ankier Ankier) OperatorGenerator {
return &OperatorGenerate{gpter: gpter, textToSpeecher: textToSpeecher, ankier: ankier}
}
func (g *OperatorGenerate) GetByNote(note AnkiNote, rememberVocabularyList []string) (o Operator, err error) {
switch note.ModelName {
case "Japanese (recognition&recall) 動詞篇":
o = &VerbOperator{
Note: note,
gpter: g.gpter,
textToSpeecher: g.textToSpeecher,
ankier: g.ankier,
rememberVocabularyList: rememberVocabularyList,
}
case "Japanese (recognition&recall) 形容詞":
o = &AdjOperator{
Note: note,
gpter: g.gpter,
textToSpeecher: g.textToSpeecher,
ankier: g.ankier,
rememberVocabularyList: rememberVocabularyList,
}
case "Japanese (recognition&recall)":
o = NewNormalOperator(note, g.gpter, g.textToSpeecher, g.ankier, rememberVocabularyList)
default:
err = fmt.Errorf("don't support for this modelType: %s", note.ModelName)
}
return
}
type OperatorGenerator interface {
GetByNote(note AnkiNote, rememberVoculary []string) (o Operator, err error)
}