00001 package org.hfbk.vis.source;
00002
00003 import java.io.UnsupportedEncodingException;
00004 import java.net.URL;
00005 import java.net.URLEncoder;
00006
00007 import org.dronus.graph.Node;
00008 import org.hfbk.util.HTTPUtils;
00009
00010 public class SourceGoogleImages extends SourceRegExp {
00011
00012 public SourceGoogleImages(URL url) {
00013 super(url);
00014 root=add(keyword, "imagefield",null);
00015 String start=getParam(url, "start");
00016 if (start==null) start="0";
00017 add(""+(Integer.parseInt(start)+1), "next", root);
00018 }
00019
00020 String matcher() {
00021 return "(?i)&imgrefurl=(.*?)&.*?h=(.*?)&w=(.*?)&.*?src=(.+?:(http.*?)) ";
00022 }
00023
00024 String url() throws UnsupportedEncodingException {
00025 String start=getParam(url, "start");
00026 if (start==null) start="0";
00027 return "http://images.google.com/images?q="
00028 +URLEncoder.encode(keyword,"utf8")
00029 +"&btnG=Bilder-Suche&gbv=1&start="+(Integer.parseInt(start)*20);
00030 }
00031
00032 void parse(String[] matches){
00033 Node image=add(HTTPUtils.decode(matches[5]),"image",root);
00034 add(matches[4],"thumbnail", image);
00035 add(HTTPUtils.decode(matches[1]), "URL", image);
00036
00037 }
00038 }