Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
douban-api-proxy
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
captainwong
douban-api-proxy
Commits
cc8a4315
Commit
cc8a4315
authored
Jun 21, 2019
by
Ozzieisaacs
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'socket/unix-socket' into Develop
parents
5c7aeb2f
e2545659
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
185 additions
and
171 deletions
+185
-171
cps.py
cps.py
+3
-2
__init__.py
cps/__init__.py
+3
-3
about.py
cps/about.py
+3
-2
admin.py
cps/admin.py
+4
-8
logger.py
cps/logger.py
+34
-27
server.py
cps/server.py
+124
-101
ub.py
cps/ub.py
+12
-25
updater.py
cps/updater.py
+2
-3
No files found.
cps.py
View file @
cc8a4315
...
...
@@ -28,8 +28,8 @@ sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'vendor
from
cps
import
create_app
from
cps
import
web_server
from
cps.opds
import
opds
from
cps
import
Server
from
cps.web
import
web
from
cps.jinjia
import
jinjia
from
cps.about
import
about
...
...
@@ -56,7 +56,8 @@ def main():
app
.
register_blueprint
(
editbook
)
if
oauth_available
:
app
.
register_blueprint
(
oauth
)
Server
.
startServer
()
success
=
web_server
.
start
()
sys
.
exit
(
0
if
success
else
1
)
if
__name__
==
'__main__'
:
...
...
cps/__init__.py
View file @
cc8a4315
...
...
@@ -84,8 +84,8 @@ searched_ids = {}
from
.worker
import
WorkerThread
global_WorkerThread
=
WorkerThread
()
from
.server
import
s
erver
Server
=
s
erver
()
from
.server
import
WebS
erver
web_server
=
WebS
erver
()
from
.ldap
import
Ldap
ldap
=
Ldap
()
...
...
@@ -103,7 +103,7 @@ def create_app():
Principal
(
app
)
lm
.
init_app
(
app
)
app
.
secret_key
=
os
.
getenv
(
'SECRET_KEY'
,
'A0Zr98j/3yX R~XHH!jmN]LWX/,?RT'
)
Server
.
init_app
(
app
)
web_server
.
init_app
(
app
,
config
)
db
.
setup_db
()
babel
.
init_app
(
app
)
ldap
.
init_app
(
app
)
...
...
cps/about.py
View file @
cc8a4315
...
...
@@ -41,8 +41,9 @@ from jinja2 import __version__ as jinja2Version
from
pytz
import
__version__
as
pytzVersion
from
sqlalchemy
import
__version__
as
sqlalchemyVersion
from
.
import
db
,
converter
,
Server
,
uploader
from
.
import
db
,
converter
,
uploader
from
.isoLanguages
import
__version__
as
iso639Version
from
.server
import
VERSION
as
serverVersion
from
.web
import
render_title_template
...
...
@@ -71,7 +72,7 @@ def stats():
versions
[
'pySqlite'
]
=
'v'
+
db
.
engine
.
dialect
.
dbapi
.
version
versions
[
'Sqlite'
]
=
'v'
+
db
.
engine
.
dialect
.
dbapi
.
sqlite_version
versions
.
update
(
converter
.
versioncheck
())
versions
.
update
(
Server
.
getNameVersion
()
)
versions
.
update
(
serverVersion
)
versions
[
'Python'
]
=
sys
.
version
return
render_title_template
(
'stats.html'
,
bookcounter
=
counter
,
authorcounter
=
authors
,
versions
=
versions
,
categorycounter
=
categorys
,
seriecounter
=
series
,
title
=
_
(
u"Statistics"
),
page
=
"stat"
)
cps/admin.py
View file @
cc8a4315
...
...
@@ -41,7 +41,7 @@ from sqlalchemy.exc import IntegrityError
from
werkzeug.security
import
generate_password_hash
from
.
import
constants
,
logger
,
ldap
from
.
import
db
,
ub
,
S
erver
,
get_locale
,
config
,
updater_thread
,
babel
,
gdriveutils
from
.
import
db
,
ub
,
web_s
erver
,
get_locale
,
config
,
updater_thread
,
babel
,
gdriveutils
from
.helper
import
speaking_language
,
check_valid_domain
,
check_unrar
,
send_test_mail
,
generate_random_password
,
\
send_registration_mail
from
.gdriveutils
import
is_gdrive_ready
,
gdrive_support
,
downloadFile
,
deleteDatabaseOnChange
,
listRootFolders
...
...
@@ -102,12 +102,10 @@ def shutdown():
showtext
=
{}
if
task
==
0
:
showtext
[
'text'
]
=
_
(
u'Server restarted, please reload page'
)
Server
.
setRestartTyp
(
True
)
else
:
showtext
[
'text'
]
=
_
(
u'Performing shutdown of server, please close window'
)
Server
.
setRestartTyp
(
False
)
# stop gevent/tornado server
Server
.
stopServer
(
)
web_server
.
stop
(
task
==
0
)
return
json
.
dumps
(
showtext
)
else
:
if
task
==
2
:
...
...
@@ -220,8 +218,7 @@ def view_configuration():
# ub.session.close()
# ub.engine.dispose()
# stop Server
Server
.
setRestartTyp
(
True
)
Server
.
stopServer
()
web_server
.
stop
(
True
)
log
.
info
(
'Reboot required, restarting'
)
readColumn
=
db
.
session
.
query
(
db
.
Custom_Columns
)
\
.
filter
(
and_
(
db
.
Custom_Columns
.
datatype
==
'bool'
,
db
.
Custom_Columns
.
mark_for_delete
==
0
))
.
all
()
...
...
@@ -554,8 +551,7 @@ def configuration_helper(origin):
title
=
_
(
u"Basic Configuration"
),
page
=
"config"
)
if
reboot_required
:
# stop Server
Server
.
setRestartTyp
(
True
)
Server
.
stopServer
()
web_server
.
stop
(
True
)
log
.
info
(
'Reboot required, restarting'
)
if
origin
:
success
=
True
...
...
cps/logger.py
View file @
cc8a4315
...
...
@@ -25,6 +25,7 @@ from logging.handlers import RotatingFileHandler
from
.constants
import
BASE_DIR
as
_BASE_DIR
ACCESS_FORMATTER_GEVENT
=
Formatter
(
"
%(message)
s"
)
ACCESS_FORMATTER_TORNADO
=
Formatter
(
"[
%(asctime)
s]
%(message)
s"
)
...
...
@@ -33,7 +34,6 @@ DEFAULT_LOG_LEVEL = logging.INFO
DEFAULT_LOG_FILE
=
os
.
path
.
join
(
_BASE_DIR
,
"calibre-web.log"
)
DEFAULT_ACCESS_LOG
=
os
.
path
.
join
(
_BASE_DIR
,
"access.log"
)
LOG_TO_STDERR
=
'/dev/stderr'
DEFAULT_ACCESS_LEVEL
=
logging
.
INFO
logging
.
addLevelName
(
logging
.
WARNING
,
"WARN"
)
logging
.
addLevelName
(
logging
.
CRITICAL
,
"CRIT"
)
...
...
@@ -73,35 +73,26 @@ def is_valid_logfile(file_path):
return
(
not
log_dir
)
or
os
.
path
.
isdir
(
log_dir
)
def
setup
(
log_file
,
log_level
=
None
,
logger
=
None
):
if
logger
!=
"access"
and
logger
!=
"tornado.access"
:
formatter
=
FORMATTER
default_file
=
DEFAULT_LOG_FILE
else
:
if
logger
==
"tornado.access"
:
formatter
=
ACCESS_FORMATTER_TORNADO
else
:
formatter
=
ACCESS_FORMATTER_GEVENT
default_file
=
DEFAULT_ACCESS_LOG
def
_absolute_log_file
(
log_file
,
default_log_file
):
if
log_file
:
if
not
os
.
path
.
dirname
(
log_file
):
log_file
=
os
.
path
.
join
(
_BASE_DIR
,
log_file
)
log_file
=
os
.
path
.
abspath
(
log_file
)
else
:
log_file
=
LOG_TO_STDERR
# log_file = default_file
return
os
.
path
.
abspath
(
log_file
)
# print ('%r -- %r' % (log_level, log_file))
if
logger
!=
"access"
and
logger
!=
"tornado.access"
:
r
=
logging
.
root
else
:
r
=
logging
.
getLogger
(
logger
)
r
.
propagate
=
False
return
default_log_file
def
setup
(
log_file
,
log_level
=
None
):
'''
Configure the logging output.
May be called multiple times.
'''
log_file
=
_absolute_log_file
(
log_file
,
DEFAULT_LOG_FILE
)
r
=
logging
.
root
r
.
setLevel
(
log_level
or
DEFAULT_LOG_LEVEL
)
previous_handler
=
r
.
handlers
[
0
]
if
r
.
handlers
else
None
# print ('previous %r' % previous_handler)
if
previous_handler
:
# if the log_file has not changed, don't create a new handler
if
getattr
(
previous_handler
,
'baseFilename'
,
None
)
==
log_file
:
...
...
@@ -115,16 +106,32 @@ def setup(log_file, log_level=None, logger=None):
try
:
file_handler
=
RotatingFileHandler
(
log_file
,
maxBytes
=
50000
,
backupCount
=
2
)
except
IOError
:
if
log_file
==
default_file
:
if
log_file
==
DEFAULT_LOG_FILE
:
raise
file_handler
=
RotatingFileHandler
(
default_file
,
maxBytes
=
50000
,
backupCount
=
2
)
file_handler
.
setFormatter
(
formatter
)
file_handler
=
RotatingFileHandler
(
DEFAULT_LOG_FILE
,
maxBytes
=
50000
,
backupCount
=
2
)
file_handler
.
setFormatter
(
FORMATTER
)
for
h
in
r
.
handlers
:
r
.
removeHandler
(
h
)
h
.
close
()
r
.
addHandler
(
file_handler
)
# print ('new handler %r' % file_handler)
def
create_access_log
(
log_file
,
log_name
,
formatter
):
'''
One-time configuration for the web server's access log.
'''
log_file
=
_absolute_log_file
(
log_file
,
DEFAULT_ACCESS_LOG
)
logging
.
debug
(
"access log:
%
s"
,
log_file
)
access_log
=
logging
.
getLogger
(
log_name
)
access_log
.
propagate
=
False
access_log
.
setLevel
(
logging
.
INFO
)
file_handler
=
RotatingFileHandler
(
log_file
,
maxBytes
=
50000
,
backupCount
=
2
)
file_handler
.
setFormatter
(
formatter
)
access_log
.
addHandler
(
file_handler
)
return
access_log
# Enable logging of smtp lib debug output
...
...
cps/server.py
View file @
cc8a4315
This diff is collapsed.
Click to expand it.
cps/ub.py
View file @
cc8a4315
...
...
@@ -476,35 +476,22 @@ class Config:
def
get_config_certfile
(
self
):
if
cli
.
certfilepath
:
return
cli
.
certfilepath
else
:
if
cli
.
certfilepath
is
""
:
return
None
else
:
return
self
.
config_certfile
if
cli
.
certfilepath
is
""
:
return
None
return
self
.
config_certfile
def
get_config_keyfile
(
self
):
if
cli
.
keyfilepath
:
return
cli
.
keyfilepath
else
:
if
cli
.
certfilepath
is
""
:
return
None
else
:
return
self
.
config_keyfile
def
get_config_ipaddress
(
self
,
readable
=
False
):
if
not
readable
:
if
cli
.
ipadress
:
return
cli
.
ipadress
else
:
return
""
else
:
answer
=
"0.0.0.0"
if
cli
.
ipadress
:
if
cli
.
ipv6
:
answer
=
"["
+
cli
.
ipadress
+
"]"
else
:
answer
=
cli
.
ipadress
return
answer
if
cli
.
certfilepath
is
""
:
return
None
return
self
.
config_keyfile
def
get_config_ipaddress
(
self
):
return
cli
.
ipadress
or
""
def
get_ipaddress_type
(
self
):
return
cli
.
ipv6
def
_has_role
(
self
,
role_flag
):
return
constants
.
has_flag
(
self
.
config_default_role
,
role_flag
)
...
...
cps/updater.py
View file @
cc8a4315
...
...
@@ -33,7 +33,7 @@ from tempfile import gettempdir
from
babel.dates
import
format_datetime
from
flask_babel
import
gettext
as
_
from
.
import
constants
,
logger
,
config
,
get_locale
,
S
erver
from
.
import
constants
,
logger
,
config
,
get_locale
,
web_s
erver
log
=
logger
.
create
()
...
...
@@ -95,8 +95,7 @@ class Updater(threading.Thread):
self
.
status
=
6
log
.
debug
(
u'Preparing restart of server'
)
time
.
sleep
(
2
)
Server
.
setRestartTyp
(
True
)
Server
.
stopServer
()
web_server
.
stop
(
True
)
self
.
status
=
7
time
.
sleep
(
2
)
except
requests
.
exceptions
.
HTTPError
as
ex
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment