From 264e1d8a8219fa786539c52911b6811db41a28e2 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Sun, 4 May 2025 23:33:20 +0300 Subject: [PATCH] Altered schema without uppercase keys --- example.rec | 20 ++++++++++---------- main.go | 26 +++++++++++++------------- opml.go | 8 ++++---- xbel.go | 4 ++-- 4 files changed, 29 insertions(+), 29 deletions(-) diff --git a/example.rec b/example.rec index ae4d177..916103f 100644 --- a/example.rec +++ b/example.rec @@ -1,11 +1,11 @@ -%rec: Bookmark -%mandatory: Title URL -%allowed: Category Feed Note -%unique: Title URL Note +%rec: bookmark +%mandatory: title url +%allowed: cat feed note +%unique: title url note -Title: Блог Stargrave -URL: http://blog.stargrave.org/ -Category: IT -Category: Russian -Feed: http://blog.stargrave.org/russian/feed.atom -Feed: http://blog.stargrave.org/english/feed.atom +title: Блог Stargrave +url: http://blog.stargrave.org/ +cat: IT +cat: Russian +feed: http://blog.stargrave.org/russian/feed.atom +feed: http://blog.stargrave.org/english/feed.atom diff --git a/main.go b/main.go index 7b569d4..202d170 100644 --- a/main.go +++ b/main.go @@ -32,7 +32,7 @@ type ByTitle []map[string][]string func (a ByTitle) Len() int { return len(a) } func (a ByTitle) Swap(i, j int) { a[i], a[j] = a[j], a[i] } func (a ByTitle) Less(i, j int) bool { - return strings.Compare(a[i]["Title"][0], a[j]["Title"][0]) < 0 + return strings.Compare(a[i]["title"][0], a[j]["title"][0]) < 0 } func main() { @@ -55,9 +55,9 @@ func main() { if m["%rec"] != nil { continue } - sort.Strings(m["Category"]) - cats := strings.Join(m["Category"], " ") - for _, f := range m["Feed"] { + sort.Strings(m["cat"]) + cats := strings.Join(m["cat"], " ") + for _, f := range m["feed"] { if strings.HasPrefix(f, "gemini://") { f = "https://gemini/" + f } @@ -80,7 +80,7 @@ func main() { if m["%rec"] != nil { continue } - sort.Strings(m["Category"]) + sort.Strings(m["cat"]) data = append(data, m) } sort.Sort(ByTitle(data)) @@ -100,8 +100,8 @@ func main() { if m["%rec"] != nil { continue } - sort.Strings(m["Category"]) - if cs := m["Category"]; len(cs) == 0 { + sort.Strings(m["cat"]) + if cs := m["cat"]; len(cs) == 0 { data["Uncategorized"] = append(data["Uncategorized"], m) } else { for _, cat := range cs { @@ -138,24 +138,24 @@ func main() { ents := data[cat] for n, ent := range ents { catsOther := make([]string, 0) - for _, c := range ent["Category"] { + for _, c := range ent["cat"] { if c != cat { catsOther = append(catsOther, c) } } var note string - if len(ent["Note"]) > 0 { - note = "(" + strings.Trim(ent["Note"][0], " \n") + ")" + if len(ent["note"]) > 0 { + note = "(" + strings.Trim(ent["note"][0], " \n") + ")" } fmt.Printf( " @item %d @tab @url{%s,, %s} %s @tab %s @tab\n", n, - strings.ReplaceAll(ent["URL"][0], "@", "@@"), - strings.ReplaceAll(ent["Title"][0], "@", "@@"), + strings.ReplaceAll(ent["url"][0], "@", "@@"), + strings.ReplaceAll(ent["title"][0], "@", "@@"), note, strings.Join(catsOther, ", "), ) - switch feeds := ent["Feed"]; len(feeds) { + switch feeds := ent["feed"]; len(feeds) { case 0: fmt.Printf(" @emph{STATIC}\n") case 1: diff --git a/opml.go b/opml.go index 64a2950..a1a71d7 100644 --- a/opml.go +++ b/opml.go @@ -39,13 +39,13 @@ type OPML struct { func opml(data []map[string][]string) { outlines := make([]Outline, 0, len(data)) for _, ent := range data { - for _, feed := range ent["Feed"] { + for _, feed := range ent["feed"] { outlines = append(outlines, Outline{ Type: "rss", - Text: ent["Title"][0], - HtmlUrl: ent["URL"][0], + Text: ent["title"][0], + HtmlUrl: ent["url"][0], XmlUrl: feed, - Category: strings.Join(ent["Category"], ","), + Category: strings.Join(ent["cat"], ","), }) } } diff --git a/xbel.go b/xbel.go index e00b250..9b46a17 100644 --- a/xbel.go +++ b/xbel.go @@ -52,8 +52,8 @@ func xbel(cats []string, data map[string][]map[string][]string) { ents := data[cat] bs := make([]Bookmark, 0, len(ents)) for _, ent := range ents { - b := Bookmark{Href: ent["URL"][0], Title: ent["Title"][0]} - for _, url := range ent["Feed"] { + b := Bookmark{Href: ent["url"][0], Title: ent["title"][0]} + for _, url := range ent["feed"] { b.Feeds = append(b.Feeds, Feed{Owner: "webfeed", Link: Link{url}}) } bs = append(bs, b) -- 2.48.1