]> Sergey Matveev's repositories - linksexp.git/commitdiff
Altered schema without uppercase keys
authorSergey Matveev <stargrave@stargrave.org>
Sun, 4 May 2025 20:33:20 +0000 (23:33 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Sun, 4 May 2025 20:33:20 +0000 (23:33 +0300)
example.rec
main.go
opml.go
xbel.go

index ae4d177d8f488dfd14cb486154e34f411ca4b921..916103fbce4557ad32f8f1de3923cd93c7645ac1 100644 (file)
@@ -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 7b569d4afabc6a4bf7a64eaa8b3868bfb27b519b..202d170698c676ccbcd616dd5f67dfcb8519ca8f 100644 (file)
--- 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 64a295066acf191b3b981c71264274dcc14911d9..a1a71d7fdb32a02e5100118b44b36124071b86ad 100644 (file)
--- 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 e00b25028c189e5cbe7808e17dad1516d20c77f6..9b46a1744e30d25dacc2b3a4e685797e0722dd21 100644 (file)
--- 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)