import isbnlib

from .models import Book


def ISBNlookup(isbn):
    isbn = isbnlib.get_canonical_isbn(isbn, "isbn13")
    if isbn:
        #Prefer local data
        if Book.objects.filter(ISBN__exact=isbn).count()>0:
            book=Book.objects.filter(ISBN__exact=isbn).first()
            return {"lookup": {
                "ISBN": book.ISBN,
                "Name": book.Name,
                "Date": book.Date,
                "Author": book.Author,
                "ID": book.id
            }, "unique": True, "exists": True}
        else:
            m=isbnlib.meta(isbn)
            if m:
                book = {"ISBN-13": "", "ISBN-10": "", "Title": "", "Year": "", "Authors": []}
                book.update(m)

                return {"lookup": {
                    "ISBN": isbnlib.get_canonical_isbn(book['ISBN-13'] + book['ISBN-10']),
                    "Name": book['Title'],
                    "Date": book['Year'],
                    "Author": ', '.join(book['Authors'])
                }, "unique":True, "exists":False}
            else:
                return None
    else:
        return None


def ISBNValidator():
    pass
