#!/usr/bin/env python

""" 


"""

__author__ = 'Elena "of Valhalla" Grandi'
__version__ = '20110119'
__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('--server','-s')
    parser.add_option('--mirror','-m')
    opt, arg = parser.parse_args()
    
    if len(arg) > 0 and len(arg) < 3:
        bm_id = arg[0]
        if len(arg) > 1:
            directory = arg[1]
        else:
            directory = '.'
    else:
        sys.exit('Usage:  dumb-add-mirror [-v] [-s Server] -m mirror id [collection]')

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

    collection = dumb.Collection(directory)
    collection.load()
    try:
        bms = collection.fuzzy_get(bm_id)
    except IndexError:
        sys.exit('No suitable bookmark in this collection')
    if len(bms) > 1:
        sys.exit("Multiple bookmarks found, please disambiguate.")
    data = {}
    mirror = {}
    try:
        mirror['url'] = unicode(opt.mirror,'utf8')
    except AttributeError:
        sys.exit('Usage:  dumb-add-mirror [-v] [-s Server] -m mirror id [collection]')

    if opt.server != None:
        mirror['server'] = unicode(opt.server,'utf8')
    mirror['added'] = datetime.datetime.now()
    data['mirrors'] = [mirror]
    bms[0].load_data(data)
    collection.save()


if __name__ == '__main__': main()
