Пример #1
0
    def start_www(self):
        """Starts web server"""

        work_folder = config.get_work_folder_path()
        ip_address = get_ip()
        port_number = config.get_www_server_port_number()

        # setup work folder
        try:
            Controller._setup_web_content()
        except OSError as os_error:
            raise WebServerStartFailure("Work folder could not be prepared",
                                        str(os_error))

        try:
            self._web_server = WebServer(work_folder)
            self._web_server.start()

            if ip_address == "127.0.0.1":
                log_function = _LOGGER.warning
            else:
                log_function = _LOGGER.info

            url = f"http://{ip_address}:{port_number}"
            log_function(f"Web server started. Reachable at {url}")

            DYNAMIC_DATA.web_server_ip = ip_address
            DYNAMIC_DATA.web_server_is_running = True
            self._notify_model_observers()

        except OSError as os_error:
            title = "Could not start web server"
            _LOGGER.error(f"{title} : {os_error}")
            raise WebServerStartFailure(title, str(os_error))
Пример #2
0
    def _start_www(self):
        """Starts web server"""
        self.web_dir = config.get_work_folder_path()
        ip_address = MainWindow.get_ip()
        port_number = config.get_www_server_port_number()
        try:
            self.thread = StoppableServerThread(self.web_dir)
            self.thread.start()

            # Server is now started and listens on specified port on *all* available interfaces.
            # We get the machine ip address and warn user if detected ip is loopback (127.0.0.1)
            # since in this case, the web server won't be reachable by any other machine
            if ip_address == "127.0.0.1":
                log_function = _LOGGER.warning
                title = "Web server access is limited"
                message = "Web server IP address is 127.0.0.1.\n\nServer won't be reachable by other " \
                          "machines. Please check your network connection"
                warning_box(title, message)
            else:
                log_function = _LOGGER.info

            log_function(
                f"Web server started. http://{ip_address}:{port_number}")
            self._ui.action_prefs.setEnabled(False)
        except OSError:
            title = "Could not start web server"
            message = f"The web server needs to listen on port n°{port_number} but this port is already in use.\n\n"
            message += "Please change web server port number in your preferences "
            _LOGGER.error(title)
            error_box(title, message)
            self._stop_www()
            self._ui.cbWww.setChecked(False)
Пример #3
0
    def __init__(self, parent=None):
        super().__init__(parent)
        self._ui = Ui_PrefsDialog()
        self._ui.setupUi(self)

        self._ui.ln_scan_folder_path.setText(config.get_scan_folder_path())
        self._ui.ln_work_folder_path.setText(config.get_work_folder_path())
        self._ui.ln_web_server_port.setText(str(config.get_www_server_port_number()))
        self._ui.chk_debug_logs.setChecked(config.is_debug_log_on())
Пример #4
0
    def __init__(self, web_dir):
        # web stuff
        self.web_dir = web_dir
        self.httpd = HTTPServer(self.web_dir,
                                ("", config.get_www_server_port_number()))
        self.httpd.timeout = 1

        # thread stuff
        self._stop_event = threading.Event()

        # Init parent thread
        super().__init__(target=self.serve)
Пример #5
0
    def __init__(self, parent=None):
        super().__init__(parent)
        self._ui = Ui_PrefsDialog()
        self._ui.setupUi(self)

        self._ui.ln_scan_folder_path.setText(config.get_scan_folder_path())
        self._ui.ln_work_folder_path.setText(config.get_work_folder_path())
        self._ui.ln_web_server_port.setText(
            str(config.get_www_server_port_number()))
        self._ui.spn_webpage_refresh_period.setValue(
            config.get_www_server_refresh_period())
        self._ui.chk_debug_logs.setChecked(config.is_debug_log_on())

        config_to_image_save_type_mapping = {
            als.model.data.IMAGE_SAVE_TYPE_JPEG: self._ui.radioSaveJpeg,
            als.model.data.IMAGE_SAVE_TYPE_PNG: self._ui.radioSavePng,
            als.model.data.IMAGE_SAVE_TYPE_TIFF: self._ui.radioSaveTiff
        }

        config_to_image_save_type_mapping[
            config.get_image_save_format()].setChecked(True)

        self._show_missing_folders()