Skip to content

Commit 94caf7a

Browse files
committed
Add ToJSONReader, ToRSSReader and ToAtomReader
1 parent 9c7b301 commit 94caf7a

File tree

2 files changed

+47
-5
lines changed

2 files changed

+47
-5
lines changed

Diff for: README.md

+14-4
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,12 @@ go get -u github.com/p1ass/feeder
1111

1212
### Examples
1313
```go
14-
import "github.com/p1ass/feeder"
14+
package main
15+
16+
import (
17+
"github.com/p1ass/feeder"
18+
"time"
19+
)
1520

1621
func crawl(){
1722
rss1 := feeder.NewRSSCrawler("https://example.com/rss1")
@@ -30,9 +35,14 @@ func crawl(){
3035
Items: items,
3136
}
3237

33-
json, err := feed.ToJSON() // json is a `string`
34-
rss, err := feed.ToRSS() // rss is a `string`
35-
atom, err := feed.ToAtom() // atom is a `string`
38+
json, err := feed.ToJSON() // json is string
39+
rss, err := feed.ToRSS() // rss is string
40+
atom, err := feed.ToAtom() // atom is string
41+
42+
jsonReader, err := feed.ToJSONReader() // jsonReader is a io.Reader
43+
rssReader, err := feed.ToRSSReader() // jsonReader is a io.Reader
44+
atomReader, err := feed.ToAtomReader() // jsonReader is a io.Reader
45+
3646
}
3747

3848
```

Diff for: generator.go

+33-1
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,54 @@
11
package feeder
22

3-
import "github.com/p1ass/feeds"
3+
import (
4+
"io"
5+
"strings"
6+
7+
"github.com/p1ass/feeds"
8+
)
49

510
// ToRSS generates RSS feed
611
func (f *Feed) ToRSS() (string, error) {
712
return f.convert().ToRss()
813
}
914

15+
// ToRSSReader generates RSS feed and return io.Reader.
16+
func (f *Feed) ToRSSReader() (io.Reader, error) {
17+
rss, err := f.convert().ToRss()
18+
if err != nil {
19+
return nil, err
20+
}
21+
return strings.NewReader(rss), nil
22+
}
23+
1024
// ToAtom generates Atom feed
1125
func (f *Feed) ToAtom() (string, error) {
1226
return f.convert().ToAtom()
1327
}
1428

29+
// ToAtomReader generates Atom feed and return io.Reader.
30+
func (f *Feed) ToAtomReader() (io.Reader, error) {
31+
atom, err := f.convert().ToAtom()
32+
if err != nil {
33+
return nil, err
34+
}
35+
return strings.NewReader(atom), nil
36+
}
37+
1538
// ToJSON generates JSON feed
1639
func (f *Feed) ToJSON() (string, error) {
1740
return f.convert().ToJSON()
1841
}
1942

43+
// ToJSONReader generates JSON feed and return io.Reader.
44+
func (f *Feed) ToJSONReader() (io.Reader, error) {
45+
json, err := f.convert().ToJSON()
46+
if err != nil {
47+
return nil, err
48+
}
49+
return strings.NewReader(json), nil
50+
}
51+
2052
func (l *Link) convert() *feeds.Link {
2153
return &feeds.Link{
2254
l.Href,

0 commit comments

Comments
 (0)