#!/usr/bin/env python

""" 


"""

__author__ = 'Elena "of Valhalla" Grandi'
__version__ = '20100624'
__copyright__ = '2009,2010 Elena Grandi'
__license__ = 'LGPL'

import sys,optparse,hashlib,datetime,logging
import dumb

def edit_bookmark(bm_id,data,directory):
    collection = dumb.Collection(directory)
    collection.load()
    try:
        bm = collection.fuzzy_get(bm_id)[0]
    except IndexError:
        sys.exit('No suitable bookmark in this collection')
    bm.load_data(data)
    collection.save()

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:
        bm_id = arg[0]
        if len(arg) > 1:
            directory = arg[1]
        else:
            directory = '.'
    else:
        sys.exit('Usage:  dumb-edit [-v] [-t Title] [-l Command-line] [-c Comment] [-o opener] [-k "keyword1 [...]"] bm_id [collection]')

    data = {}
    if opt.title != None:
        data['title'] = opt.title
    if opt.command_line != None:
        data['cline'] = opt.command_line
    if opt.comment != None:
        data['comment'] = opt.comment
    if opt.opener != None:
        data['opener'] = opt.opener.split()
    if opt.keywords != None:
        data['keywords'] = opt.keywords.split()

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

    edit_bookmark(bm_id,data, directory)


if __name__ == '__main__': main()
