aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/gorilla/feeds/atom.go
diff options
context:
space:
mode:
authorChristine Dodrill <me@christine.website>2018-10-19 06:58:02 -0700
committerChristine Dodrill <me@christine.website>2018-10-19 06:58:35 -0700
commitd2ff4407993e4511e0225c12964bc07cd8d02be6 (patch)
tree1ca621c635b568054bf8808306cf4b6baa9cfedf /vendor/github.com/gorilla/feeds/atom.go
parentf363c7e7eb6ca43e92624365ceab66a78d99b376 (diff)
downloadxesite-d2ff4407993e4511e0225c12964bc07cd8d02be6.tar.xz
xesite-d2ff4407993e4511e0225c12964bc07cd8d02be6.zip
use GOPROXY
Diffstat (limited to 'vendor/github.com/gorilla/feeds/atom.go')
-rw-r--r--vendor/github.com/gorilla/feeds/atom.go164
1 files changed, 0 insertions, 164 deletions
diff --git a/vendor/github.com/gorilla/feeds/atom.go b/vendor/github.com/gorilla/feeds/atom.go
deleted file mode 100644
index 6b0ddcb..0000000
--- a/vendor/github.com/gorilla/feeds/atom.go
+++ /dev/null
@@ -1,164 +0,0 @@
-package feeds
-
-import (
- "encoding/xml"
- "fmt"
- "net/url"
- "time"
-)
-
-// Generates Atom feed as XML
-
-const ns = "http://www.w3.org/2005/Atom"
-
-type AtomPerson struct {
- Name string `xml:"name,omitempty"`
- Uri string `xml:"uri,omitempty"`
- Email string `xml:"email,omitempty"`
-}
-
-type AtomSummary struct {
- XMLName xml.Name `xml:"summary"`
- Content string `xml:",chardata"`
- Type string `xml:"type,attr"`
-}
-
-type AtomContent struct {
- XMLName xml.Name `xml:"content"`
- Content string `xml:",chardata"`
- Type string `xml:"type,attr"`
-}
-
-type AtomAuthor struct {
- XMLName xml.Name `xml:"author"`
- AtomPerson
-}
-
-type AtomContributor struct {
- XMLName xml.Name `xml:"contributor"`
- AtomPerson
-}
-
-type AtomEntry struct {
- XMLName xml.Name `xml:"entry"`
- Xmlns string `xml:"xmlns,attr,omitempty"`
- Title string `xml:"title"` // required
- Updated string `xml:"updated"` // required
- Id string `xml:"id"` // required
- Category string `xml:"category,omitempty"`
- Content *AtomContent
- Rights string `xml:"rights,omitempty"`
- Source string `xml:"source,omitempty"`
- Published string `xml:"published,omitempty"`
- Contributor *AtomContributor
- Links []AtomLink // required if no child 'content' elements
- Summary *AtomSummary // required if content has src or content is base64
- Author *AtomAuthor // required if feed lacks an author
-}
-
-// Multiple links with different rel can coexist
-type AtomLink struct {
- //Atom 1.0 <link rel="enclosure" type="audio/mpeg" title="MP3" href="http://www.example.org/myaudiofile.mp3" length="1234" />
- XMLName xml.Name `xml:"link"`
- Href string `xml:"href,attr"`
- Rel string `xml:"rel,attr,omitempty"`
- Type string `xml:"type,attr,omitempty"`
- Length string `xml:"length,attr,omitempty"`
-}
-
-type AtomFeed struct {
- XMLName xml.Name `xml:"feed"`
- Xmlns string `xml:"xmlns,attr"`
- Title string `xml:"title"` // required
- Id string `xml:"id"` // required
- Updated string `xml:"updated"` // required
- Category string `xml:"category,omitempty"`
- Icon string `xml:"icon,omitempty"`
- Logo string `xml:"logo,omitempty"`
- Rights string `xml:"rights,omitempty"` // copyright used
- Subtitle string `xml:"subtitle,omitempty"`
- Link *AtomLink
- Author *AtomAuthor `xml:"author,omitempty"`
- Contributor *AtomContributor
- Entries []*AtomEntry
-}
-
-type Atom struct {
- *Feed
-}
-
-func newAtomEntry(i *Item) *AtomEntry {
- id := i.Id
- // assume the description is html
- c := &AtomContent{Content: i.Description, Type: "html"}
-
- if len(id) == 0 {
- // if there's no id set, try to create one, either from data or just a uuid
- if len(i.Link.Href) > 0 && (!i.Created.IsZero() || !i.Updated.IsZero()) {
- dateStr := anyTimeFormat("2006-01-02", i.Updated, i.Created)
- host, path := i.Link.Href, "/invalid.html"
- if url, err := url.Parse(i.Link.Href); err == nil {
- host, path = url.Host, url.Path
- }
- id = fmt.Sprintf("tag:%s,%s:%s", host, dateStr, path)
- } else {
- id = "urn:uuid:" + NewUUID().String()
- }
- }
- var name, email string
- if i.Author != nil {
- name, email = i.Author.Name, i.Author.Email
- }
-
- link_rel := i.Link.Rel
- if link_rel == "" {
- link_rel = "alternate"
- }
- x := &AtomEntry{
- Title: i.Title,
- Links: []AtomLink{{Href: i.Link.Href, Rel: link_rel, Type: i.Link.Type}},
- Content: c,
- Id: id,
- Updated: anyTimeFormat(time.RFC3339, i.Updated, i.Created),
- }
-
- if i.Enclosure != nil && link_rel != "enclosure" {
- x.Links = append(x.Links, AtomLink{Href: i.Enclosure.Url, Rel: "enclosure", Type: i.Enclosure.Type, Length: i.Enclosure.Length})
- }
-
- if len(name) > 0 || len(email) > 0 {
- x.Author = &AtomAuthor{AtomPerson: AtomPerson{Name: name, Email: email}}
- }
- return x
-}
-
-// create a new AtomFeed with a generic Feed struct's data
-func (a *Atom) AtomFeed() *AtomFeed {
- updated := anyTimeFormat(time.RFC3339, a.Updated, a.Created)
- feed := &AtomFeed{
- Xmlns: ns,
- Title: a.Title,
- Link: &AtomLink{Href: a.Link.Href, Rel: a.Link.Rel},
- Subtitle: a.Description,
- Id: a.Link.Href,
- Updated: updated,
- Rights: a.Copyright,
- }
- if a.Author != nil {
- feed.Author = &AtomAuthor{AtomPerson: AtomPerson{Name: a.Author.Name, Email: a.Author.Email}}
- }
- for _, e := range a.Items {
- feed.Entries = append(feed.Entries, newAtomEntry(e))
- }
- return feed
-}
-
-// return an XML-Ready object for an Atom object
-func (a *Atom) FeedXml() interface{} {
- return a.AtomFeed()
-}
-
-// return an XML-ready object for an AtomFeed object
-func (a *AtomFeed) FeedXml() interface{} {
- return a
-}