Implements check if item is already present
This commit is contained in:
parent
b311fe3f8d
commit
d79101645d
20
atom.go
20
atom.go
|
@ -71,6 +71,10 @@ func (this *Feed) readAtom(doc *xmlx.Document) (err error) {
|
|||
list = node.SelectNodes(ns, "entry")
|
||||
|
||||
for _, item := range list {
|
||||
if isItemPresent(ch, item.S(ns, "id"), item.S(ns, "title")) {
|
||||
continue
|
||||
}
|
||||
|
||||
i = new(Item)
|
||||
i.Title = item.S(ns, "title")
|
||||
i.Id = item.S(ns, "id")
|
||||
|
@ -123,3 +127,19 @@ func (this *Feed) readAtom(doc *xmlx.Document) (err error) {
|
|||
}
|
||||
return
|
||||
}
|
||||
|
||||
func isItemPresent(ch *Channel, id, title 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
|
||||
}
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue