1
0
mirror of https://github.com/janeczku/calibre-web synced 2024-11-24 10:37:23 +00:00

Merge branch 'master' into Develop

This commit is contained in:
Ozzie Isaacs 2022-01-31 19:20:02 +01:00
commit 61bfeae936
3 changed files with 27 additions and 25 deletions

View File

@ -25,8 +25,15 @@ import platform
import sqlite3 import sqlite3
from collections import OrderedDict from collections import OrderedDict
import babel, pytz, requests, sqlalchemy import babel
import werkzeug, flask, flask_login, flask_principal, jinja2 import pytz
import requests
import sqlalchemy
import werkzeug
import flask
import flask_login
import flask_principal
import jinja2
from flask_babel import gettext as _ from flask_babel import gettext as _
try: try:
from flask_wtf import __version__ as flaskwtf_version from flask_wtf import __version__ as flaskwtf_version
@ -58,12 +65,6 @@ try:
except ImportError: except ImportError:
greenlet_Version = None greenlet_Version = None
try:
from scholarly import scholarly
scholarly_version = _(u'installed')
except ImportError:
scholarly_version = _(u'not installed')
from . import services from . import services
about = flask.Blueprint('about', __name__) about = flask.Blueprint('about', __name__)
@ -78,8 +79,8 @@ if constants.NIGHTLY_VERSION[0] == "$Format:%H$":
calibre_web_version = constants.STABLE_VERSION['version'] calibre_web_version = constants.STABLE_VERSION['version']
else: else:
calibre_web_version = (constants.STABLE_VERSION['version'] + ' - ' calibre_web_version = (constants.STABLE_VERSION['version'] + ' - '
+ constants.NIGHTLY_VERSION[0].replace('%','%%') + ' - ' + constants.NIGHTLY_VERSION[0].replace('%', '%%') + ' - '
+ constants.NIGHTLY_VERSION[1].replace('%','%%')) + constants.NIGHTLY_VERSION[1].replace('%', '%%'))
if getattr(sys, 'frozen', False): if getattr(sys, 'frozen', False):
calibre_web_version += " - Exe-Version" calibre_web_version += " - Exe-Version"
elif constants.HOME_CONFIG: elif constants.HOME_CONFIG:
@ -87,7 +88,7 @@ elif constants.HOME_CONFIG:
if not ret: if not ret:
_VERSIONS = OrderedDict( _VERSIONS = OrderedDict(
Platform = '{0[0]} {0[2]} {0[3]} {0[4]} {0[5]}'.format(platform.uname()), Platform='{0[0]} {0[2]} {0[3]} {0[4]} {0[5]}'.format(platform.uname()),
Python=sys.version, Python=sys.version,
Calibre_Web=calibre_web_version, Calibre_Web=calibre_web_version,
WebServer=server.VERSION, WebServer=server.VERSION,
@ -105,7 +106,6 @@ if not ret:
iso639=isoLanguages.__version__, iso639=isoLanguages.__version__,
pytz=pytz.__version__, pytz=pytz.__version__,
Unidecode=unidecode_version, Unidecode=unidecode_version,
Scholarly=scholarly_version,
Flask_SimpleLDAP=u'installed' if bool(services.ldap) else None, Flask_SimpleLDAP=u'installed' if bool(services.ldap) else None,
python_LDAP=services.ldapVersion if bool(services.ldapVersion) else None, python_LDAP=services.ldapVersion if bool(services.ldapVersion) else None,
Goodreads=u'installed' if bool(services.goodreads_support) else None, Goodreads=u'installed' if bool(services.goodreads_support) else None,
@ -117,23 +117,25 @@ if not ret:
_VERSIONS.update(uploader.get_versions(True)) _VERSIONS.update(uploader.get_versions(True))
else: else:
_VERSIONS = OrderedDict( _VERSIONS = OrderedDict(
Platform = '{0[0]} {0[2]} {0[3]} {0[4]} {0[5]}'.format(platform.uname()), Platform='{0[0]} {0[2]} {0[3]} {0[4]} {0[5]}'.format(platform.uname()),
Python = sys.version, Python=sys.version,
Calibre_Web=calibre_web_version, Calibre_Web=calibre_web_version,
Werkzeug = werkzeug.__version__, Werkzeug=werkzeug.__version__,
Jinja2=jinja2.__version__, Jinja2=jinja2.__version__,
pySqlite = sqlite3.version, pySqlite=sqlite3.version,
SQLite = sqlite3.sqlite_version, SQLite=sqlite3.sqlite_version,
) )
_VERSIONS.update(ret) _VERSIONS.update(ret)
_VERSIONS.update(uploader.get_versions(False)) _VERSIONS.update(uploader.get_versions(False))
def collect_stats(): def collect_stats():
_VERSIONS['ebook converter'] = _(converter.get_calibre_version()) _VERSIONS['ebook converter'] = _(converter.get_calibre_version())
_VERSIONS['unrar'] = _(converter.get_unrar_version()) _VERSIONS['unrar'] = _(converter.get_unrar_version())
_VERSIONS['kepubify'] = _(converter.get_kepubify_version()) _VERSIONS['kepubify'] = _(converter.get_kepubify_version())
return _VERSIONS return _VERSIONS
@about.route("/stats") @about.route("/stats")
@flask_login.login_required @flask_login.login_required
def stats(): def stats():

View File

@ -33,13 +33,6 @@ try:
except ImportError: except ImportError:
pass pass
# Improve this to check if scholarly is available in a global way, like other pythonic libraries
try:
from scholarly import scholarly
have_scholar = True
except ImportError:
have_scholar = False
from flask import Blueprint, request, flash, redirect, url_for, abort, Markup, Response from flask import Blueprint, request, flash, redirect, url_for, abort, Markup, Response
from flask_babel import gettext as _ from flask_babel import gettext as _
from flask_login import current_user, login_required from flask_login import current_user, login_required

View File

@ -19,7 +19,14 @@ import itertools
from typing import Dict, List, Optional from typing import Dict, List, Optional
from urllib.parse import quote from urllib.parse import quote
from scholarly import scholarly try:
from fake_useragent.errors import FakeUserAgentError
except (ImportError):
FakeUserAgentError = BaseException
try:
from scholarly import scholarly
except FakeUserAgentError:
raise ImportError("No module named 'scholarly'")
from cps.services.Metadata import MetaRecord, MetaSourceInfo, Metadata from cps.services.Metadata import MetaRecord, MetaSourceInfo, Metadata