#!/usr/bin/env python

""" 


"""

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

import sys,optparse,datetime,logging
import dumb


def main():
    logging.getLogger('dumb').addHandler(logging.StreamHandler())
    parser = optparse.OptionParser()
    parser.add_option('--verbose','-v',action="store_true")
    parser.add_option('--comment','-c')
    parser.add_option('--relation','-r')
    parser.add_option('--title','-t')
    parser.add_option('--url','-u')
    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-add-related [-v] [-t title] [-c comment] [-r relation] -u url id [collection]')

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

    collection = dumb.Collection(directory)
    collection.load()
    try:
        bm = collection.fuzzy_get(bm_id)[0]
    except IndexError:
        sys.exit('No suitable bookmark in this collection')
    data = {}
    related = {}
    try:
        related['url'] = opt.url
    except AttributeError:
        sys.exit('Usage:  dumb-add-related [-v] [-t title] [-c comment] [-r relation] -u url id [collection]')

    if opt.title != None:
        related['title'] = opt.title
    if opt.comment != None:
        related['comment'] = opt.comment
    if opt.relation != None:
        related['relation'] = opt.relation
    related['added'] = datetime.datetime.now()
    data['related'] = [related]
    bm.load_data(data)
    collection.save()


if __name__ == '__main__': main()
