mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Port code for start/stop of CS to use new server
This commit is contained in:
parent
2e84a2e1a9
commit
37e19d411a
@ -224,7 +224,7 @@ class ConnectShareAction(InterfaceAction):
|
|||||||
if self.gui.content_server is None:
|
if self.gui.content_server is None:
|
||||||
self.gui.start_content_server()
|
self.gui.start_content_server()
|
||||||
else:
|
else:
|
||||||
self.gui.content_server.threaded_exit()
|
self.gui.content_server.stop()
|
||||||
self.stopping_msg = info_dialog(self.gui, _('Stopping'),
|
self.stopping_msg = info_dialog(self.gui, _('Stopping'),
|
||||||
_('Stopping server, this could take up to a minute, please wait...'),
|
_('Stopping server, this could take up to a minute, please wait...'),
|
||||||
show_copy_button=False)
|
show_copy_button=False)
|
||||||
|
@ -470,15 +470,14 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, EmailMixin, # {{{
|
|||||||
self.iactions['Connect Share'].set_smartdevice_action_state()
|
self.iactions['Connect Share'].set_smartdevice_action_state()
|
||||||
|
|
||||||
def start_content_server(self, check_started=True):
|
def start_content_server(self, check_started=True):
|
||||||
from calibre.library.server.main import start_threaded_server
|
from calibre.srv.embedded import Server
|
||||||
from calibre.library.server import server_config
|
self.content_server = Server(self.library_broker)
|
||||||
self.content_server = start_threaded_server(
|
|
||||||
self.library_view.model().db, server_config().parse())
|
|
||||||
self.content_server.state_callback = Dispatcher(
|
self.content_server.state_callback = Dispatcher(
|
||||||
self.iactions['Connect Share'].content_server_state_changed)
|
self.iactions['Connect Share'].content_server_state_changed)
|
||||||
if check_started:
|
if check_started:
|
||||||
self.content_server.start_failure_callback = \
|
self.content_server.start_failure_callback = \
|
||||||
Dispatcher(self.content_server_start_failed)
|
Dispatcher(self.content_server_start_failed)
|
||||||
|
self.content_server.start()
|
||||||
|
|
||||||
def content_server_start_failed(self, msg):
|
def content_server_start_failed(self, msg):
|
||||||
error_dialog(self, _('Failed to start Content server'),
|
error_dialog(self, _('Failed to start Content server'),
|
||||||
|
@ -13,6 +13,7 @@ from calibre.srv.handler import Handler
|
|||||||
from calibre.srv.http_response import create_http_handler
|
from calibre.srv.http_response import create_http_handler
|
||||||
from calibre.srv.loop import ServerLoop
|
from calibre.srv.loop import ServerLoop
|
||||||
from calibre.srv.utils import RotatingLog
|
from calibre.srv.utils import RotatingLog
|
||||||
|
from calibre.srv.opts import server_config
|
||||||
|
|
||||||
|
|
||||||
def log_paths():
|
def log_paths():
|
||||||
@ -26,12 +27,13 @@ class Server(object):
|
|||||||
loop = current_thread = exception = None
|
loop = current_thread = exception = None
|
||||||
state_callback = start_failure_callback = None
|
state_callback = start_failure_callback = None
|
||||||
|
|
||||||
def __init__(self, opts):
|
def __init__(self, library_broker):
|
||||||
|
opts = server_config()
|
||||||
lp, lap = log_paths()
|
lp, lap = log_paths()
|
||||||
log_size = opts.max_log_size * 1024 * 1024
|
log_size = opts.max_log_size * 1024 * 1024
|
||||||
log = RotatingLog(lp, max_size=log_size)
|
log = RotatingLog(lp, max_size=log_size)
|
||||||
access_log = RotatingLog(lap, max_size=log_size)
|
access_log = RotatingLog(lap, max_size=log_size)
|
||||||
self.handler = Handler(libraries, opts)
|
self.handler = Handler(library_broker, opts)
|
||||||
plugins = self.plugins = []
|
plugins = self.plugins = []
|
||||||
if opts.use_bonjour:
|
if opts.use_bonjour:
|
||||||
plugins.append(BonJour())
|
plugins.append(BonJour())
|
||||||
@ -70,6 +72,7 @@ class Server(object):
|
|||||||
t.start()
|
t.start()
|
||||||
|
|
||||||
def serve_forever(self):
|
def serve_forever(self):
|
||||||
|
self.exception = None
|
||||||
if self.state_callback is not None:
|
if self.state_callback is not None:
|
||||||
try:
|
try:
|
||||||
self.state_callback(True)
|
self.state_callback(True)
|
||||||
|
@ -27,7 +27,7 @@ class Context(object):
|
|||||||
|
|
||||||
def __init__(self, libraries, opts, testing=False):
|
def __init__(self, libraries, opts, testing=False):
|
||||||
self.opts = opts
|
self.opts = opts
|
||||||
self.library_broker = LibraryBroker(libraries)
|
self.library_broker = libraries if isinstance(libraries, LibraryBroker) else LibraryBroker(libraries)
|
||||||
self.testing = testing
|
self.testing = testing
|
||||||
self.lock = Lock()
|
self.lock = Lock()
|
||||||
self.user_manager = UserManager(opts.userdb)
|
self.user_manager = UserManager(opts.userdb)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user