Beispiel #1
0
def book_input_auto():
    book_list = get_data('book_out.txt')
    from book.models import Book
    from book.models import Taxonomy
    
    for b in book_list:
        bs = None
        if b[6] != '':
            bs = Book.objects.filter(isbn=b[6]) 
        if bs is None or not bs.exists():
            bs = Book.objects.filter(name=b[0], version=b[7]) 
            if not bs.exists():
                try:
                    book = Book()
                    book.name = b[0]
                    book.subtitle = b[1]
                    if b[2] is None:
                        book.author = ''
                    else:
                        book.author = b[2]
                    if b[3] is None:
                        book.press = ''
                    else:
                        book.press = b[3]
                    book.price_ori = b[4]
                    if b[5] is None or b[5] == 0:
                        book.price_now = 0.4*b[4]
                    else:
                        book.price_now = b[5]
                    book.isbn = b[6]
                    book.version = b[7]
                    book.publication_date = b[8]
                    book.page_number = b[9]
                    book.size = b[10]
                    book.binding = b[11]
                    if b[12] == 'zh':
                        book.language = 'zh'
                    else:
                        book.language = 'en'
                    if b[13] is None:
                        book.translator = ''
                    else:
                        book.translator = b[13]
                    book.status = 4
                    book.save()
                    try:
                        if b[14] is not None and b[14] != '':
                            t = Taxonomy.objects.get(name=TAXONOMY_DICT[b[13]])
                            book.add_taxonomy(t)
                    except Exception, e:
                        print "Add taxonomy failed"
                        print e
                        print book_list.index(b)
                        print b
                        import pdb;pdb.set_trace()
                except Exception, e:
                    print e
                    print book_list.index(b)
                    print b
Beispiel #2
0
def add_book(request):
    context = dict()
    if request.method == "POST":
        if "url" in request.POST:
            url = request.POST["url"]
            context = parse_book_by_isbn(url)
            return render(request, "book/add.html", context)
        if "isbn" in request.POST:
            isbn = request.POST["isbn"]
            context = parse_book_by_isbn(isbn)
            book = Book()
            book.title = context["title"]
            book.publisher = context["publisher"]
            book.isbn = context["isbn"]
            book.url = context["url"]
            book.ispersonal = int(True)
            book.ownerid = request.user.id
            book.summary = context["summary"]
            book.price = context["price"]
            book.numraters = 0
            book.averageRate = 3
            book.created_date = datetime.datetime.now()
            book.updated_date = datetime.datetime.now()
            book.author = context["author"][0]
            book.authorinfo = context["author_intro"][0:4090]
            # print book.authorinfo
            book.catelog = context["catalog"][0:4090]
            book.pubdate = context["pubdate"]
            book.ispublic = int(True)
            book.imgurl = context["images"]
            book.city = Dper.objects.get(user_id=request.user.id).city
            book.bookcount = 1
            book.status = 1
            # Dper.objects.filter(id=request.user.id)[0].city
            book.save()

            # save tags of book
            for val in context["tags"]:
                tag = Tag()
                tag.value = val
                tag.createdate = datetime.datetime.now()
                tag.save()
                rel = Booktag()
                rel.tagid = tag.id
                rel.bookid = book.id
                rel.save()
            return redirect("/book/library", context)
    else:
        form = BookForm()
        context["form"] = form
        return render(request, "book/add.html", context)
Beispiel #3
0
def book_add(request):
    response_data = {}
    response_data['result'] = 'error'
    # Requests
    req = json.loads(request.body.decode('utf-8'))

    book_item = Book()
    book_item.isbn = req['isbn']
    book_item.title = req['title']
    book_item.author = req['author']
    book_item.translator = req['translator']
    book_item.edition = req['edition']
    book_item.pubhouse = req['pubhouse']
    book_item.pubtime = req['pubtime']
    book_item.summary = req['summary']
    book_item.context = req['context']
    book_item.clc = req['clc']
    book_item.price = req['price']
    # add cate
    book_item.save()
    for item in req['category']:
        try:
            # print(item['id'])
            cate = Category.objects.get(id=item['id'])
            book_item.category.add(cate)
        except:
            pass

    # add tag
    for item in req['tag']:
        try:
            tag = Tag.objects.get(id=item['id'])
            book_item.tag.add(tag)
        except:
            pass

    # Save book
    try:
        book_item.save()
        # Response Data
        response_data['result'] = 'ok'
        response_data['book_id'] = book_item.bookid
    except:
        response_data['message'] = 'Fail to save data.'

    return JsonResponse(response_data)
