def home(request): if request.method == "POST": url = request.POST.get("url") if not url.startswith('http'): url = 'http://' + url if '.' not in url: messages.error(request, "Need a valid URL.") return HttpResponseRedirect("/") try: bf = BriticleFile(url, settings.KINDLE_LIVE_DIR) except Exception, e: if isinstance(e, URLError) or 'timed out' in str(e): messages.error(request, "Open URL Error, Try again later.") return HttpResponseRedirect("/") elif isinstance (e, UnicodeEncodeError): logger.info("UnicodeEncodeError: %s URL: %s" % (e, url)) messages.error(request, "Internal Error when fetch the URL.") return HttpResponseRedirect("/") raise doc = bf.save_to_mobi(sent_by="Kindle.io") if os.path.exists(doc): if not settings.DEBUG: send_to_kindle(request, [doc], subject=bf.title) os.remove(doc) messages.success(request, "The doc has been sent to your kindle successfully!") return HttpResponseRedirect("/") else: messages.error(request, "Error: No file generated for this URL.") return HttpResponseRedirect("/")
def index(request): pages = [] chapter_list = [] top_books = [] new_books = [] book_id = request.POST.get('book_id') from_ = int(request.POST.get('from', 0)) to_ = int(request.POST.get('to', 0)) cpage = request.POST.get('cpage', 1) # Final step. Chapter from and to is set, send them to kindle if from_ and to_ and book_id and cpage: if from_ > to_: from_, to_ = to_, from_ book_name = get_book_name(book_id) chapter_list = get_chapter_list(book_id, asc=0, page=cpage) chapter_list = [x for x in chapter_list if from_ <= x[0] <= to_] chapter_list.reverse() file_name = write_to_file(book_id, chapter_list, book_name=book_name) if file_name == VIP: messages.error(request, "No content found, VIP chapters found.") else: send_to_kindle(request, [file_name]) messages.success(request, "These chapters have beed sent to your Kindle.") return HttpResponseRedirect(reverse("zongheng_index")) # Step before the final, client is walking through pages of the book elif book_id and cpage: pages = get_book_pages(book_id, page=cpage) chapter_list = get_chapter_list(book_id, asc=0, page=cpage) # the client just submit a book_id, show the latest chapters and its pages elif book_id: pages = get_book_pages(book_id) chapter_list = get_chapter_list(book_id, asc=0, page=1) # first come to this page, show the top books else: top_books = get_top_books() new_books = get_top_books(new=1) return render_to_response('zongheng/index.html', {'pages': pages, 'cpage': int(cpage), 'book_id': book_id, 'top_books': top_books, 'new_books': new_books, 'chapter_list': chapter_list, }, context_instance=RequestContext(request))