From: JP <jp@here>
Date: Mon, 12 Mar 2012 09:20:56 +0000 (+0100)
Subject: Fix html entities
X-Git-Tag: 0.2~10
X-Git-Url: http://www.vanbest.org/gitweb/?a=commitdiff_plain;h=f8418157720282d1de1e847f83e38e8ef51d4e37;p=tv_grab_nl_java

Fix html entities
---

diff --git a/tv_grab_nl_java/pom.xml b/tv_grab_nl_java/pom.xml
index ff9e221..869a2c3 100644
--- a/tv_grab_nl_java/pom.xml
+++ b/tv_grab_nl_java/pom.xml
@@ -20,5 +20,10 @@
   		<artifactId>commons-io</artifactId>
   		<version>2.1</version>
   	</dependency>
+  	<dependency>
+  		<groupId>commons-lang</groupId>
+  		<artifactId>commons-lang</artifactId>
+  		<version>2.6</version>
+  	</dependency>
   </dependencies>
 </project>
\ No newline at end of file
diff --git a/tv_grab_nl_java/src/org/vanbest/xmltv/Channel.java b/tv_grab_nl_java/src/org/vanbest/xmltv/Channel.java
index 97b31b6..737d29f 100644
--- a/tv_grab_nl_java/src/org/vanbest/xmltv/Channel.java
+++ b/tv_grab_nl_java/src/org/vanbest/xmltv/Channel.java
@@ -16,4 +16,9 @@ public class Channel {
     public String getChannelId() {
     	return id+".tvgids.nl";
     }
+    
+    public void fixup() {
+		 this.name = org.apache.commons.lang.StringEscapeUtils.unescapeHtml(name);
+		 this.shortName = org.apache.commons.lang.StringEscapeUtils.unescapeHtml(shortName);
+    }
 }
diff --git a/tv_grab_nl_java/src/org/vanbest/xmltv/Main.java b/tv_grab_nl_java/src/org/vanbest/xmltv/Main.java
index 3c06273..5d09920 100644
--- a/tv_grab_nl_java/src/org/vanbest/xmltv/Main.java
+++ b/tv_grab_nl_java/src/org/vanbest/xmltv/Main.java
@@ -59,8 +59,6 @@ public class Main {
 			}
 		}
 		
