#!/usr/bin/env python
"""
Compute the PUIDs for the given files.
"""

__author__ = 'Martin Blais <blais@furius.ca>'

# stdlib imports
import sys, os
from os.path import join

# musicdns imports
import musicdns, musicdns.cache


def main():
    import optparse
    parser = optparse.OptionParser(__doc__.strip())

    parser.add_option('-k', '--musicdns-key', action='store_true',
                      help="Music DNS key")

    opts, args = parser.parse_args()

    if not opts.musicdns_key:
        keyfn = join(os.environ['HOME'], '.musicdns_key')
        opts.musicdns_key = open(keyfn).read().strip()
        
    musicdns.initialize()

    cache = musicdns.cache.MusicDNSCache()
    for fn in args:
        sys.stdout.write(fn + ': ')
        sys.stdout.flush()
        try:
            puid, duration = cache.getpuid(fn, opts.musicdns_key)
            print '(%s millisecs): %s' % (duration, puid)
        except IOError:
            print >> sys.stderr, "Error decoding: %s" % fn
        
    musicdns.finalize()

if __name__ == '__main__':
    main()

