From f6a7b079b7cb4127a91b082b0a2565f0bd5b1703 Mon Sep 17 00:00:00 2001 From: Jan-Pascal van Best Date: Wed, 28 Mar 2012 00:00:42 +0200 Subject: [PATCH] RTL: read end time --- .../java/org/vanbest/xmltv/Programme.java | 1 + src/main/java/org/vanbest/xmltv/RTL.java | 23 +++++++++++-------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/vanbest/xmltv/Programme.java b/src/main/java/org/vanbest/xmltv/Programme.java index ddbe0b3..2e53b50 100644 --- a/src/main/java/org/vanbest/xmltv/Programme.java +++ b/src/main/java/org/vanbest/xmltv/Programme.java @@ -110,6 +110,7 @@ public class Programme { writer.writeStartElement("programme"); if(startTime != null) writer.writeAttribute("start", df.format(startTime)); + if(endTime != null) writer.writeAttribute("stop", df.format(endTime)); if(channel != null) writer.writeAttribute("channel", ""+channel.id); if(titles != null) { for(Title title: titles) { diff --git a/src/main/java/org/vanbest/xmltv/RTL.java b/src/main/java/org/vanbest/xmltv/RTL.java index 53f6491..45804a8 100644 --- a/src/main/java/org/vanbest/xmltv/RTL.java +++ b/src/main/java/org/vanbest/xmltv/RTL.java @@ -13,6 +13,7 @@ import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.HashSet; +import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; @@ -46,7 +47,7 @@ public class RTL extends AbstractEPGSource implements EPGSource { private static final String detail_url="http://www.rtl.nl/active/epg_data/uitzending_data/"; private static final String icon_url="http://www.rtl.nl/service/gids/components/vaste_componenten/"; private static final String xmltv_channel_suffix = ".rtl.nl"; - private static final int MAX_PROGRAMMES_PER_DAY = 5; + private static final int MAX_PROGRAMMES_PER_DAY = 99999; class RTLException extends Exception { public RTLException(String s) { @@ -120,8 +121,9 @@ public class RTL extends AbstractEPGSource implements EPGSource { * */ - private void fetchDetail(Programme prog, String id) throws Exception { + private void fetchDetail(Programme prog, Date date, String id) throws Exception { URL url = detailUrl(id); + Thread.sleep(config.niceMilliseconds); Document xml = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(url.openStream()); Element root = xml.getDocumentElement(); if (root.hasAttributes()) { @@ -142,7 +144,7 @@ public class RTL extends AbstractEPGSource implements EPGSource { NodeList subnodes = n.getChildNodes(); for( int j=0; j getProgrammes1(List channels, int day, + public List getProgrammes1(List channels, int day, boolean fetchDetails) throws Exception { - Set result = new HashSet(); + List result = new LinkedList(); Map channelMap = new HashMap(); for(Channel c: channels) { if (c.enabled) channelMap.put(c.id, c); @@ -209,7 +214,7 @@ public class RTL extends AbstractEPGSource implements EPGSource { Date start = parseTime(date, starttime); prog.startTime = start; prog.channel = channelMap.get(id); - fetchDetail(prog, programme_id); + fetchDetail(prog, date, programme_id); result.add(prog); } } @@ -224,7 +229,7 @@ public class RTL extends AbstractEPGSource implements EPGSource { } int hour = Integer.parseInt(parts[0]); - if (hour<4) { + if (hour<5) { result.add(Calendar.DAY_OF_MONTH, 1); // early tomorrow morning } result.set(Calendar.HOUR_OF_DAY, hour); @@ -257,7 +262,7 @@ public class RTL extends AbstractEPGSource implements EPGSource { writer.writeCharacters("\n"); writer.writeStartElement("tv"); for(Channel c: channels) {c.serialize(writer);} - Set programmes = rtl.getProgrammes1(channels.subList(0, 3), 0, true); + List programmes = rtl.getProgrammes1(channels.subList(0, 3), 0, true); for(Programme p: programmes) {p.serialize(writer);} writer.writeEndElement(); writer.writeEndDocument(); -- 2.39.5