#!/usr/bin/env python
# -*- coding: utf-8 -*-

""" 


"""

__author__ = 'Elena of Valhalla'
__version__ = '20110523'
__copyright__ = '2009-2011 Elena Grandi'
__license__ = 'LGPL'

import optparse, os, logging, sys
import dumb
import jinja2

def get_html(bm,collection,template):
    data = { 'collection': collection, 'bms': bm}
    env = jinja2.Environment(loader=jinja2.FileSystemLoader(['.','/']))
    template = env.get_template(template)
    return template.render(data=data)

def get_bookmarks(directory,keywords):
    collection = dumb.Collection(directory)
    collection.load()
    return collection.get_bookmarks(keywords), collection

def main():
    logging.getLogger('dumb').addHandler(logging.StreamHandler())
    parser = optparse.OptionParser()
    parser.add_option('--keywords','-k')
    parser.add_option('--template','-t')
    parser.add_option('--verbose','-v',action="store_true")
    opt, arg = parser.parse_args()
    tags = None
    directory = os.path.curdir
    if len(arg) == 1 :
        directory = arg[0]
    elif len(arg) == 0:
        directory = "."
    else:
        exit("Usage: dumb-to-jinja2 [-v] [-k keywords] -t template [directory]]")
    if opt.template != None:
        template = opt.template
    else:
        exit("Usage: dumb-to-jinja2 [-v] [-k keywords] -t template [directory]]")
    if opt.keywords != None:
        keywords = opt.keywords.split()
    else:
        keywords = None
    if opt.verbose != None:
        logging.getLogger('dumb').setLevel(logging.INFO)

    bms, collection = get_bookmarks(directory,keywords)
    print get_html(bms,directory,template).encode('utf-8')



if __name__ == '__main__': main()
