]> www.vanbest.org Git - tv_grab_nl_java/commitdiff
Added Year and Star-Rating fields to xmltv programme
authorJan-Pascal van Best <janpascal@vanbest.org>
Wed, 29 Apr 2015 20:45:56 +0000 (22:45 +0200)
committerJan-Pascal van Best <janpascal@vanbest.org>
Wed, 29 Apr 2015 20:45:56 +0000 (22:45 +0200)
src/main/java/org/vanbest/xmltv/Programme.java

index 232cde8e60a2600396a4f53232f5d22a8b12ae3e..6e84c4e9fdd36d6aa231466fe5527b3c7a326e2a 100644 (file)
@@ -86,6 +86,12 @@ public class Programme implements Serializable {
                String value;
                List<Icon> icons;
        }
+       
+       class StarRating implements Serializable {
+               int stars;
+               int max;
+               List<Icon> icons;
+       }
 
        public Date startTime; // required
        public Date endTime;
@@ -101,6 +107,7 @@ public class Programme implements Serializable {
        public List<Title> 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"));
        }