12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- package main
- import (
- "errors"
- "fmt"
- "strings"
- door "git.red-green.com/RedGreen/doorgo"
- )
- var (
- d door.Door
- udb *UserDB
- u *User
- )
- func main() {
- d.Init("Geode")
- defer d.Close()
- udb = &UserDB{}
- err := udb.Open("users.db3")
- if err != nil {
- fmt.Printf("UserDB.Open(filename='users.db3') > %v\r\n", err)
- return
- }
- u = udb.FindUser(d.Config.Handle + "@" + d.Config.BBSID)
- if u != nil {
- d.WriteS(door.ColorTextS("BRI YEL ON BLA") + "Geode" + door.ColorTextS("WHI ON BLA") + " by " + door.ColorTextS("BRI RED ON BLA") + "Apollo" + door.ColorTextS("BRI BLA ON BLA") + "@" + door.ColorTextS("BRI GRE ON BLA") + "21:1/236" + door.Reset + door.CRNL + door.ColorTextS("BRI CYA ON BLA") + fmt.Sprintf("Welcome back %s%s", door.ColorTextS("BRI WHI ON BLA"), u.Name) + door.CRNL)
- d.WaitKey(door.Inactivity)
- } else {
- u = &User{}
- d.WriteS(door.ColorTextS("BRI YEL ON BLA") + "Geode" + door.ColorTextS("WHI ON BLA") + " by " + door.ColorTextS("BRI RED ON BLA") + "Apollo" + door.ColorTextS("BRI BLA ON BLA") + "@" + door.ColorTextS("BRI GRE ON BLA") + "21:1/236" + door.Reset + door.CRNL + door.ColorTextS("BRI CYA ON BLA") + "Welcome new user" + door.CRNL)
- NEW_NAME:
- for {
- d.WriteS(door.GotoS(1, 4) + door.Reset + strings.Repeat(" ", door.Width-1))
- d.WriteS(door.GotoS(1, 3) + door.ColorTextS("BRI YEL ON BLA") + "Your Name: " + door.ColorTextS("BRI WHI ON BLU"))
- name := d.Input(30)
- if len(name) == 0 {
- d.WriteS(door.Reset + door.CRNL + "Goodbye!")
- return
- }
- d.WriteS(door.Reset + door.CRNL + door.ColorTextS("BRI WHI ON BLA") + name + door.ColorTextS("BRI GRE ON BLA") + " ok?" + door.Reset + " ")
- r, _, err := d.WaitKey(door.Inactivity)
- if err != nil {
- if errors.Is(err, door.ErrDisconnected) {
- return
- } else {
- continue NEW_NAME
- }
- }
- if r == 'y' || r == 'Y' {
- u.BBSName = d.Config.BBSID
- u.BBSNick = d.Config.Handle
- u.Name = name
- err = udb.SaveUser(u)
- if err != nil {
- d.WriteS(fmt.Sprintf("%sErr: %v", door.ColorTextS("BRI RED ON BLA"), err) + door.CRNL)
- d.WaitKey(door.Inactivity)
- return
- } else {
- d.WriteS(door.CRNL + door.Reset + "Saved!" + door.CRNL)
- }
- break NEW_NAME
- }
- }
- }
- }
|