def get_book_file(book_id, book_name, format, user_id=0): book = Book() book_info = book.get_book_info(book_id=book_id, user_id=user_id) if not book_info: return None if format == 'pdf': book_file = make_pdf_book(book_info) elif format == 'fb2': book_file = make_fb2_book(book_info) return book_file
def add_chapter_web(book_id): username = session.get('username') user_id = session.get('user_id') book = Book() if not username: return redirect(url_for('index')) book_info = book.get_book_info(book_id=book_id, user_id=user_id) owner = False if not book_info: abort(404) for author in book_info['book_authors']: if author.id == user_id: owner = True if not owner: abort(403) if request.method == 'POST': if 'chapter' not in request.files: flash('Вы не вложили файл с новой частью') return redirect(url_for('add_chapter_web', book_id=book_id)) chapter_file = request.files['chapter'] if chapter_file.filename == '': flash('Вы не вложили файл с новой частью книги') return redirect(url_for('add_chapter_web', book_id=book_id)) if chapter_file and allowed_file(chapter_file.filename): filename = secure_filename(chapter_file.filename) save_book = os.path.join(app.config['UPLOAD_FOLDER'], filename) chapter_file.save(save_book) book_text = docx_to_text(save_book) time_to_open = request.form.get('date') chapter_id = add_chapter( book_id=book_id, user_id=user_id, chapter_title=request.form.get('chapter_title'), time_open=datetime.strptime(request.form.get('date'), '%d/%m/%Y'), text=book_text, chapter_number=request.form.get('chapter_number', None), ) return redirect(url_for('chapter', chapter_id=chapter_id)) next_chapter = book_info['book_chapters'][-1][0].chapter_number + 1 return render_template( 'add_chapter.tmpl', username=username, book=book_info, next_chapter=next_chapter, nav_get_parents=nav_get_parents(), )
def save_the_book( book_name, text, user_id, description='-', chapter_title='Chapter1', genre=[], time_open=datetime.now(), ): new_book = Book( book_name, description, ) db_session.add(new_book) db_session.commit() genre_dict = get_genre_dict() if genre: for genre_id in genre: new_book_genre = GenreBook(new_book.id, genre_id) db_session.add(new_book_genre) if user_id: new_author = Author(user_id, new_book.id) db_session.add(new_author) db_session.commit() add_chapter( new_book.id, user_id, chapter_title, time_open, text, 1, ) return new_book.id else: return None
def get_book_list_by_genre(bot, update, user_data): user_text = update.message.text answer = 'выберете название книги и автора: \n' genres = user_text.split() for genre in genres: genre_obj = Genre.query.filter(Genre.genre_name == genre).first() if genre_obj: book_obj = Book() for line in book_obj.get_books_by_genre(genre_obj.id): answer += line.book_name + '|' book_id = line.id author = Author.query.filter(Author.book_id == book_id).first() if author: author_name = User.query.filter( User.id == author.user_id).first().user_name answer += author_name + '\n' update.message.reply_text(answer) return GET_BOOK
def get_books_by_genre_web(genre_id=110): username = session.get('username') user_id = session.get('user_id') book = Book() books = book.get_books_by_genre(genre_id) if not books: abort(404) genre = Genre() counted_genres = genre.get_all_counted() current_genre = genre.query.filter(Genre.id == genre_id).first() return render_template( 'genre_search.tmpl', book=books, username=username, current_genre=current_genre, genres=counted_genres, nav_get_parents=nav_get_parents(), )
def book(book_id): book = Book() username = session.get('username') user_id = session.get('user_id') owner = False if not user_id: user_id = 0 book_info = book.get_book_info(book_id=book_id, user_id=user_id) if not book_info.get('book_data'): abort(404) for author in book_info['book_authors']: if author.id == user_id: owner = True return render_template( 'book.tmpl', username=username, book=book_info, owner=owner, nav_get_parents=nav_get_parents(), )
def index(): #username = request.cookies.get('username') book = Book() offset = request.args.get('next') if not offset: offset = 0 book_info = book.query.order_by(Book.id.desc()).limit(25).offset(offset).all() username = session.get('username') genre = Genre() counted_genres = genre.get_all_counted() return render_template( 'index.tmpl', username=username, book=book_info, genres=counted_genres, nav_get_parents=nav_get_parents(), )
book_text += chapter[0].chapter_text crc32 = CRC32().calculate(book_text) pdf_file_name = '{}_{}_{}.pdf'.format(authors, pdf.book_name.replace(' ', '_'), crc32) pdf_file_name = transliterate(pdf_file_name) #pdf_file_name = os.path.join('static', 'pdf', pdf_file_name) with BytesIO() as pdf_file: pdf_file.write(pdf.output(dest='S').encode('latin-1', 'ignore')) book_file = { 'file_name': pdf_file_name, 'file': pdf_file.getvalue(), 'mimetype': 'application/pdf', } return book_file if __name__ == '__main__': book = Book() date = datetime.utcnow() - timedelta(days=10) book_info = book.get_book_info(book_id=1, user_id=2, date_now=date) book_file = make_pdf_book(book_info) with open(book_file['file_name'], "w") as f: f.write(book_file['file']) print(book_file['file_name'])
def export_book(id, user_id=0): book = Book() return book.get_book_info(book_id=id, user_id=user_id)