From eb7108d91db786ebda22a8b3fcc6fa6c038d3318 Mon Sep 17 00:00:00 2001 From: Joop Kiefte Date: Tue, 29 Sep 2020 23:46:50 +0200 Subject: Initial commit --- README.md | 3 +++ main.go | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 README.md create mode 100644 main.go diff --git a/README.md b/README.md new file mode 100644 index 0000000..4cd549f --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# Bahá'í message of the day tool + +Early stage. The database needed can be found at prayers.kiefte.eu diff --git a/main.go b/main.go new file mode 100644 index 0000000..a3420c6 --- /dev/null +++ b/main.go @@ -0,0 +1,40 @@ +package main + +import ( + "database/sql" + "fmt" + "time" + "math/rand" + "os" + + _ "modernc.org/sqlite" +) + +func main() { + rand.Seed(time.Now().UnixNano()) + db, err := sql.Open("sqlite", "prayers.db") + if err != nil { + fmt.Println("put prayers.db alongside the binary: "+ err.Error()) + os.Exit(1) + } + langcode := "en" + if len(os.Args) > 1 { + langcode = os.Args[1] + } + rows, err := db.Query("select text, author from prayers where language = ?", langcode) + if err != nil { + fmt.Println("database query failed: " +err.Error()) + os.Exit(2) + } + var prayers []string + for rows.Next() { + var prayer, author string + rows.Scan(&prayer, &author) + prayers = append(prayers, prayer+"\n\n-- "+author) + } + if len(prayers) < 1 { + fmt.Println("query returns no prayers") + os.Exit(3) + } + fmt.Println(prayers[rand.Intn(len(prayers))]) +} -- cgit v1.2.3-70-g09d2