diff --git a/main.go b/main.go index 20224c5..3360d51 100644 --- a/main.go +++ b/main.go @@ -8,8 +8,6 @@ import ( "os" "strings" "time" - - "gopkg.in/yaml.v2" ) type ( @@ -54,6 +52,17 @@ func Main() error { } defer db.Close() user := IDU(os.Getenv("USER")) + failed, err := Review(db, user) + if err != nil { + return err + } + log.Printf("failed %v", failed) + return nil +} + +func Review(db DB, user IDU) ([]IDQ, error) { + failed := []IDQ{} + for q, _ := range db.HistoryOf(user) { if time.Until(db.Next(user, q)) > 0 { continue @@ -85,23 +94,22 @@ func Main() error { fmt.Printf("> Last time, you responded:\n\t%s\n", lastAnswer.A) } fmt.Printf("> Did you pass this time? [Yns]\n") - switch readline() { + passed := readline() + switch passed { case "s": case "n": + failed = append(failed, q) if err := db.PushAnswer(user, q, Renderable(response), false); err != nil { - return err + return nil, err } default: if err := db.PushAnswer(user, q, Renderable(response), true); err != nil { - return err + return nil, err } } fmt.Println() } - if b, _ := yaml.Marshal(db); len(b) > 0 { - log.Printf("%s\n", b) - } - return nil + return failed, nil } func readline() string {