From 893fcfe97d360922aea26ab95effd3fd7ee3b191 Mon Sep 17 00:00:00 2001 From: Jan-Pascal van Best Date: Wed, 29 Apr 2015 22:45:56 +0200 Subject: [PATCH] Added Year and Star-Rating fields to xmltv programme --- .../java/org/vanbest/xmltv/Programme.java | 40 ++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/vanbest/xmltv/Programme.java b/src/main/java/org/vanbest/xmltv/Programme.java index 232cde8..6e84c4e 100644 --- a/src/main/java/org/vanbest/xmltv/Programme.java +++ b/src/main/java/org/vanbest/xmltv/Programme.java @@ -86,6 +86,12 @@ public class Programme implements Serializable { String value; List icons; } + + class StarRating implements Serializable { + int stars; + int max; + List icons; + } public Date startTime; // required public Date endTime; @@ -101,6 +107,7 @@ public class Programme implements Serializable { public List descriptions; public Credits credits; public Date date; // copyright date, original date + public Integer year; // see above, if only the year is known public List<Title> categories; Title language; Title origLanguage; @@ -117,9 +124,10 @@ public class Programme implements Serializable { */ public List<Subtitle> subtitles; public List<Rating> ratings; + public List<StarRating> starRatings; /* - * star-rating*, review* + * review* */ public void addTitle(String title) { @@ -281,6 +289,17 @@ public class Programme implements Serializable { r.system = system; r.value = value; ratings.add(r); + // TODO icons + } + + public void addStarRating(int stars, int max) { + if (starRatings == null) + starRatings = new ArrayList<StarRating>(); + StarRating r = new StarRating(); + r.stars = stars; + r.max = max; + starRatings.add(r); + // TODO icons } private void writeTitle(Title title, String tag, XMLStreamWriter writer) @@ -361,6 +380,8 @@ public class Programme implements Serializable { public void serialize(XMLStreamWriter writer) throws XMLStreamException { DateFormat df = new SimpleDateFormat("yyyyMMddHHmmss Z"); + DateFormat df_date = new SimpleDateFormat("yyyyMMdd"); + DateFormat df_year = new SimpleDateFormat("yyyyMMdd"); writer.writeStartElement("programme"); if (startTime != null) @@ -379,6 +400,15 @@ public class Programme implements Serializable { writeStringList(credits.presenters, "presenter", writer); writer.writeEndElement(); } + if (date != null) { + writer.writeStartElement("date"); + writer.writeCharacters(df_date.format(startTime)); + writer.writeEndElement(); + } else if (year != null) { + writer.writeStartElement("date"); + writer.writeCharacters(Integer.toString(year)); + writer.writeEndElement(); + } writeTitleList(categories, "category", writer); writeIconList(icons, writer); writeStringList(urls, "url", writer); @@ -446,6 +476,14 @@ public class Programme implements Serializable { } } + if (starRatings != null) { + for (StarRating r : starRatings) { + writer.writeStartElement("star-rating"); + writeString(r.stars + " / " + r.max, "value", writer); + writeIconList(icons, writer); + writer.writeEndElement(); + } + } writer.writeEndElement(); writer.writeCharacters(System.getProperty("line.separator")); } -- 2.39.5