def __init__(self, debug_log): QThread.__init__(self) self.debug_log = debug_log opts, args = server_config().option_parser().parse_args(['calibre-server']) self.calibre_server_port = opts.port self.base_url = "http://127.0.0.1:{calibre_server_port}/".format(calibre_server_port=self.calibre_server_port) self.book_metadata_url = 'ajax/book/'
def lets_share(self): self.lets_share_button.setEnabled(False) self.timer.stop() self.us.share_button_text = "Connecting..." #self.debug_log.addItem("Let's share!") self.us.counter = 0 self.us.lost_connection = False if not self.us.ssh_proc: self.main_gui.start_content_server() opts, args = server_config().option_parser().parse_args(['calibre-server']) self.calibre_server_port = opts.port if sys.platform == "win32": self.win_reg = subprocess.Popen("regedit /s .hosts.reg") self.us.win_port = int(random.random()*40000+10000) self.us.ssh_proc = subprocess.Popen("lsbtunnel.exe -N -T tunnel@{2} -R {0}:localhost:{1} -P 722".format(self.us.win_port, self.calibre_server_port, prefs['lsb_server']), shell=True) self.us.lsb_url = "https://www{0}.{1}".format(self.us.win_port, prefs['lsb_server']) #_dev_self.us.lsb_url = "http://www{0}.{1}".format(self.us.win_port, prefs['lsb_server']) self.us.lsb_url_text = "Go to: {0}".format(self.us.lsb_url) self.us.found_url = True else: self.us.ssh_proc = subprocess.Popen(['ssh', '-T', '-N', '-g', '-o', 'UserKnownHostsFile=.userknownhostsfile', '-o', 'TCPKeepAlive=yes', '-o', 'ServerAliveINterval=60', prefs['lsb_server'], '-l', 'tunnel', '-R', '0:localhost:{0}'.format(self.calibre_server_port), '-p', '722']) self.us.found_url = None self.qaction.setIcon(get_icon('images/icon_connected.png')) self.us.connecting = True self.us.connecting_now = datetime.datetime.now() self.timer.start(self.timer_period)
def start_content_server(self, check_started=True): from calibre.library.server.main import start_threaded_server from calibre.library.server import server_config self.content_server = start_threaded_server(self.library_view.model().db, server_config().parse()) self.content_server.state_callback = Dispatcher(self.iactions["Connect Share"].content_server_state_changed) if check_started: self.content_server.start_failure_callback = Dispatcher(self.content_server_start_failed)
def start_calibre_server(self): if self.main_gui.content_server is None: self.main_gui.start_content_server() opts, args = server_config().option_parser().parse_args(['calibre-server']) self.calibre_server_port = opts.port self.started_calibre_web_server.emit() else: self.calibre_didnt_start.emit()
def start_content_server(self, check_started=True): from calibre.library.server.main import start_threaded_server from calibre.library.server import server_config self.content_server = start_threaded_server( self.library_view.model().db, server_config().parse()) self.content_server.state_callback = Dispatcher( self.iactions['Connect Share'].content_server_state_changed) if check_started: self.content_server.start_failure_callback = \ Dispatcher(self.content_server_start_failed)
def genesis(self, gui): self.gui = gui self.proxy = ConfigProxy(server_config()) db = self.db = gui.library_view.model().db self.server = self.gui.content_server r = self.register r('port', self.proxy) r('username', self.proxy) r('password', self.proxy) r('max_cover', self.proxy) r('max_opds_items', self.proxy) r('max_opds_ungrouped_items', self.proxy) r('url_prefix', self.proxy) self.show_server_password.stateChanged[int].connect( lambda s: self.opt_password.setEchoMode( self.opt_password.Normal if s == Qt.Checked else self.opt_password.Password)) self.opt_password.setEchoMode(self.opt_password.Password) restrictions = sorted(db.prefs['virtual_libraries'].iterkeys(), key=sort_key) choices = [('', '')] + [(x, x) for x in restrictions] # check that the virtual library still exists vls = db.prefs['cs_virtual_lib_on_startup'] if vls and vls not in restrictions: db.prefs['cs_virtual_lib_on_startup'] = '' r('cs_virtual_lib_on_startup', db.prefs, choices=choices) self.start_button.setEnabled( not getattr(self.server, 'is_running', False)) self.test_button.setEnabled(not self.start_button.isEnabled()) self.stop_button.setDisabled(self.start_button.isEnabled()) self.start_button.clicked.connect(self.start_server) self.stop_button.clicked.connect(self.stop_server) self.test_button.clicked.connect(self.test_server) self.view_logs.clicked.connect(self.view_server_logs) r('autolaunch_server', config)
def genesis(self, gui): self.gui = gui self.proxy = ConfigProxy(server_config()) db = self.db = gui.library_view.model().db self.server = self.gui.content_server r = self.register r('port', self.proxy) r('username', self.proxy) r('password', self.proxy) r('max_cover', self.proxy) r('max_opds_items', self.proxy) r('max_opds_ungrouped_items', self.proxy) r('url_prefix', self.proxy) self.show_server_password.stateChanged[int].connect( lambda s: self.opt_password.setEchoMode( self.opt_password.Normal if s == Qt.Checked else self.opt_password.Password)) self.opt_password.setEchoMode(self.opt_password.Password) restrictions = sorted(saved_searches().names(), key=sort_key) # verify that the current restriction still exists. If not, clear it. csr = db.prefs.get('cs_restriction', None) if csr and csr not in restrictions: db.prefs.set('cs_restriction', '') choices = [('', '')] + [(x, x) for x in restrictions] r('cs_restriction', db.prefs, choices=choices) self.start_button.setEnabled( not getattr(self.server, 'is_running', False)) self.test_button.setEnabled(not self.start_button.isEnabled()) self.stop_button.setDisabled(self.start_button.isEnabled()) self.start_button.clicked.connect(self.start_server) self.stop_button.clicked.connect(self.stop_server) self.test_button.clicked.connect(self.test_server) self.view_logs.clicked.connect(self.view_server_logs) r('autolaunch_server', config)
def genesis(self, gui): self.gui = gui self.proxy = ConfigProxy(server_config()) db = self.db = gui.library_view.model().db self.server = self.gui.content_server r = self.register r("port", self.proxy) r("username", self.proxy) r("password", self.proxy) r("max_cover", self.proxy) r("max_opds_items", self.proxy) r("max_opds_ungrouped_items", self.proxy) r("url_prefix", self.proxy) self.show_server_password.stateChanged[int].connect( lambda s: self.opt_password.setEchoMode( self.opt_password.Normal if s == Qt.Checked else self.opt_password.Password ) ) self.opt_password.setEchoMode(self.opt_password.Password) restrictions = sorted(db.prefs["virtual_libraries"].iterkeys(), key=sort_key) choices = [("", "")] + [(x, x) for x in restrictions] # check that the virtual library still exists vls = db.prefs["cs_virtual_lib_on_startup"] if vls and vls not in restrictions: db.prefs["cs_virtual_lib_on_startup"] = "" r("cs_virtual_lib_on_startup", db.prefs, choices=choices) self.start_button.setEnabled(not getattr(self.server, "is_running", False)) self.test_button.setEnabled(not self.start_button.isEnabled()) self.stop_button.setDisabled(self.start_button.isEnabled()) self.start_button.clicked.connect(self.start_server) self.stop_button.clicked.connect(self.stop_server) self.test_button.clicked.connect(self.test_server) self.view_logs.clicked.connect(self.view_server_logs) r("autolaunch_server", config)
def genesis(self, gui): self.gui = gui self.proxy = ConfigProxy(server_config()) db = self.db = gui.library_view.model().db self.server = self.gui.content_server r = self.register r('port', self.proxy) r('username', self.proxy) r('password', self.proxy) r('max_cover', self.proxy) r('max_opds_items', self.proxy) r('max_opds_ungrouped_items', self.proxy) r('url_prefix', self.proxy) self.show_server_password.stateChanged[int].connect( lambda s: self.opt_password.setEchoMode( self.opt_password.Normal if s == Qt.Checked else self.opt_password.Password)) self.opt_password.setEchoMode(self.opt_password.Password) restrictions = sorted(saved_searches().names(), key=sort_key) # verify that the current restriction still exists. If not, clear it. csr = db.prefs.get('cs_restriction', None) if csr and csr not in restrictions: db.prefs.set('cs_restriction', '') choices = [('', '')] + [(x, x) for x in restrictions] r('cs_restriction', db.prefs, choices=choices) self.start_button.setEnabled(not getattr(self.server, 'is_running', False)) self.test_button.setEnabled(not self.start_button.isEnabled()) self.stop_button.setDisabled(self.start_button.isEnabled()) self.start_button.clicked.connect(self.start_server) self.stop_button.clicked.connect(self.stop_server) self.test_button.clicked.connect(self.test_server) self.view_logs.clicked.connect(self.view_server_logs) r('autolaunch_server', config)
def commit(self): p = self.set_port() if p is not None: from calibre.library.server import server_config c = server_config() c.set('port', p)