summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--go.mod2
-rw-r--r--main.go21
2 files changed, 15 insertions, 8 deletions
diff --git a/go.mod b/go.mod
index ba8224c..5d6df14 100644
--- a/go.mod
+++ b/go.mod
@@ -1,3 +1,5 @@
module git.kiefte.eu/prayersopml
go 1.16
+
+require modernc.org/sqlite v1.10.8
diff --git a/main.go b/main.go
index 95024ab..623f4cf 100644
--- a/main.go
+++ b/main.go
@@ -5,6 +5,8 @@ import (
_ "modernc.org/sqlite"
"text/template"
+ "os"
+ "strings"
)
var opml = `<?xml version="1.0" encoding="utf-8"?>
@@ -14,11 +16,10 @@ var opml = `<?xml version="1.0" encoding="utf-8"?>
</head>
<body>
<outline text="Prayers">
-{{range .}}
- <outline text="{{with .Phelps}}#{{.}}{{else}}Unmatched prayer{{.ID}}{{end}} #{{.Language}} #{{.Author}}">
- <outline text="{{.Text}}"/>
+{{- range .}}
+ <outline text="{{if .Phelps}}#{{.Phelps}}{{else}}#unmatched {{.ID}}{{end}} #{{.Language}} #{{.Author}}" _note="{{.Text}}">
</outline>
-{{end}}
+{{- end}}
</outline>
</body>
</opml>`
@@ -33,11 +34,13 @@ type Prayer struct{
func main() {
var prayers []Prayer
- db := sql.Open("sqlite", "holywritings.db")
- rows := db.Query("select id, phelps, author, language, text from writings;")
+ db, err := sql.Open("sqlite", "holywritings.db")
+ if err != nil { panic(err) }
+ rows, err := db.Query("select id, author, language, text, phelps from writings;")
+ if err != nil { panic(err) }
for rows.Next() {
var prayer Prayer
- rows.Scan(&prayer.ID, &prayer.Phelps, &prayer.Author, &prayer.Language, &prayer.Text)
+ rows.Scan(&prayer.ID, &prayer.Author, &prayer.Language, &prayer.Text, &prayer.Phelps)
switch prayer.Author {
case "Báb":
prayer.Author = "bab"
@@ -47,9 +50,11 @@ func main() {
prayer.Author = "bahaullah"
}
prayer.Text = template.HTMLEscapeString(prayer.Text)
+ prayer.Text = strings.ReplaceAll(prayer.Text, "\r", "")
+ prayer.Text = strings.ReplaceAll(prayer.Text, "\n", "&#10;")
+ if prayer.Text == "" {println(prayer.ID)}
prayers = append(prayers, prayer)
}
-
tmpl, err := template.New("opml").Parse(opml)
if err != nil { panic(err) }
err = tmpl.Execute(os.Stdout, prayers)