mirror of
https://github.com/janeczku/calibre-web
synced 2025-01-03 14:00:31 +00:00
fix some error
Fix TypeError: 'bool' object is not callable
This commit is contained in:
parent
3a54ff0eb4
commit
b846cc11d8
1
.gitignore
vendored
1
.gitignore
vendored
@ -18,3 +18,4 @@ eggs/
|
|||||||
*.log
|
*.log
|
||||||
config.ini
|
config.ini
|
||||||
|
|
||||||
|
*.bak
|
||||||
|
@ -1,4 +1,2 @@
|
|||||||
@import url(http://fonts.googleapis.com/css?family=Lato:100,300,400,700);
|
@font-face{font-family:Lato;font-style:normal;font-weight:100;src:local('Lato Hairline'),local('Lato-Hairline'),url(../fonts/Lato-Hairline.ttf) format('truetype')}@font-face{font-family:Lato;font-style:normal;font-weight:300;src:local('Lato Light'),local('Lato-Light'),url(../fonts/Lato-Light.ttf) format('truetype')}@font-face{font-family:Lato;font-style:normal;font-weight:400;src:local('Lato Regular'),local('Lato-Regular'),url(../fonts/Lato-Regular.ttf) format('truetype')}@font-face{font-family:Lato;font-style:normal;font-weight:700;src:local('Lato Bold'),local('Lato-Bold'),url(../fonts/Lato-Bold.ttf) format('truetype')}@font-face{font-family:Montserrat;font-style:normal;font-weight:400;src:local('Montserrat-Regular'),url(../fonts/Montserrat-Regular.ttf) format('truetype')}@font-face{font-family:Montserrat;font-style:normal;font-weight:700;src:local('Montserrat-Bold'),url(../fonts/Montserrat-Bold.ttf) format('truetype')}@font-face{font-family:Lobster;font-style:normal;font-weight:400;src:local('Lobster'),local('Lobster-Regular'),url(../fonts/Lobster.ttf) format('truetype')}
|
||||||
@import url(http://fonts.googleapis.com/css?family=Montserrat:400,700);
|
|
||||||
@import url(http://fonts.googleapis.com/css?family=Lobster:400,700);
|
|
||||||
@font-face{font-family:'Gotham-Light';src:url('../fonts/itc/Gotham-Light.eot');src:url('../fonts/itc/Gotham-Light.woff') format('woff'),url('../fonts/itc/Gotham-Light.svg#Gotham-Light') format('svg')}@font-face{font-family:'Gotham-Medium';src:url('../fonts/itc/Gotham-Medium.eot');src:url('../fonts/itc/Gotham-Medium.woff') format('woff'),url('../fonts/itc/Gotham-Medium.svg#Gotham-Medium') format('svg')}@font-face{font-family:'Gotham-Book';src:url('../fonts/itc/Gotham-Book.eot');src:url('../fonts/itc/Gotham-Book.woff') format('woff'),url('../fonts/itc/Gotham-Book.svg#Gotham-Book') format('svg')}
|
@font-face{font-family:'Gotham-Light';src:url('../fonts/itc/Gotham-Light.eot');src:url('../fonts/itc/Gotham-Light.woff') format('woff'),url('../fonts/itc/Gotham-Light.svg#Gotham-Light') format('svg')}@font-face{font-family:'Gotham-Medium';src:url('../fonts/itc/Gotham-Medium.eot');src:url('../fonts/itc/Gotham-Medium.woff') format('woff'),url('../fonts/itc/Gotham-Medium.svg#Gotham-Medium') format('svg')}@font-face{font-family:'Gotham-Book';src:url('../fonts/itc/Gotham-Book.eot');src:url('../fonts/itc/Gotham-Book.woff') format('woff'),url('../fonts/itc/Gotham-Book.svg#Gotham-Book') format('svg')}
|
||||||
|
BIN
cps/static/fonts/Lato-Bold.ttf
Normal file
BIN
cps/static/fonts/Lato-Bold.ttf
Normal file
Binary file not shown.
BIN
cps/static/fonts/Lato-Hairline.ttf
Normal file
BIN
cps/static/fonts/Lato-Hairline.ttf
Normal file
Binary file not shown.
BIN
cps/static/fonts/Lato-Light.ttf
Normal file
BIN
cps/static/fonts/Lato-Light.ttf
Normal file
Binary file not shown.
BIN
cps/static/fonts/Lato-Regular.ttf
Normal file
BIN
cps/static/fonts/Lato-Regular.ttf
Normal file
Binary file not shown.
BIN
cps/static/fonts/Lobster.ttf
Normal file
BIN
cps/static/fonts/Lobster.ttf
Normal file
Binary file not shown.
BIN
cps/static/fonts/Montserrat-Bold.ttf
Normal file
BIN
cps/static/fonts/Montserrat-Bold.ttf
Normal file
Binary file not shown.
BIN
cps/static/fonts/Montserrat-Regular.ttf
Normal file
BIN
cps/static/fonts/Montserrat-Regular.ttf
Normal file
Binary file not shown.
@ -85,7 +85,7 @@
|
|||||||
{{entry.comments[0].text|safe}}
|
{{entry.comments[0].text|safe}}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if g.user.is_authenticated() %}
|
{% if g.user.is_authenticated %}
|
||||||
<div class="more-stuff">
|
<div class="more-stuff">
|
||||||
<div class="btn-toolbar" role="toolbar">
|
<div class="btn-toolbar" role="toolbar">
|
||||||
|
|
||||||
@ -104,8 +104,6 @@
|
|||||||
{% if g.user.kindle_mail %}
|
{% if g.user.kindle_mail %}
|
||||||
<a href="{{url_for('send_to_kindle', book_id=entry.id)}}" id="sendbtn" class="btn btn-primary" role="button"><span class="glyphicon glyphicon-send"></span> Send to Kindle</a>
|
<a href="{{url_for('send_to_kindle', book_id=entry.id)}}" id="sendbtn" class="btn btn-primary" role="button"><span class="glyphicon glyphicon-send"></span> Send to Kindle</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% for format in entry.data %}
|
|
||||||
{%if format.format|lower == 'epub' or format.format|lower == 'txt' or format.format|lower == 'pdf' %}
|
|
||||||
<div class="btn-group" role="group">
|
<div class="btn-group" role="group">
|
||||||
<button id="btnGroupDrop2" type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
<button id="btnGroupDrop2" type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
<span class="glyphicon glyphicon-eye-open"></span>Read in browser
|
<span class="glyphicon glyphicon-eye-open"></span>Read in browser
|
||||||
@ -119,11 +117,6 @@
|
|||||||
{%endfor%}
|
{%endfor%}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
{% break %}
|
|
||||||
{% endif %}
|
|
||||||
{%endfor%}
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</br>
|
</br>
|
||||||
|
@ -63,7 +63,7 @@
|
|||||||
<li><a href="{{url_for('advanced_search')}}"><span class="glyphicon glyphicon-search"></span> Advanced Search</a></li>
|
<li><a href="{{url_for('advanced_search')}}"><span class="glyphicon glyphicon-search"></span> Advanced Search</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="nav navbar-nav navbar-right" id="main-nav">
|
<ul class="nav navbar-nav navbar-right" id="main-nav">
|
||||||
{% if g.user.is_authenticated() %}
|
{% if g.user.is_authenticated %}
|
||||||
{% if g.user.role_upload() or g.user.role_admin()%}
|
{% if g.user.role_upload() or g.user.role_admin()%}
|
||||||
{% if g.allow_upload %}
|
{% if g.allow_upload %}
|
||||||
<li>
|
<li>
|
||||||
@ -119,7 +119,7 @@
|
|||||||
<li><a href="{{url_for('category_list')}}"><span class="glyphicon glyphicon-inbox"></span> Categories</a></li>
|
<li><a href="{{url_for('category_list')}}"><span class="glyphicon glyphicon-inbox"></span> Categories</a></li>
|
||||||
<li><a href="{{url_for('author_list')}}"><span class="glyphicon glyphicon-user"></span> Authors</a></li>
|
<li><a href="{{url_for('author_list')}}"><span class="glyphicon glyphicon-user"></span> Authors</a></li>
|
||||||
|
|
||||||
{% if g.user.is_authenticated() %}
|
{% if g.user.is_authenticated %}
|
||||||
<li class="nav-head hidden-xs">Public Shelves</li>
|
<li class="nav-head hidden-xs">Public Shelves</li>
|
||||||
{% for shelf in g.public_shelfes %}
|
{% for shelf in g.public_shelfes %}
|
||||||
<li><a href="{{url_for('show_shelf', shelf_id=shelf.id)}}"><span class="glyphicon glyphicon-list"></span> {{shelf.name}}</a></li>
|
<li><a href="{{url_for('show_shelf', shelf_id=shelf.id)}}"><span class="glyphicon glyphicon-list"></span> {{shelf.name}}</a></li>
|
||||||
|
@ -97,9 +97,9 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="main">
|
<div id="main">
|
||||||
<div id="prev" class="arrow" onclick="prevPage();">‹</div>
|
<div id="prev" class="arrow" >‹</div>
|
||||||
<div id="area"><pre id="content" class="content"></pre></div>
|
<div id="area"><pre id="content" class="content"></pre></div>
|
||||||
<div id="next" class="arrow" onclick="nextPage();">›</div>
|
<div id="next" class="arrow">›</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@ -122,9 +122,22 @@
|
|||||||
nextPage();
|
nextPage();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
//click
|
||||||
|
$( "#prev" ).click(function() {
|
||||||
|
prevPage();
|
||||||
|
});
|
||||||
|
$( "#next" ).click(function() {
|
||||||
|
nextPage();
|
||||||
|
});
|
||||||
//bind mouse
|
//bind mouse
|
||||||
$(window).bind('mousewheel', function(event) {
|
$(window).bind('DOMMouseScroll mousewheel', function(event) {
|
||||||
if (event.originalEvent.wheelDelta >= 0) {
|
var delta = 0;
|
||||||
|
if (event.originalEvent.wheelDelta) {
|
||||||
|
delta = event.originalEvent.wheelDelta;
|
||||||
|
}else if (event.originalEvent.detail) {
|
||||||
|
delta = event.originalEvent.detail*-1;
|
||||||
|
}
|
||||||
|
if (delta >= 0) {
|
||||||
prevPage();
|
prevPage();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
49
cps/web.py
49
cps/web.py
@ -540,7 +540,10 @@ def read_book(book_id,format):
|
|||||||
book_dir = os.path.join(config.MAIN_DIR, "cps","static", str(book_id))
|
book_dir = os.path.join(config.MAIN_DIR, "cps","static", str(book_id))
|
||||||
if not os.path.exists(book_dir):
|
if not os.path.exists(book_dir):
|
||||||
os.mkdir(book_dir)
|
os.mkdir(book_dir)
|
||||||
if format.lower() == "epub":
|
if format.lower() == "epub":
|
||||||
|
#check if mimetype file is exists
|
||||||
|
mime_file = str(book_id) +"/mimetype"
|
||||||
|
if os.path.exists(mime_file) == False:
|
||||||
epub_file = os.path.join(config.DB_ROOT, book.path, book.data[0].name) + ".epub"
|
epub_file = os.path.join(config.DB_ROOT, book.path, book.data[0].name) + ".epub"
|
||||||
if not os.path.isfile(epub_file):
|
if not os.path.isfile(epub_file):
|
||||||
raise ValueError('Error opening eBook. File does not exist: ', epub_file)
|
raise ValueError('Error opening eBook. File does not exist: ', epub_file)
|
||||||
@ -561,37 +564,21 @@ def read_book(book_id,format):
|
|||||||
fd.write(zfile.read(name))
|
fd.write(zfile.read(name))
|
||||||
fd.close()
|
fd.close()
|
||||||
zfile.close()
|
zfile.close()
|
||||||
return render_template('read.html', bookid=book_id, title="Read a Book")
|
return render_template('read.html', bookid=book_id, title="Read a Book")
|
||||||
elif format.lower() == "pdf":
|
elif format.lower() == "pdf":
|
||||||
|
all_name = str(book_id) +"/"+ urllib.quote(book.data[0].name) +".pdf"
|
||||||
|
tmp_file = os.path.join(book_dir,urllib.quote(book.data[0].name)) + ".pdf"
|
||||||
|
if os.path.exists(tmp_file) == False:
|
||||||
pdf_file = os.path.join(config.DB_ROOT, book.path, book.data[0].name) + ".pdf"
|
pdf_file = os.path.join(config.DB_ROOT, book.path, book.data[0].name) + ".pdf"
|
||||||
tmp_file = os.path.join(book_dir,urllib.quote(book.data[0].name)) + ".pdf"
|
|
||||||
copyfile(pdf_file,tmp_file)
|
copyfile(pdf_file,tmp_file)
|
||||||
all_name = str(book_id) +"/"+ urllib.quote(book.data[0].name) +".pdf"
|
return render_template('readpdf.html', pdffile=all_name, title="Read a Book")
|
||||||
return render_template('readpdf.html', pdffile=all_name, title="Read a Book")
|
elif format.lower() == "txt":
|
||||||
elif format.lower() == "txt":
|
all_name = str(book_id) +"/"+ urllib.quote(book.data[0].name) +".txt"
|
||||||
#change txt to epub
|
tmp_file = os.path.join(book_dir,urllib.quote(book.data[0].name)) + ".txt"
|
||||||
|
if os.path.exists(all_name) == False:
|
||||||
txt_file = os.path.join(config.DB_ROOT, book.path, book.data[0].name) + ".txt"
|
txt_file = os.path.join(config.DB_ROOT, book.path, book.data[0].name) + ".txt"
|
||||||
tmp_file = os.path.join(book_dir,urllib.quote(book.data[0].name)) + ".txt"
|
|
||||||
copyfile(txt_file,tmp_file)
|
copyfile(txt_file,tmp_file)
|
||||||
all_name = str(book_id) +"/"+ urllib.quote(book.data[0].name) +".txt"
|
return render_template('readtxt.html', txtfile=all_name, title="Read a Book")
|
||||||
return render_template('readtxt.html', txtfile=all_name, title="Read a Book")
|
|
||||||
else:
|
|
||||||
if format.lower() == "epub":
|
|
||||||
return render_template('read.html', bookid=book_id, title="Read a Book")
|
|
||||||
elif format.lower() == "pdf":
|
|
||||||
all_name = str(book_id) +"/"+ urllib.quote(book.data[0].name) +".pdf"
|
|
||||||
tmp_file = os.path.join(book_dir,urllib.quote(book.data[0].name)) + ".pdf"
|
|
||||||
if os.path.exists(tmp_file) == False:
|
|
||||||
pdf_file = os.path.join(config.DB_ROOT, book.path, book.data[0].name) + ".pdf"
|
|
||||||
copyfile(pdf_file,tmp_file)
|
|
||||||
return render_template('readpdf.html', pdffile=all_name, title="Read a Book")
|
|
||||||
elif format.lower() == "txt":
|
|
||||||
all_name = str(book_id) +"/"+ urllib.quote(book.data[0].name) +".txt"
|
|
||||||
tmp_file = os.path.join(book_dir,urllib.quote(book.data[0].name)) + ".txt"
|
|
||||||
if os.path.exists(all_name) == False:
|
|
||||||
txt_file = os.path.join(config.DB_ROOT, book.path, book.data[0].name) + ".txt"
|
|
||||||
copyfile(txt_file,tmp_file)
|
|
||||||
return render_template('readtxt.html', txtfile=all_name, title="Read a Book")
|
|
||||||
|
|
||||||
@app.route("/download/<int:book_id>/<format>")
|
@app.route("/download/<int:book_id>/<format>")
|
||||||
@login_required
|
@login_required
|
||||||
@ -621,7 +608,7 @@ def register():
|
|||||||
error = None
|
error = None
|
||||||
if not config.PUBLIC_REG:
|
if not config.PUBLIC_REG:
|
||||||
abort(404)
|
abort(404)
|
||||||
if current_user is not None and current_user.is_authenticated():
|
if current_user is not None and current_user.is_authenticated:
|
||||||
return redirect(url_for('index', _external=True))
|
return redirect(url_for('index', _external=True))
|
||||||
|
|
||||||
if request.method == "POST":
|
if request.method == "POST":
|
||||||
@ -657,7 +644,7 @@ def register():
|
|||||||
def login():
|
def login():
|
||||||
error = None
|
error = None
|
||||||
|
|
||||||
if current_user is not None and current_user.is_authenticated():
|
if current_user is not None and current_user.is_authenticated:
|
||||||
return redirect(url_for('index', _external=True))
|
return redirect(url_for('index', _external=True))
|
||||||
|
|
||||||
if request.method == "POST":
|
if request.method == "POST":
|
||||||
@ -676,7 +663,7 @@ def login():
|
|||||||
@app.route('/logout')
|
@app.route('/logout')
|
||||||
@login_required
|
@login_required
|
||||||
def logout():
|
def logout():
|
||||||
if current_user is not None and current_user.is_authenticated():
|
if current_user is not None and current_user.is_authenticated:
|
||||||
logout_user()
|
logout_user()
|
||||||
return redirect(request.args.get("next") or url_for("index", _external=True))
|
return redirect(request.args.get("next") or url_for("index", _external=True))
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user