Skip to content

Commit

Permalink
Add ToJSONReader, ToRSSReader and ToAtomReader
Browse files Browse the repository at this point in the history
  • Loading branch information
p1ass committed Aug 4, 2020
1 parent 9c7b301 commit 94caf7a
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 5 deletions.
18 changes: 14 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,12 @@ go get -u github.com/p1ass/feeder

### Examples
```go
import "github.com/p1ass/feeder"
package main

import (
"github.com/p1ass/feeder"
"time"
)

func crawl(){
rss1 := feeder.NewRSSCrawler("https://example.com/rss1")
Expand All @@ -30,9 +35,14 @@ func crawl(){
Items: items,
}

json, err := feed.ToJSON() // json is a `string`
rss, err := feed.ToRSS() // rss is a `string`
atom, err := feed.ToAtom() // atom is a `string`
json, err := feed.ToJSON() // json is string
rss, err := feed.ToRSS() // rss is string
atom, err := feed.ToAtom() // atom is string

jsonReader, err := feed.ToJSONReader() // jsonReader is a io.Reader
rssReader, err := feed.ToRSSReader() // jsonReader is a io.Reader
atomReader, err := feed.ToAtomReader() // jsonReader is a io.Reader

}

```
Expand Down
34 changes: 33 additions & 1 deletion generator.go
Original file line number Diff line number Diff line change
@@ -1,22 +1,54 @@
package feeder

import "github.com/p1ass/feeds"
import (
"io"
"strings"

"github.com/p1ass/feeds"
)

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

// ToRSSReader generates RSS feed and return io.Reader.
func (f *Feed) ToRSSReader() (io.Reader, error) {
rss, err := f.convert().ToRss()
if err != nil {
return nil, err
}
return strings.NewReader(rss), nil
}

// ToAtom generates Atom feed
func (f *Feed) ToAtom() (string, error) {
return f.convert().ToAtom()
}

// ToAtomReader generates Atom feed and return io.Reader.
func (f *Feed) ToAtomReader() (io.Reader, error) {
atom, err := f.convert().ToAtom()
if err != nil {
return nil, err
}
return strings.NewReader(atom), nil
}

// ToJSON generates JSON feed
func (f *Feed) ToJSON() (string, error) {
return f.convert().ToJSON()
}

// ToJSONReader generates JSON feed and return io.Reader.
func (f *Feed) ToJSONReader() (io.Reader, error) {
json, err := f.convert().ToJSON()
if err != nil {
return nil, err
}
return strings.NewReader(json), nil
}

func (l *Link) convert() *feeds.Link {
return &feeds.Link{
l.Href,
Expand Down

0 comments on commit 94caf7a

Please sign in to comment.