From 9123b6bc67fb241a4e629872c90a0de6c71386ab Mon Sep 17 00:00:00 2001 From: Matthew Dawson Date: Sun, 7 Jul 2013 11:55:10 -0400 Subject: [PATCH] Remove the haveItem check for RSS and Atom The haveItem check for RSS and Atom causes the feeds to act unexpectedly. For RSS, the checked tags don't necessarily have to be unique. For atom, it is allowed to have duplicate items (including duplicated ids) in one feed, so this shouldn't be stopped either. --- atom.go | 24 ------------------------ rss.go | 25 ------------------------- 2 files changed, 49 deletions(-) diff --git a/atom.go b/atom.go index a07430c..208e54a 100644 --- a/atom.go +++ b/atom.go @@ -22,26 +22,6 @@ func (this *Feed) readAtom(doc *xmlx.Document) (err error) { return nil } - haveItem := func(ch *Channel, id, title, desc string) bool { - for _, item := range ch.Items { - switch { - case len(id) > 0: - if item.Id == id { - return true - } - case len(title) > 0: - if item.Title == title { - return true - } - case len(desc) > 0: - if item.Description == desc { - return true - } - } - } - return false - } - var ch *Channel var i *Item var tn *xmlx.Node @@ -91,10 +71,6 @@ func (this *Feed) readAtom(doc *xmlx.Document) (err error) { list = node.SelectNodes(ns, "entry") for _, item := range list { - if haveItem(ch, item.S(ns, "id"), item.S(ns, "title"), item.S(ns, "summary")) { - continue - } - i = new(Item) i.Title = item.S(ns, "title") i.Id = item.S(ns, "id") diff --git a/rss.go b/rss.go index 0de511c..6a2ed7f 100644 --- a/rss.go +++ b/rss.go @@ -28,26 +28,6 @@ func (this *Feed) readRss2(doc *xmlx.Document) (err error) { return nil } - haveItem := func(ch *Channel, pubdate, title, desc string) bool { - for _, item := range ch.Items { - switch { - case len(pubdate) > 0: - if item.PubDate == pubdate { - return true - } - case len(title) > 0: - if item.Title == title { - return true - } - case len(desc) > 0: - if item.Description == desc { - return true - } - } - } - return false - } - var ch *Channel var i *Item var n *xmlx.Node @@ -139,11 +119,6 @@ func (this *Feed) readRss2(doc *xmlx.Document) (err error) { } for _, item := range list { - if haveItem(ch, item.S(ns, "pubDate"), - item.S(ns, "title"), item.S(ns, "description")) { - continue - } - i = new(Item) i.Title = item.S(ns, "title") i.Description = item.S(ns, "description")