This commit is contained in:
Nazar Kanaev 2021-03-19 00:06:48 +00:00
parent 391ce61362
commit 9f376db0f4
24 changed files with 65 additions and 67 deletions

View file

@ -1,9 +1,9 @@
package opml
import (
"strings"
"html"
"fmt"
"html"
"strings"
)
type Folder struct {
@ -36,7 +36,7 @@ func (f Folder) outline(level int) string {
prefix := strings.Repeat(indent, level)
if level > 0 {
builder.WriteString(prefix + fmt.Sprintf(`<outline text="%s">` + nl, e(f.Title)))
builder.WriteString(prefix + fmt.Sprintf(`<outline text="%s">`+nl, e(f.Title)))
}
for _, folder := range f.Folders {
builder.WriteString(folder.outline(level + 1))
@ -52,7 +52,7 @@ func (f Folder) outline(level int) string {
func (f Feed) outline(level int) string {
return strings.Repeat(indent, level) + fmt.Sprintf(
`<outline type="rss" text="%s" xmlUrl="%s" htmlUrl="%s"/>` + nl,
`<outline type="rss" text="%s" xmlUrl="%s" htmlUrl="%s"/>`+nl,
e(f.Title), e(f.FeedUrl), e(f.SiteUrl),
)
}

View file

@ -5,28 +5,27 @@ import (
"testing"
)
func TestOPML(t *testing.T) {
have := (Folder{
Title: "",
Feeds: []Feed{
Feed{
Title: "title1",
{
Title: "title1",
FeedUrl: "https://baz.com/feed.xml",
SiteUrl: "https://baz.com/",
},
},
Folders: []Folder{
Folder{
{
Title: "sub",
Feeds: []Feed{
Feed{
Title: "subtitle1",
{
Title: "subtitle1",
FeedUrl: "https://foo.com/feed.xml",
SiteUrl: "https://foo.com/",
},
Feed{
Title: "&>",
{
Title: "&>",
FeedUrl: "https://bar.com/feed.xml",
SiteUrl: "https://bar.com/",
},

View file

@ -11,11 +11,11 @@ type opml struct {
}
type outline struct {
Type string `xml:"type,attr,omitempty"`
Title string `xml:"text,attr"`
FeedUrl string `xml:"xmlUrl,attr,omitempty"`
SiteUrl string `xml:"htmlUrl,attr,omitempty"`
Outlines []outline `xml:"outline,omitempty"`
Type string `xml:"type,attr,omitempty"`
Title string `xml:"text,attr"`
FeedUrl string `xml:"xmlUrl,attr,omitempty"`
SiteUrl string `xml:"htmlUrl,attr,omitempty"`
Outlines []outline `xml:"outline,omitempty"`
}
func buildFolder(title string, outlines []outline) Folder {

View file

@ -6,7 +6,6 @@ import (
"testing"
)
func TestParse(t *testing.T) {
have, _ := Parse(strings.NewReader(`
<?xml version="1.0" encoding="UTF-8"?>
@ -27,30 +26,30 @@ func TestParse(t *testing.T) {
want := Folder{
Title: "",
Feeds: []Feed{
Feed{
Title: "title1",
{
Title: "title1",
FeedUrl: "https://baz.com/feed.xml",
SiteUrl: "https://baz.com/",
},
},
Folders: []Folder{
Folder{
{
Title: "sub",
Feeds: []Feed{
Feed{
Title: "subtitle1",
{
Title: "subtitle1",
FeedUrl: "https://foo.com/feed.xml",
SiteUrl: "https://foo.com/",
},
Feed{
Title: "&>",
{
Title: "&>",
FeedUrl: "https://bar.com/feed.xml",
SiteUrl: "https://bar.com/",
},
},
},
},
}
}
if !reflect.DeepEqual(want, have) {
t.Logf("want: %#v", want)
t.Logf("have: %#v", have)