to sm2 Next

master
Bel LaPointe 2023-04-07 10:22:49 -06:00
parent 0bf775fbb6
commit 4d73543b17
3 changed files with 7 additions and 29 deletions

View File

@ -25,10 +25,3 @@ users:
uuid1: uuid1:
- {a: uuid0, pass: true} - {a: uuid0, pass: true}
- {a: uuid2, pass: true} - {a: uuid2, pass: true}
cadence:
- 1d
- 3d
- 1w
- 3w
- 1m
- 3m

View File

@ -12,12 +12,3 @@ users:
- hiragana - hiragana
- katakana - katakana
history: {} history: {}
cadence:
- 1h
- 3h
- 1d
- 3d
- 1w
- 3w
- 1m
- 3m

View File

@ -13,7 +13,6 @@ type (
addr string addr string
Knowledge knowledge Knowledge knowledge
Users map[IDU]user Users map[IDU]user
Cadence []duration
} }
knowledge struct { knowledge struct {
Questions map[IDQ]Question Questions map[IDQ]Question
@ -36,7 +35,6 @@ func newYamlDB(p string) (yamlDB, error) {
Answers: map[IDA]Answer{}, Answers: map[IDA]Answer{},
}, },
Users: map[IDU]user{}, Users: map[IDU]user{},
Cadence: []duration{},
} }
if b, err := os.ReadFile(p); err != nil { if b, err := os.ReadFile(p); err != nil {
return yamlDB{}, err return yamlDB{}, err
@ -79,20 +77,16 @@ func (db yamlDB) HistoryOf(user IDU) map[IDQ][]History {
func (db yamlDB) Next(user IDU, q IDQ) time.Time { func (db yamlDB) Next(user IDU, q IDQ) time.Time {
history := db.Users[user].History[q] history := db.Users[user].History[q]
progress := 0 last := db.lastTS(user, q)
log := make([]int, 0, len(history))
for i := range history { for i := range history {
v := 0
if history[i].Pass { if history[i].Pass {
progress += 1 v = 5
} else {
progress -= 1
} }
log = append(log, v)
} }
if progress < 0 { return Next(last, log)
progress = 0
} else if progress > len(db.Cadence) {
return time.Now().Add(time.Hour * 24 * 365 * 10)
}
return db.lastTS(user, q).Add(time.Duration(db.Cadence[progress]))
} }
func (db yamlDB) Question(q IDQ) Question { func (db yamlDB) Question(q IDQ) Question {