From bb9936f696d5a658b0a8007a80e76fc511515115 Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Sat, 30 Oct 2021 21:58:17 +0200 Subject: Ignore item tags that are not inside a channel --- .../java/de/danoeh/antennapod/parser/feed/namespace/Rss20.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'parser/feed/src/main') diff --git a/parser/feed/src/main/java/de/danoeh/antennapod/parser/feed/namespace/Rss20.java b/parser/feed/src/main/java/de/danoeh/antennapod/parser/feed/namespace/Rss20.java index a49cd16dd..9ac77a5e6 100644 --- a/parser/feed/src/main/java/de/danoeh/antennapod/parser/feed/namespace/Rss20.java +++ b/parser/feed/src/main/java/de/danoeh/antennapod/parser/feed/namespace/Rss20.java @@ -39,14 +39,12 @@ public class Rss20 extends Namespace { private static final String ENC_TYPE = "type"; @Override - public SyndElement handleElementStart(String localName, HandlerState state, - Attributes attributes) { - if (ITEM.equals(localName)) { + public SyndElement handleElementStart(String localName, HandlerState state, Attributes attributes) { + if (ITEM.equals(localName) && CHANNEL.equals(state.getTagstack().lastElement().getName())) { state.setCurrentItem(new FeedItem()); state.getItems().add(state.getCurrentItem()); state.getCurrentItem().setFeed(state.getFeed()); - - } else if (ENCLOSURE.equals(localName)) { + } else if (ENCLOSURE.equals(localName) && ITEM.equals(state.getTagstack().peek().getName())) { String type = attributes.getValue(ENC_TYPE); String url = attributes.getValue(ENC_URL); @@ -72,7 +70,6 @@ public class Rss20 extends Namespace { FeedMedia media = new FeedMedia(state.getCurrentItem(), url, size, type); state.getCurrentItem().setMedia(media); } - } return new SyndElement(localName, this); } -- cgit v1.2.3