#!/usr/bin/env python
# -*- coding: utf-8 -*-

import re
import sys
import logging
from isbntools import meta
from isbntools import config
from isbntools import registry


FMT = 'ISBN-13: %s\nTitle: %s\nAuthors: %s\nPublisher: %s\nYear: %s\n'
logging.basicConfig(level=logging.DEBUG)


def usage(available="wcat|goob|..."):
    sys.stderr.write('Usage: isbn_meta ISBN [%s] [apikey]\n  ...  or try with '
                     'another service in list!\n' % available)
    sys.exit(1)


if __name__ == "__main__":
    try:
        if len(sys.argv) in (3, 4):
            service = sys.argv[2]
            try:
                config.add_apikey(sys.argv[2], sys.argv[3])
            except:
                pass
        else:
            service = 'default'
        r = meta(sys.argv[1], service)
        sys.stdout.write(FMT % (r['ISBN-13'], r['Title'],
                                re.sub("u'|\[|\]|'", "", repr(r['Authors'])),
                                r['Publisher'], r['Year']))
    except:
        providers = registry.services.keys()
        providers.remove('default')
        available = '|'.join(providers)
        usage(available)
