/ Published in: Python
Display the google chrome bookmarks to html and then save to database.
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
#!/usr/bin/python # -*- coding: utf-8 -*- # Chrome Bookmark Exporter, tested with OS X Chrome 7.0.517.41 # Jan Eden <software (a) janeden net> # based on a Groovy script by Dan Fraser [http://www.capybara.org/~dfraser/archives/355] # This file is public domain. Python 2.6 or newer required import json import datetime import cgi import os import sys import codecs from datetime import datetime import datetime import time import psycopg2 hostname = 'xyz' username = 'abc' password = '****' database = 'database_name' user = os.getlogin() def doQuery( conn, name, url, ct ) : cur = conn.cursor() ct = int(ct) cur.execute( "INSERT INTO personal_abstracthuman (id,user_id,slug,profile_pic) VALUES(ct, 2, name, null)" ); cur.execute( "INSERT INTO personal_importantlinks (abstracthuman_ptr_id,title,description,related_language,link) VALUES(ct, name, name,null,link)" ); conn.commit() input_filename = "/home/%s/.config/google-chrome/Default/Bookmarks" % user #input_filename = "/Users/%s/Library/Application Support/Google/Chrome/Default/Bookmarks" % user # modify if necessary output_filename = "/home/%s/Documents/chrome-bookmarks.html" % user input_file = codecs.open(input_filename, encoding='utf-8') bookmark_data = json.load(input_file) output_file = codecs.open(output_filename, 'w', encoding='utf-8') def print_bookmarks(bookmarks): for entry in bookmarks: if entry['type'] == 'folder': if not len(entry['children']) == 0: output_file.write(u'<DT><H3 FOLDED ADD_DATE="{0}">{1}</H3>'.format(entry['date_added'], entry['name'])) next_folder = entry['children'] output_file.write(u'<DL><p>') print_bookmarks(next_folder) output_file.write(u'</DL><p>') else: output_file.write(u'<DT><A DATE_ADDED="{0}" HREF="{1}">{2}</A>'.format(entry['date_added'], cgi.escape(entry['url']), entry['name'])) output_file.write(u'<!DOCTYPE NETSCAPE-Bookmark-file-1>\n<Title>Bookmarks</Title>\n<H1>Bookmarks</H1><DL>\n') roots = bookmark_data['roots'] #print roots s = 1 for entry in roots: try: print s #print len(roots[entry]['children']) ct = 283 #ids = 4 for i in roots[entry]['children']: #print int(i['date_added']) s, ms = divmod(int(i['date_added']), 1000) date_created = '%s.%03d' % (time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(s)), ms) print i['name'] print i['url'] #print i['url'] output_file.write(u'<DT><H3 FOLDED><a href="{1}" >{0} on date <strong style="color:red;">{2}</strong></a></H3>'.format(i['name'], i['url'], date_created)) output_file.write(u'</DL><p>') #myConnection = psycopg2.connect( host=hostname, user=username, password=password, dbname=database ) #doQuery( myConnection, i['name'], i['url'], ct, ids ) #myConnection.close() ct = ct+1 #ids = ids+1 s = s+1 #print roots[entry]['date_added'] #output_file.write(u'<DT><H3 FOLDED ADD_DATE={0}>{1}</H3>'.format(roots[entry]['date_added'], entry)) #print_bookmarks(roots[entry]['children']) #output_file.write(u'</DL><p>') except: pass output_file.write(u'</DL>')