-		writer.close();
-			
 		try {
 			gids.close();
 		} catch (FileNotFoundException e) {
@@ -70,6 +68,8 @@ public class Main {
 			// TODO Auto-generated catch block
 			e.printStackTrace();
 		}
+
+		writer.close();
 	}
 	
 	public void configure() {
diff --git a/tv_grab_nl_java/src/org/vanbest/xmltv/Programme.java b/tv_grab_nl_java/src/org/vanbest/xmltv/Programme.java
index 3420402..e6f4dbe 100644
--- a/tv_grab_nl_java/src/org/vanbest/xmltv/Programme.java
+++ b/tv_grab_nl_java/src/org/vanbest/xmltv/Programme.java
@@ -104,7 +104,14 @@ public class Programme {
 	  String highlight_content;
 	  ProgrammeDetails details = null;
 	  Channel channel = null;
-	  
+
+	  public void fixup() {
+		 this.titel = org.apache.commons.lang.StringEscapeUtils.unescapeHtml(titel);
+		 this.genre = org.apache.commons.lang.StringEscapeUtils.unescapeHtml(genre);
+		 this.soort = org.apache.commons.lang.StringEscapeUtils.unescapeHtml(soort);
+		 this.highlight_content = org.apache.commons.lang.StringEscapeUtils.unescapeHtml(highlight_content);
+	  }
+
 	  public String toString() {
 		  StringBuffer s = new StringBuffer();
 		  s.append("id: " + db_id + ";");
diff --git a/tv_grab_nl_java/src/org/vanbest/xmltv/ProgrammeDetails.java b/tv_grab_nl_java/src/org/vanbest/xmltv/ProgrammeDetails.java
index b4138a9..304c9b7 100644
--- a/tv_grab_nl_java/src/org/vanbest/xmltv/ProgrammeDetails.java
+++ b/tv_grab_nl_java/src/org/vanbest/xmltv/ProgrammeDetails.java
@@ -15,6 +15,19 @@ public class ProgrammeDetails implements Serializable {
 	String acteursnamen_rolverdeling;
 	String regisseur;
 	String zender_id;
+	
+  public void fixup() {
+	 this.titel = org.apache.commons.lang.StringEscapeUtils.unescapeHtml(titel);
+	 this.genre = org.apache.commons.lang.StringEscapeUtils.unescapeHtml(genre);
+	 System.out.println("synop was:" + synop);
+	 this.synop = org.apache.commons.lang.StringEscapeUtils.unescapeHtml(synop);
+	 System.out.println("synop werd:" + synop);
+	 this.presentatie = org.apache.commons.lang.StringEscapeUtils.unescapeHtml(presentatie);
+	 this.acteursnamen_rolverdeling = org.apache.commons.lang.StringEscapeUtils.unescapeHtml(acteursnamen_rolverdeling);
+	 this.regisseur = org.apache.commons.lang.StringEscapeUtils.unescapeHtml(regisseur);
+  }
+
+
 	public String getDb_id() {
 		return db_id;
 	}
diff --git a/tv_grab_nl_java/src/org/vanbest/xmltv/TvGids.java b/tv_grab_nl_java/src/org/vanbest/xmltv/TvGids.java
index e7445ae..507f135 100644
--- a/tv_grab_nl_java/src/org/vanbest/xmltv/TvGids.java
+++ b/tv_grab_nl_java/src/org/vanbest/xmltv/TvGids.java
@@ -16,6 +16,8 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 
+import net.sf.ezmorph.MorpherRegistry;
+import net.sf.ezmorph.ObjectMorpher;
 import net.sf.ezmorph.object.DateMorpher;
 import net.sf.json.JSON;
 import net.sf.json.JSONArray;
@@ -29,17 +31,34 @@ public class TvGids {
 	static String detail_base_url = "http://www.tvgids.nl/json/lists/program.php";
 
 	ProgrammeCache cache;
-	boolean initialised = false;
+	static boolean initialised = false;
 	
 	public TvGids(File cacheFile) {
 		cache = new ProgrammeCache(cacheFile);
 		if ( ! initialised ) {
-			String[] formats = {"yyyy-MM-dd HH:mm:ss"};
-			JSONUtils.getMorpherRegistry().registerMorpher( new DateMorpher(formats, new Locale("nl")));
+			init();
 			initialised = true;
 		}
 	}
 	
+	public static void init() {
+		String[] formats = {"yyyy-MM-dd HH:mm:ss"};
+		MorpherRegistry registry = JSONUtils.getMorpherRegistry();
+		registry.registerMorpher( new DateMorpher(formats, new Locale("nl")));
+		registry.registerMorpher( new ObjectMorpher() {
+			 public Object morph(Object value) {
+				 String s = (String) value;
+				 return org.apache.commons.lang.StringEscapeUtils.unescapeHtml(s);
+			 }
+			 public Class morphsTo() {
+				 return String.class;
+			 }
+			 public boolean supports(Class clazz) {
+				 return clazz == String.class;
+			 }
+		}, true);
+	}
+	
 	public void close() throws FileNotFoundException, IOException {
 		cache.close();
 	}
@@ -73,7 +92,9 @@ public class TvGids {
 			JSONObject zender = jsonArray.getJSONObject(i);
 			//System.out.println( "id: " + zender.getString("id"));
 			//System.out.println( "name: " + zender.getString("name"));
-			result.add( new Channel(zender.getInt("id"), zender.getString("name"), zender.getString("name_short")));
+			Channel c = new Channel(zender.getInt("id"), zender.getString("name"), zender.getString("name_short"));
+			c.fixup();
+			result.add(c);
 		}
 
 		return result;
@@ -123,6 +144,7 @@ public class TvGids {
 				for( int i=0; i<programs.size(); i++ ) {
 					JSONObject programme = programs.getJSONObject(i);
 					Programme p = (Programme) JSONObject.toBean(programme, Programme.class);
+					p.fixup();
 					if (fetchDetails) {
 						p.details = getDetails(p.db_id);
 					}
@@ -168,6 +190,7 @@ public class TvGids {
 		JSONObject json = fetchJSON(url);
 		//System.out.println( json );  
 		d = (ProgrammeDetails) JSONObject.toBean(json, ProgrammeDetails.class);
+		d.fixup();
 		cache.add(db_id, d);
 		return d;
 	}