mirror of
https://github.com/janeczku/calibre-web
synced 2025-11-08 19:23:03 +00:00
Merge branch 'master' into Develop
This commit is contained in:
@@ -64,8 +64,8 @@ mimetypes.add_type('application/x-cbr', '.cbr')
|
|||||||
mimetypes.add_type('application/x-cbz', '.cbz')
|
mimetypes.add_type('application/x-cbz', '.cbz')
|
||||||
mimetypes.add_type('application/x-tar', '.cbt')
|
mimetypes.add_type('application/x-tar', '.cbt')
|
||||||
mimetypes.add_type('application/x-7z-compressed', '.cb7')
|
mimetypes.add_type('application/x-7z-compressed', '.cb7')
|
||||||
mimetypes.add_type('image/vnd.djv', '.djv')
|
mimetypes.add_type('image/vnd.djvu', '.djv')
|
||||||
mimetypes.add_type('image/vnd.djv', '.djvu')
|
mimetypes.add_type('image/vnd.djvu', '.djvu')
|
||||||
mimetypes.add_type('application/mpeg', '.mpeg')
|
mimetypes.add_type('application/mpeg', '.mpeg')
|
||||||
mimetypes.add_type('audio/mpeg', '.mp3')
|
mimetypes.add_type('audio/mpeg', '.mp3')
|
||||||
mimetypes.add_type('audio/x-m4a', '.m4a')
|
mimetypes.add_type('audio/x-m4a', '.m4a')
|
||||||
|
|||||||
@@ -151,6 +151,8 @@ class Identifiers(Base):
|
|||||||
return "ISSN"
|
return "ISSN"
|
||||||
elif format_type == "isfdb":
|
elif format_type == "isfdb":
|
||||||
return "ISFDB"
|
return "ISFDB"
|
||||||
|
elif format_type == "storygraph":
|
||||||
|
return "StoryGraph"
|
||||||
if format_type == "lubimyczytac":
|
if format_type == "lubimyczytac":
|
||||||
return "Lubimyczytac"
|
return "Lubimyczytac"
|
||||||
if format_type == "databazeknih":
|
if format_type == "databazeknih":
|
||||||
@@ -194,6 +196,8 @@ class Identifiers(Base):
|
|||||||
return "http://www.isfdb.org/cgi-bin/pl.cgi?{0}".format(self.val)
|
return "http://www.isfdb.org/cgi-bin/pl.cgi?{0}".format(self.val)
|
||||||
elif format_type == "databazeknih":
|
elif format_type == "databazeknih":
|
||||||
return "https://www.databazeknih.cz/knihy/{0}".format(self.val)
|
return "https://www.databazeknih.cz/knihy/{0}".format(self.val)
|
||||||
|
elif format_type == "storygraph":
|
||||||
|
return "https://app.thestorygraph.com/books/{0}".format(self.val)
|
||||||
elif self.val.lower().startswith("javascript:"):
|
elif self.val.lower().startswith("javascript:"):
|
||||||
return quote(self.val)
|
return quote(self.val)
|
||||||
elif self.val.lower().startswith("data:"):
|
elif self.val.lower().startswith("data:"):
|
||||||
@@ -901,7 +905,8 @@ class CalibreDB:
|
|||||||
results = self.session.query(Authors).filter(Authors.sort == auth).all()
|
results = self.session.query(Authors).filter(Authors.sort == auth).all()
|
||||||
# ToDo: How to handle not found author name
|
# ToDo: How to handle not found author name
|
||||||
if not len(results):
|
if not len(results):
|
||||||
log.error("Author {} not found to display name in right order".format(auth))
|
book_id = entry.id if isinstance(entry, Books) else entry[0].id
|
||||||
|
log.error("Author '{}' of book {} not found to display name in right order".format(auth, book_id))
|
||||||
# error = True
|
# error = True
|
||||||
break
|
break
|
||||||
for r in results:
|
for r in results:
|
||||||
|
|||||||
@@ -199,7 +199,7 @@ class CalibreTask:
|
|||||||
self.run(*args)
|
self.run(*args)
|
||||||
except Exception as ex:
|
except Exception as ex:
|
||||||
self._handleError(str(ex))
|
self._handleError(str(ex))
|
||||||
log.error_or_exception(ex)
|
log.exception(ex)
|
||||||
|
|
||||||
self.end_time = datetime.now()
|
self.end_time = datetime.now()
|
||||||
|
|
||||||
|
|||||||
@@ -511,12 +511,12 @@ input:-moz-placeholder { color: #454545; }
|
|||||||
position: fixed;
|
position: fixed;
|
||||||
top: 50%;
|
top: 50%;
|
||||||
left: 50%;
|
left: 50%;
|
||||||
width: 630px;
|
transform: translate(-50%, -50%);
|
||||||
|
width: 100vw;
|
||||||
height: auto;
|
height: auto;
|
||||||
|
max-width: 630px;
|
||||||
z-index: 2000;
|
z-index: 2000;
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
margin-left: -320px;
|
|
||||||
margin-top: -160px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.overlay {
|
.overlay {
|
||||||
|
|||||||
@@ -62,7 +62,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<div class="col-sm-12">
|
<div class="col-sm-12">
|
||||||
<button id="db_submit" type="submit" name="submit" class="btn btn-default">{{_('Save')}}</button>
|
<button id="db_submit" type="submit" class="btn btn-default">{{_('Save')}}</button>
|
||||||
<a href="{{ url_for('admin.admin') }}" id="config_back" class="btn btn-default">{{_('Cancel')}}</a>
|
<a href="{{ url_for('admin.admin') }}" id="config_back" class="btn btn-default">{{_('Cancel')}}</a>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ netifaces-plus>=0.12.0,<0.13.0
|
|||||||
urllib3>=1.22,<3.0
|
urllib3>=1.22,<3.0
|
||||||
Flask-Limiter>=2.3.0,<3.13.0
|
Flask-Limiter>=2.3.0,<3.13.0
|
||||||
regex>=2022.3.2,<2025.3.20
|
regex>=2022.3.2,<2025.3.20
|
||||||
bleach>=6.0.0,<6.2.0
|
bleach>=6.0.0,<6.3.0
|
||||||
python-magic>=0.4.27,<0.5.0
|
python-magic>=0.4.27,<0.5.0
|
||||||
python-magic-bin>=0.4.0,<0.5.0;sys_platform=='win32'
|
python-magic-bin>=0.4.0,<0.5.0;sys_platform=='win32'
|
||||||
flask-httpAuth>=4.4.0,<5.0.0
|
flask-httpAuth>=4.4.0,<5.0.0
|
||||||
cryptography>=43.0.4,<45.0.0
|
cryptography>=39.0.0,<45.0.0
|
||||||
|
|||||||
Reference in New Issue
Block a user