Exemple #1
0
 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/'
Exemple #2
0
    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)
Exemple #3
0
    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)
Exemple #4
0
    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()
Exemple #6
0
 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)
Exemple #7
0
    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)
Exemple #8
0
    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)
Exemple #9
0
    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)
Exemple #10
0
    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)
Exemple #11
0
 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)
Exemple #12
0
 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)