#!/usr/bin/env python

""" 


"""

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

import sys,optparse,hashlib,datetime,logging,os
import dumb
from dumb.scutils import create_bookmark

def main():
    logging.getLogger('dumb').addHandler(logging.StreamHandler())
    parser = optparse.OptionParser()
    parser.add_option('--verbose','-v',action="store_true")
    parser.add_option('--title','-t')
    parser.add_option('--command-line','-l')
    parser.add_option('--comment','-c')
    parser.add_option('--opener','-o')
    parser.add_option('--keywords','-k')
    opt, arg = parser.parse_args()
    
    if len(arg) > 0 and len(arg) < 3:
        url = arg[0]
        if len(arg) > 1:
            directory = arg[1]
        else:
            directory = '.'
    else:
        sys.exit('Usage:  dumb-add [-v] [-t Title] [-l Command-line] [-c Comment] [-o opener] [-k "keyword1 [...]"] url [collection]')

    if opt.verbose != None:
        logging.getLogger('dumb').setLevel(logging.INFO)

    data = {}
    data['url']=url
    if opt.title != None:
        data['title'] = unicode(opt.title,'utf8')
    if opt.command_line != None:
        data['cline'] = unicode(opt.command_line,'utf8')
    if opt.comment != None:
        data['comment'] = unicode(opt.comment,'utf8')
    if opt.opener != None:
        data['opener'] = unicode(opt.opener,'utf8').split()
    if opt.keywords != None:
        data['keywords'] = unicode(opt.keywords,'utf8').split()
    data['added'] = datetime.datetime.now()

    try:
        filename = create_bookmark(data, directory)
    except ValueError:
        sys.exit("Could not create a valid bookmark")
    except IOError, e:
        print e
        sys.exit("Could not write bookmark file "+e.filename+': '+e[1])
    if opt.verbose != None:
        print filename


if __name__ == '__main__': main()