Beispiel #4
0
def add_book(request):
    context = dict()
    if request.method == 'POST':
        if 'url' in request.POST:
            url = request.POST['url']
            context = parse_book_by_url(url)
            return render(request, 'book/add.html', context)
        if 'bookid' in request.POST:
            bookid = request.POST['bookid']
            context = parse_book_by_id(bookid)
            book = Book()
            book.title = context['title']
            book.publisher = context['publisher']
            book.isbn = context['isbn10'] if 'isbn10' in context else context[
                'isbn13']
            book.url = context['url']
            book.ispersonal = int(True)
            book.ownerid = request.user.id
            book.summary = context['summary']
            book.price = context['price']
            book.numraters = 0
            book.averageRate = 3
            book.created_date = datetime.datetime.now()
            book.updated_date = datetime.datetime.now()
            book.author = context['author'][0]
            book.pubdate = context['pubdate']
            book.ispublic = int(True)
            book.imgurl = context['images']
            book.save()

            #save tags of book
            for val in context['tags']:
                tag = Tag()
                tag.value = val
                tag.createdate = datetime.datetime.now()
                tag.save()
                rel = Booktag()
                rel.tagid = tag.id
                rel.bookid = book.id
                rel.save()
            return redirect('/book/library', context)
    else:
        form = BookForm()
        context['form'] = form
        return render(request, 'book/add.html', context)
Beispiel #5
0
def add_book(request):
    context = dict()
    if request.method == 'POST':
        if 'url' in request.POST:
            url = request.POST['url']    
            context = parse_book_by_url(url)
            return render(request, 'book/add.html', context)
        if 'bookid' in request.POST:
            bookid = request.POST['bookid']
            context = parse_book_by_id(bookid)
            book = Book()
            book.title = context['title']
            book.publisher = context['publisher']
            book.isbn = context['isbn10'] if 'isbn10' in context else context['isbn13']
            book.url = context['url']
            book.ispersonal = int(True)
            book.ownerid = request.user.id
            book.summary = context['summary']
            book.price = context['price']
            book.numraters = 0
            book.averageRate = 3
            book.created_date = datetime.datetime.now()
            book.updated_date = datetime.datetime.now()
            book.author = context['author'][0]
            book.pubdate = context['pubdate']
            book.ispublic = int(True)
            book.imgurl = context['images']
            book.save()

            #save tags of book
            for val in context['tags']:
                tag = Tag()
                tag.value = val
                tag.createdate = datetime.datetime.now()
                tag.save()
                rel = Booktag()
                rel.tagid = tag.id
                rel.bookid = book.id
                rel.save()
            return redirect('/book/library', context)
    else:    
        form = BookForm()
        context['form'] = form
        return render(request, 'book/add.html', context)
Beispiel #6
0
def addbook(request):
    if request.method == 'POST':
        # user = cache.get('shuji')
        # print(user)

        user = request.user

        bookname = request.POST.get('bookname')
        author = request.POST.get('author')
        binding = request.POST.get('binding')
        publisher = request.POST.get('publisher')
        pubdate = request.POST.get('pubdate')
        price = request.POST.get('price')
        pages = request.POST.get('pages')
        isbn = request.POST.get('isbn')
        summary = request.POST.get('summary')
        image = request.FILES.get('image')
        book = Book()
        book.bookname = bookname
        book.author = author
        book.binding = binding
        book.publisher = publisher
        book.pubdate = pubdate
        book.price = price
        book.pages = pages
        book.isbn = isbn
        book.summary = summary
        book.image = image
        book.user_id_id = user.id
        book.save()
        user = User.objects.filter(pk=user.id).first()
        user.beans += 1
        user.save()
        # recent = Book.objects.filter(user_id_id=user.id)
        recent = Book.objects.all()

        return render(request,'index.html',{'recent':recent,'user':user})