This commit is contained in:
Alex 2018-05-23 14:18:38 +02:00
parent 7e1c504e09
commit 223a64738d
12 changed files with 128 additions and 0 deletions

5
.gitignore vendored Normal file
View File

@ -0,0 +1,5 @@
__pycache__/
*.pyc
*~
app/uploads/
app/mydatabase.db

Binary file not shown.

Binary file not shown.

Binary file not shown.

56
app/cover.py Normal file
View File

@ -0,0 +1,56 @@
import PyPDF2
from wand.image import Image
import io
import os
def pdf_page_to_png(src_pdf, pagenum = 0, resolution = 72,):
"""
Returns specified PDF page as wand.image.Image png.
:param PyPDF2.PdfFileReader src_pdf: PDF from which to take pages.
:param int pagenum: Page number to take.
:param int resolution: Resolution for resulting png in DPI.
"""
dst_pdf = PyPDF2.PdfFileWriter()
dst_pdf.addPage(src_pdf.getPage(pagenum))
pdf_bytes = io.BytesIO()
dst_pdf.write(pdf_bytes)
pdf_bytes.seek(0)
img = Image(file = pdf_bytes, resolution = resolution)
img.convert("png")
return img
def get_cover(file_path, filename):
# Main
# ====
print(file_path)
src_filename = file_path
src_pdf = PyPDF2.PdfFileReader(open(src_filename, "rb"))
# What follows is a lookup table of page numbers within sample_log.pdf and the corresponding filenames.
pages = [{"pagenum": 0, "filename": filename}]
# Convert each page to a png image.
for page in pages:
big_filename = "app/uploads/cover/"+page["filename"] + "_cover.png"
small_filename = "app/uploads/cover/"+page["filename"] + "cover_small" + ".png"
img = pdf_page_to_png(src_pdf, pagenum = page["pagenum"], resolution = 300)
img.save(filename = big_filename)
# Ensmallen
img.transform("", "200")
img.save(filename = small_filename)
return page["filename"] + "_cover.png"
#---
#epub
#https://ebooks.stackexchange.com/questions/6517/command-line-extraction-of-metadata-title-author-from-epub-file
#https://hackage.haskell.org/package/epub-tools
#http://stackoverflow.com/questions/9751475/extract-cover-image-from-chm-and-epub-files

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,37 @@
{% extends 'base.html' %}
{% block main %}
<div class="container">
<a href="{{ url_for('show_book_by_id', id=book.id )}}">back</a>
<form method="POST" action="{{ url_for('edit_book_by_id', id=book.id )}}">
{{ form.csrf_token }}
<div class="form-group"><h1 class="header">{{ form.title.label }} {{ form.title(size=20, class="form-control") }}</h1></div>
<img src="../../uploads/cover/{{ book.cover }}" width="200">
<br> <br>
<div data-toggle="fieldset" id="phone-fieldset">
{{ form.author.label }} <button type="button" data-toggle="fieldset-add-row"
data-target="#phone-fieldset">+</button>
<table>
<tr>
<th></th>
<th></th>
</tr>
{% for author in form.author %}
<tr data-toggle="fieldset-entry">
<td>{{ author.author_name }}</td>
<td><button type="button" data-toggle="fieldset-remove-row" id="phone-{{loop.index0}}-remove">-</button></td>
</tr>
{% endfor %}
</table>
</div>
<br>
<button type="submit" class="btn btn-primary">Update</button>
</form>
</div>
{% endblock %}

View File

@ -0,0 +1,30 @@
{% extends "base.html" %}
{% block title %}Red link page{% endblock %}
{% block css %}
<style type="text/css">
body{
padding-top: 40px;
}
h1, p{
text-align:center;
}
h1{
font-size:44px;
margin:75px 0 50px;
}
p{
font-size:14px;
margin:15px 0;
}
</style>
{% endblock %}
{% block header %}{% endblock %}
{% block main %}
<h1>ID: {{ id }}</h1>
<p>red link page</p>
<p><a href="{{ url_for('home') }}">go back home</a>?</p>
{% endblock %}

Binary file not shown.