aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoop Kiefte <ikojba@gmail.com>2020-09-29 23:46:50 +0200
committerJoop Kiefte <ikojba@gmail.com>2020-09-29 23:46:50 +0200
commiteb7108d91db786ebda22a8b3fcc6fa6c038d3318 (patch)
tree39f108698443f98619040ecc362d13bd776363db
Initial commit
-rw-r--r--README.md3
-rw-r--r--main.go40
2 files changed, 43 insertions, 0 deletions
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))])
+}