/* * Chrome Bookmark Exporter, tested wth OS X Chrome 4.0.249.49 (35163) beta * Dan Fraser * This file is public domain. * */ import org.json.simple.*; import org.apache.commons.lang.StringEscapeUtils; def username = System.getProperty("user.name") def bookmarks = new File("/Users/"+username+"/Library/Application Support/Google/Chrome/Default/Bookmarks").text def json = (JSONObject)JSONValue.parseWithException(bookmarks) println "" println "" println "Bookmarks" println "

Bookmarks

" println "
" json["roots"].each { def root = (JSONObject) it.getValue() def dateAdded = System.currentTimeMillis() / 1000 as int println "

"+StringEscapeUtils.escapeHtml(root.name)+"

" println "

" printBookmarks((JSONArray)root.children,2) println ("

") } println "

" def printBookmarks(JSONArray obj, int depth) { def indent = " " * depth; obj.each { def bm = (JSONObject) it def dateAdded = ((bm.date_added as BigDecimal) / 10000000) as BigInteger if (bm.type.equals("folder")) { if (!bm['children'].isEmpty()) { println indent+"

"+StringEscapeUtils.escapeHtml(bm.name)+"

" def nextFolder = (JSONArray) bm.children println indent+"

" printBookmarks(nextFolder,depth+1) println(indent+"

") } } else { println indent+"

${bm.name}" } } }