CMDs including QUIT to vars
parent
a46ebc90e7
commit
0db716e080
42
main.go
42
main.go
|
|
@ -38,6 +38,13 @@ type (
|
||||||
Renderable string
|
Renderable string
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
CMD_PASS = "y"
|
||||||
|
CMD_FAIL = "n"
|
||||||
|
CMD_SKIP = "s"
|
||||||
|
CMD_QUIT = "q"
|
||||||
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
if err := Main(); err != nil {
|
if err := Main(); err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
|
|
@ -59,7 +66,9 @@ func Main() error {
|
||||||
for i := len(failed) - 1; i >= 0; i-- {
|
for i := len(failed) - 1; i >= 0; i-- {
|
||||||
if _, passed, err := ReviewQ(db, user, failed[i]); err != nil {
|
if _, passed, err := ReviewQ(db, user, failed[i]); err != nil {
|
||||||
return err
|
return err
|
||||||
} else if passed != "n" {
|
} else if passed == CMD_PASS {
|
||||||
|
return nil
|
||||||
|
} else if passed != CMD_FAIL {
|
||||||
failed = append(failed[:i], failed[i+1:]...)
|
failed = append(failed[:i], failed[i+1:]...)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -79,12 +88,14 @@ func Review(db DB, user IDU) ([]IDQ, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
switch passed {
|
switch passed {
|
||||||
case "n":
|
case CMD_QUIT:
|
||||||
|
return nil, nil
|
||||||
|
case CMD_FAIL:
|
||||||
failed = append(failed, q)
|
failed = append(failed, q)
|
||||||
if err := db.PushAnswer(user, q, Renderable(response), false); err != nil {
|
if err := db.PushAnswer(user, q, Renderable(response), false); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
case "y":
|
case CMD_PASS:
|
||||||
if err := db.PushAnswer(user, q, Renderable(response), true); err != nil {
|
if err := db.PushAnswer(user, q, Renderable(response), true); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
@ -105,7 +116,9 @@ func ReviewQ(db DB, user IDU, q IDQ) (string, string, error) {
|
||||||
fmt.Printf("> /clue for a clue\n")
|
fmt.Printf("> /clue for a clue\n")
|
||||||
}
|
}
|
||||||
response = readline()
|
response = readline()
|
||||||
if response != "/clue" {
|
switch response {
|
||||||
|
case "/clue":
|
||||||
|
default:
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
fmt.Printf("> %s", question.Clues[i])
|
fmt.Printf("> %s", question.Clues[i])
|
||||||
|
|
@ -121,14 +134,21 @@ func ReviewQ(db DB, user IDU, q IDQ) (string, string, error) {
|
||||||
} else if lastAnswer := db.Answer(id); lastAnswer.A != "" {
|
} else if lastAnswer := db.Answer(id); lastAnswer.A != "" {
|
||||||
fmt.Printf("> Last time, you responded:\n\t%s\n", lastAnswer.A)
|
fmt.Printf("> Last time, you responded:\n\t%s\n", lastAnswer.A)
|
||||||
}
|
}
|
||||||
fmt.Printf("> Did you pass this time? [Yns]\n")
|
fmt.Printf("> Did you pass this time? [%s%s%s%s]\n",
|
||||||
switch readline() {
|
strings.ToUpper(CMD_PASS),
|
||||||
case "s":
|
strings.ToLower(CMD_FAIL),
|
||||||
return response, "s", nil
|
strings.ToLower(CMD_SKIP),
|
||||||
case "n":
|
strings.ToLower(CMD_QUIT),
|
||||||
return response, "n", nil
|
)
|
||||||
|
switch strings.ToLower(readline()) {
|
||||||
|
case CMD_SKIP:
|
||||||
|
return response, CMD_SKIP, nil
|
||||||
|
case CMD_FAIL:
|
||||||
|
return response, CMD_FAIL, nil
|
||||||
|
case CMD_QUIT:
|
||||||
|
return response, CMD_QUIT, nil
|
||||||
}
|
}
|
||||||
return response, "y", nil
|
return response, CMD_PASS, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func readline() string {
|
func readline() string {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue