Add serializing RSS items and change NewFeed to New
This commit is contained in:
17
rss/item.go
17
rss/item.go
@@ -1,6 +1,8 @@
|
||||
package rss
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/gob"
|
||||
"fmt"
|
||||
"html"
|
||||
"io/ioutil"
|
||||
@@ -32,6 +34,21 @@ func (item *Item) ID() string {
|
||||
return strings.Join(regexp.MustCompile("[a-zA-Z0-9]*").FindAllString(item.Link, -1), "_")
|
||||
}
|
||||
|
||||
func DeserializeItem(src []byte) (*Item, error) {
|
||||
buffer := bytes.NewBuffer(src)
|
||||
dec := gob.NewDecoder(buffer)
|
||||
var dst Item
|
||||
err := dec.Decode(&dst)
|
||||
return &dst, err
|
||||
}
|
||||
|
||||
func (item *Item) Serialize() ([]byte, error) {
|
||||
var buffer bytes.Buffer
|
||||
enc := gob.NewEncoder(&buffer)
|
||||
err := enc.Encode(item)
|
||||
return buffer.Bytes(), err
|
||||
}
|
||||
|
||||
func fromGofeedItem(gfitem *gofeed.Item, filter string) *Item {
|
||||
item := &Item{
|
||||
Name: gfitem.Title,
|
||||
|
||||
Reference in New Issue
Block a user