Advertisement
Guest User

GoogleReaderStarredItemsToInstapaperConvertor.java

a guest
Jul 3rd, 2013
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.64 KB | None | 0 0
  1. package info.emil-genov.json
  2.  
  3. import java.io.FileInputStream;
  4. import java.io.FileNotFoundException;
  5. import java.io.IOException;
  6. import java.io.PrintWriter;
  7. import java.util.ArrayList;
  8. import java.util.HashMap;
  9. import java.util.List;
  10. import java.util.Map;
  11.  
  12. import org.json.JSONArray;
  13. import org.json.JSONException;
  14. import org.json.JSONObject;
  15.  
  16. import com.deenero.commons.StreamUtils;
  17.  
  18. public class GoogleReaderStarredItemsToInstapaperConvertor {
  19.  
  20.     /**
  21.      * @param args
  22.      * @throws IOException
  23.      * @throws FileNotFoundException
  24.      * @throws JSONException
  25.      */
  26.     public static void main(String[] args) throws FileNotFoundException, IOException, JSONException {
  27.         String jsonStr = StreamUtils.getString(new FileInputStream("starred.json"));
  28.         JSONObject json = new JSONObject(jsonStr);
  29.         JSONArray items = json.getJSONArray("items");
  30.         Map<String, List<Object[]>> feeds = new HashMap<String, List<Object[]>>();
  31.         for (int i = 0; i < items.length(); i++) {
  32.             JSONObject item = items.getJSONObject(i);
  33.             String itemDate = item.getString("published");
  34.             String feedTitle = null;
  35.             String feedUrl = null;
  36.             JSONObject origin = item.getJSONObject("origin");
  37.             if (origin != null) {
  38.                 feedTitle = origin.optString("title");
  39.                 feedUrl = origin.optString("htmlUrl");
  40.             }
  41.             String itemTitle = null;
  42.             if (item.has("title")) {
  43.                 itemTitle = item.getString("title").split("\n")[0];
  44.             } else {
  45.                 itemTitle = feedTitle + ", " + System.currentTimeMillis();
  46.             }
  47.  
  48.             String itemURL = null;
  49.             if (item.has("alternate")) {
  50.                 itemURL = ((JSONObject) item.getJSONArray("alternate").get(0)).getString("href");
  51.             } else if (item.has("enclosure")) {
  52.                 itemURL = ((JSONObject) item.getJSONArray("enclosure").get(0)).getString("href");
  53.             } else {
  54.                 itemURL = feedUrl;
  55.             }
  56.             List<Object[]> list = feeds.get(feedTitle);
  57.             if (list == null) {
  58.                 list = new ArrayList<Object[]>();
  59.                 feeds.put(feedTitle, list);
  60.             }
  61.             list.add(new Object[] { itemTitle, itemURL, itemDate });
  62.         }
  63.        
  64.         PrintWriter writer = new PrintWriter("starred.html");
  65.         writer.println("<!DOCTYPE html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n<title>Instapaper: Export</title>\n</head>\n");
  66.         writer.println("<body>\n");
  67.        
  68.        
  69.         for(String feedTitle : feeds.keySet()){
  70.             writer.println("<h1>"+feedTitle+"</h1>\n");
  71.             writer.println("<ol>\n");
  72.             List<Object[]> list = feeds.get(feedTitle);
  73.             for(Object[] o : list){
  74.                 writer.println("<li><a HREF=\""+o[1]+"\">"+o[0]+"</a></li>\n");
  75.             }
  76.             writer.println("</ol>\n\n");
  77.         }
  78.         writer.println("</body>\n\n\n");
  79.         writer.println("</html>\n");
  80.     }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement