Archived
Added News RSS parser.
This commit is contained in:
1 parent
51b41a4253
commit
05b7ceb954
4 files changed
+180
-67
No files matched your search
@@ -7,7 +7,8 @@ import java.util.TreeSet;
|
||||
|
||||
public class DataHandler {
|
||||
private List<Event> events = new LinkedList<Event>();
|
||||
private Set<String> categories = new TreeSet<String>();
|
||||
private List<News> news = new LinkedList<News>();
|
||||
private Set<String> eventCategories = new TreeSet<String>();
|
||||
|
||||
public void insertEvent(String id, String title, String description, String date, String location, String text, String category) {
|
||||
int intId = Integer.parseInt(id);
|
||||
@@ -16,7 +17,12 @@ public class DataHandler {
|
||||
|
||||
Event e = new Event(intId, title, description, date, location, text, category);
|
||||
events.add(e);
|
||||
categories.add(category);
|
||||
eventCategories.add(category);
|
||||
}
|
||||
|
||||
public void insertNews(String title, String description, String content, String link, String pubDate) {
|
||||
News n = new News(title, description, content, link, pubDate);
|
||||
this.news.add(n);
|
||||
}
|
||||
|
||||
public Event getEvent(int id) {
|
||||
@@ -41,12 +47,16 @@ public class DataHandler {
|
||||
return sorted.toArray(new Event[sorted.size()]);
|
||||
}
|
||||
|
||||
public News[] populateNewsList() {
|
||||
return this.news.toArray(new News[this.news.size()]);
|
||||
}
|
||||
|
||||
public String[] getEventCategories() {
|
||||
String[] result = new String[categories.size() + 1];
|
||||
String[] result = new String[eventCategories.size() + 1];
|
||||
result[0] = Event.ALL;
|
||||
|
||||
int counter = 1;
|
||||
for (String c : categories) {
|
||||
for (String c : eventCategories) {
|
||||
result[counter++] = c;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.studentersamfundet.app;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
import android.net.Uri;
|
||||
|
||||
public class News {
|
||||
public String title;
|
||||
public String description;
|
||||
public String content;
|
||||
public Uri link;
|
||||
public Date pubDate;
|
||||
|
||||
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
public News(String title, String description, String content, String link, String pubDate) {
|
||||
this.title = title.trim();
|
||||
this.description = description.trim();
|
||||
this.content = content.trim();
|
||||
this.link = Uri.parse(link.trim());
|
||||
|
||||
try {
|
||||
this.pubDate = sdf.parse(pubDate.trim());
|
||||
} catch (ParseException e) {
|
||||
this.pubDate = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,70 @@
|
||||
package com.studentersamfundet.app;
|
||||
|
||||
public class RSSParserNews {
|
||||
import org.w3c.dom.Element;
|
||||
import org.w3c.dom.Node;
|
||||
import org.w3c.dom.NodeList;
|
||||
|
||||
public class RSSParserNews {
|
||||
private final DataHandler dh;
|
||||
|
||||
public RSSParserNews() {
|
||||
this(null);
|
||||
}
|
||||
|
||||
public RSSParserNews(DataHandler dh) {
|
||||
if (dh == null) {
|
||||
this.dh = new DataHandler();
|
||||
} else {
|
||||
this.dh = dh;
|
||||
}
|
||||
}
|
||||
|
||||
public DataHandler parse(NodeList itemNodes) {
|
||||
String title = "";
|
||||
String description = "";
|
||||
String link = "";
|
||||
String content = "";
|
||||
String pubDate = "";
|
||||
// String pictureUrl = ""; Necessary?
|
||||
|
||||
for (int i = 0; i < itemNodes.getLength(); i++) {
|
||||
Node itemNode = itemNodes.item(i);
|
||||
|
||||
if (itemNode.getNodeType() == Node.ELEMENT_NODE) {
|
||||
// Convert the Node into an Element.
|
||||
Element itemElement = (Element) itemNode;
|
||||
|
||||
// Get all elements under the <item> element.
|
||||
NodeList titleNodes = (itemElement).getElementsByTagName("title");
|
||||
NodeList descriptionNodes = (itemElement).getElementsByTagName("description");
|
||||
NodeList linkNodes = (itemElement).getElementsByTagName("link");
|
||||
NodeList textNodes = (itemElement).getElementsByTagName("content");
|
||||
NodeList dateNodes = (itemElement).getElementsByTagName("pubDate");
|
||||
|
||||
// Convert a Node into an Element.
|
||||
Node titleElement = titleNodes.item(0);
|
||||
Node descriptionElement = descriptionNodes.item(0);
|
||||
Node linkElement = linkNodes.item(0);
|
||||
Node textElement = textNodes.item(0);
|
||||
Node dateElement = dateNodes.item(0);
|
||||
|
||||
// Get all the child nodes.
|
||||
NodeList titleTextNodes = titleElement.getChildNodes();
|
||||
NodeList descriptionTextNodes = descriptionElement.getChildNodes();
|
||||
NodeList linkTextNodes = linkElement.getChildNodes();
|
||||
NodeList textTextNodes = textElement.getChildNodes();
|
||||
NodeList dateTextNodes = dateElement.getChildNodes();
|
||||
|
||||
// Retrieve the text.
|
||||
title = titleTextNodes.item(0).getNodeValue(); // mandatory
|
||||
if (descriptionTextNodes.getLength() > 0) description = descriptionTextNodes.item(0).getNodeValue();
|
||||
if (linkTextNodes.getLength() > 0) link = linkTextNodes.item(0).getNodeValue();
|
||||
if (textTextNodes.getLength() > 0) content = textTextNodes.item(0).getNodeValue();
|
||||
if (dateTextNodes.getLength() > 0) pubDate = dateTextNodes.item(0).getNodeValue();
|
||||
|
||||
dh.insertNews(title, description, content, link, pubDate);
|
||||
}
|
||||
}
|
||||
return dh;
|
||||
}
|
||||
}
|
||||
@@ -5,68 +5,76 @@ import org.w3c.dom.Node;
|
||||
import org.w3c.dom.NodeList;
|
||||
|
||||
public class RSSParserProgram {
|
||||
private static DataHandler dh;
|
||||
|
||||
public RSSParserProgram() {
|
||||
dh = new DataHandler();
|
||||
}
|
||||
private final DataHandler dh;
|
||||
|
||||
public DataHandler parse(NodeList itemNodes) {
|
||||
String id = "";
|
||||
String title = "";
|
||||
String description = "";
|
||||
String date = "";
|
||||
String location = "";
|
||||
String text = "";
|
||||
String category = "";
|
||||
// String pictureUrl = ""; Necessary?
|
||||
|
||||
for (int i = 0; i < itemNodes.getLength(); i++) {
|
||||
Node itemNode = itemNodes.item(i);
|
||||
|
||||
if (itemNode.getNodeType() == Node.ELEMENT_NODE) {
|
||||
// Convert the Node into an Element.
|
||||
Element itemElement = (Element) itemNode;
|
||||
|
||||
// Get all elements under the <item> element.
|
||||
NodeList idNodes = (itemElement).getElementsByTagName("id");
|
||||
NodeList titleNodes = (itemElement).getElementsByTagName("title");
|
||||
NodeList descriptionNodes = (itemElement).getElementsByTagName("description");
|
||||
NodeList dateNodes = (itemElement).getElementsByTagName("date");
|
||||
NodeList locationNodes = (itemElement).getElementsByTagName("location");
|
||||
NodeList textNodes = (itemElement).getElementsByTagName("content");
|
||||
NodeList categoryNodes = (itemElement).getElementsByTagName("category");
|
||||
|
||||
// Convert a Node into an Element.
|
||||
Node idElement = idNodes.item(0);
|
||||
Node titleElement = titleNodes.item(0);
|
||||
Node descriptionElement = descriptionNodes.item(0);
|
||||
Node dateElement = dateNodes.item(0);
|
||||
Node locationElement = locationNodes.item(0);
|
||||
Node textElement = textNodes.item(0);
|
||||
Node categoryElement = categoryNodes.item(0);
|
||||
|
||||
// Get all the child nodes.
|
||||
NodeList idTextNodes = idElement.getChildNodes();
|
||||
NodeList titleTextNodes = titleElement.getChildNodes();
|
||||
NodeList descriptionTextNodes = descriptionElement.getChildNodes();
|
||||
NodeList dateTextNodes = dateElement.getChildNodes();
|
||||
NodeList locationTextNodes = locationElement.getChildNodes();
|
||||
NodeList textTextNodes = textElement.getChildNodes();
|
||||
NodeList categoryTextNodes = categoryElement.getChildNodes();
|
||||
|
||||
// Retrieve the text.
|
||||
id = idTextNodes.item(0).getNodeValue(); // mandatory
|
||||
title = titleTextNodes.item(0).getNodeValue(); // mandatory
|
||||
if (descriptionTextNodes.getLength() > 0) description = descriptionTextNodes.item(0).getNodeValue();
|
||||
if (dateTextNodes.getLength() > 0) date = dateTextNodes.item(0).getNodeValue();
|
||||
if (locationTextNodes.getLength() > 0) location = locationTextNodes.item(0).getNodeValue();
|
||||
if (textTextNodes.getLength() > 0) text = textTextNodes.item(0).getNodeValue();
|
||||
if (categoryTextNodes.getLength() > 0) category = categoryTextNodes.item(0).getNodeValue();
|
||||
|
||||
dh.insertEvent(id, title, description, date, location, text, category);
|
||||
}
|
||||
}
|
||||
return dh;
|
||||
public RSSParserProgram() {
|
||||
this(null);
|
||||
}
|
||||
|
||||
public RSSParserProgram(DataHandler dh) {
|
||||
if (dh == null) {
|
||||
this.dh = new DataHandler();
|
||||
} else {
|
||||
this.dh = dh;
|
||||
}
|
||||
}
|
||||
|
||||
public DataHandler parse(NodeList itemNodes) {
|
||||
String id = "";
|
||||
String title = "";
|
||||
String description = "";
|
||||
String date = "";
|
||||
String location = "";
|
||||
String text = "";
|
||||
String category = "";
|
||||
// String pictureUrl = ""; Necessary?
|
||||
|
||||
for (int i = 0; i < itemNodes.getLength(); i++) {
|
||||
Node itemNode = itemNodes.item(i);
|
||||
|
||||
if (itemNode.getNodeType() == Node.ELEMENT_NODE) {
|
||||
// Convert the Node into an Element.
|
||||
Element itemElement = (Element) itemNode;
|
||||
|
||||
// Get all elements under the <item> element.
|
||||
NodeList idNodes = (itemElement).getElementsByTagName("id");
|
||||
NodeList titleNodes = (itemElement).getElementsByTagName("title");
|
||||
NodeList descriptionNodes = (itemElement).getElementsByTagName("description");
|
||||
NodeList dateNodes = (itemElement).getElementsByTagName("date");
|
||||
NodeList locationNodes = (itemElement).getElementsByTagName("location");
|
||||
NodeList textNodes = (itemElement).getElementsByTagName("content");
|
||||
NodeList categoryNodes = (itemElement).getElementsByTagName("category");
|
||||
|
||||
// Convert a Node into an Element.
|
||||
Node idElement = idNodes.item(0);
|
||||
Node titleElement = titleNodes.item(0);
|
||||
Node descriptionElement = descriptionNodes.item(0);
|
||||
Node dateElement = dateNodes.item(0);
|
||||
Node locationElement = locationNodes.item(0);
|
||||
Node textElement = textNodes.item(0);
|
||||
Node categoryElement = categoryNodes.item(0);
|
||||
|
||||
// Get all the child nodes.
|
||||
NodeList idTextNodes = idElement.getChildNodes();
|
||||
NodeList titleTextNodes = titleElement.getChildNodes();
|
||||
NodeList descriptionTextNodes = descriptionElement.getChildNodes();
|
||||
NodeList dateTextNodes = dateElement.getChildNodes();
|
||||
NodeList locationTextNodes = locationElement.getChildNodes();
|
||||
NodeList textTextNodes = textElement.getChildNodes();
|
||||
NodeList categoryTextNodes = categoryElement.getChildNodes();
|
||||
|
||||
// Retrieve the text.
|
||||
id = idTextNodes.item(0).getNodeValue(); // mandatory
|
||||
title = titleTextNodes.item(0).getNodeValue(); // mandatory
|
||||
if (descriptionTextNodes.getLength() > 0) description = descriptionTextNodes.item(0).getNodeValue();
|
||||
if (dateTextNodes.getLength() > 0) date = dateTextNodes.item(0).getNodeValue();
|
||||
if (locationTextNodes.getLength() > 0) location = locationTextNodes.item(0).getNodeValue();
|
||||
if (textTextNodes.getLength() > 0) text = textTextNodes.item(0).getNodeValue();
|
||||
if (categoryTextNodes.getLength() > 0) category = categoryTextNodes.item(0).getNodeValue();
|
||||
|
||||
dh.insertEvent(id, title, description, date, location, text, category);
|
||||
}
|
||||
}
|
||||
return dh;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user