def list_update(): global new_connection if new_connection: main_window.active_clients_table.setModel(gui_create_model(database)) main_window.active_clients_table.resizeColumnsToContents() main_window.active_clients_table.resizeRowsToContents() with conflag_lock: new_connection = False
def list_update(): global NEW_CONNECTION if NEW_CONNECTION: main_window.active_clients_table.setModel( gui_create_model(database)) main_window.active_clients_table.resizeColumnsToContents() main_window.active_clients_table.resizeRowsToContents() with CONFLAG_LOCK: NEW_CONNECTION = False
def main(): # Загрузка файла конфигурации сервера config = configparser.ConfigParser() dir_path = os.path.dirname(os.path.realpath(__file__)) config.read(f"{dir_path}/{'server.ini'}") # Загрузка параметров командной строки, если нет параметров, то задаём значения по умоланию. listen_address, listen_port = arg_parser(config['SETTINGS']['Default_port'], config['SETTINGS']['Listen_Address']) # Инициализация базы данных database = ServerStorage(os.path.join(config['SETTINGS']['Database_path'], config['SETTINGS']['Database_file'])) # Создание экземпляра класса - сервера и его запуск: server = Server(listen_address, listen_port, database) server.daemon = True server.start() # Создаём графическое окуружение для сервера: server_app = QApplication(sys.argv) main_window = MainWindow() # Инициализируем параметры в окна main_window.statusBar().showMessage('Server Working') main_window.active_clients_table.setModel(gui_create_model(database)) main_window.active_clients_table.resizeColumnsToContents() main_window.active_clients_table.resizeRowsToContents() # Функция обновляющяя список подключённых, проверяет флаг подключения, и если надо обновляет список def list_update(): global new_connection if new_connection: main_window.active_clients_table.setModel(gui_create_model(database)) main_window.active_clients_table.resizeColumnsToContents() main_window.active_clients_table.resizeRowsToContents() with conflag_lock: new_connection = False # Функция создающяя окно со статистикой клиентов def show_statistics(): global stat_window stat_window = HistoryWindow() stat_window.history_table.setModel(create_stat_model(database)) stat_window.history_table.resizeColumnsToContents() stat_window.history_table.resizeRowsToContents() stat_window.show() # Функция создающяя окно с настройками сервера. def server_config(): global config_window # Создаём окно и заносим в него текущие параметры config_window = ConfigWindow() config_window.db_path.insert(config['SETTINGS']['Database_path']) config_window.db_file.insert(config['SETTINGS']['Database_file']) config_window.port.insert(config['SETTINGS']['Default_port']) config_window.ip.insert(config['SETTINGS']['Listen_Address']) config_window.save_btn.clicked.connect(save_server_config) # Функция сохранения настроек def save_server_config(): global config_window message = QMessageBox() config['SETTINGS']['Database_path'] = config_window.db_path.text() config['SETTINGS']['Database_file'] = config_window.db_file.text() try: port = int(config_window.port.text()) except ValueError: message.warning(config_window, 'Ошибка', 'Порт должен быть числом') else: config['SETTINGS']['Listen_Address'] = config_window.ip.text() if 1023 < port < 65536: config['SETTINGS']['Default_port'] = str(port) print(port) with open('server.ini', 'w') as conf: config.write(conf) message.information(config_window , 'OK' , 'Настройки успешно сохранены!') else: message.warning(config_window , 'Ошибка' , 'Порт должен быть от 1024 до 65536') # Таймер, обновляющий список клиентов 1 раз в секунду timer = QTimer() timer.timeout.connect(list_update) timer.start(1000) # Связываем кнопки с процедурами main_window.refresh_button.triggered.connect(list_update) main_window.show_history_button.triggered.connect(show_statistics) main_window.config_btn.triggered.connect(server_config) # Запускаем GUI server_app.exec_()
def server_launcher(): config = configparser.ConfigParser() dir_path = os.path.dirname(os.path.realpath(__file__)) config.read(f"{dir_path}/{'server.ini'}") listen_address, listen_port = argument_parser( config['SETTINGS']['Default_port'], config['SETTINGS']['Listen_Address']) database = ServerStorage( os.path.join(config['SETTINGS']['Database_path'], config['SETTINGS']['Database_file'])) server = Server(listen_address, listen_port, database) server.daemon = True server.start() server_app = QApplication(sys.argv) main_window = MainWindow() main_window.statusBar().showMessage('Server Working') main_window.active_clients_table.setModel(gui_create_model(database)) main_window.active_clients_table.resizeColumnsToContents() main_window.active_clients_table.resizeRowsToContents() def list_update(): global NEW_CONNECTION if NEW_CONNECTION: main_window.active_clients_table.setModel( gui_create_model(database)) main_window.active_clients_table.resizeColumnsToContents() main_window.active_clients_table.resizeRowsToContents() with CONFLAG_LOCK: NEW_CONNECTION = False def show_statistics(): global stat_window stat_window = HistoryWindow() stat_window.history_table.setModel(create_stat_model(database)) stat_window.history_table.resizeColumnsToContents() stat_window.history_table.resizeRowsToContents() stat_window.show() def server_config(): global config_window # Создаём окно и заносим в него текущие параметры config_window = ConfigWindow() config_window.db_path.insert(config['SETTINGS']['Database_path']) config_window.db_file.insert(config['SETTINGS']['Database_file']) config_window.port.insert(config['SETTINGS']['Default_port']) config_window.ip.insert(config['SETTINGS']['Listen_Address']) config_window.save_btn.clicked.connect(save_server_config) def save_server_config(): global config_window message = QMessageBox() config['SETTINGS']['Database_path'] = config_window.db_path.text() config['SETTINGS']['Database_file'] = config_window.db_file.text() try: port = int(config_window.port.text()) except ValueError: message.warning(config_window, 'Error', 'Port shall be a number') else: config['SETTINGS']['Listen_Address'] = config_window.ip.text() if 1023 < port < 65536: config['SETTINGS']['Default_port'] = str(port) print(port) with open('server.ini', 'w') as conf: config.write(conf) message.information(config_window, 'Ok', 'settings succesfully updated!') else: message.warning( config_window, 'Error', 'Port shall be in diaposon between 1024 and 65536') timer = QTimer() timer.timeout.connect(list_update) timer.start(1000) main_window.refresh_button.triggered.connect(list_update) main_window.show_history_button.triggered.connect(show_statistics) main_window.config_btn.triggered.connect(server_config) server_app.exec_()
def main(): config = config_load() listen_address, listen_port = arg_parser( config['SETTINGS']['Default_port'], config['SETTINGS']['Listen_Address']) database = ServerStorage( os.path.join(config['SETTINGS']['Database_path'], config['SETTINGS']['Database_file'])) server = Server(listen_address, listen_port, database) server.daemon = True server.start() server_app = QApplication(sys.argv) main_window = MainWindow() main_window.statusBar().showMessage('Server Working') main_window.active_clients_table.setModel(gui_create_model(database)) main_window.active_clients_table.resizeColumnsToContents() main_window.active_clients_table.resizeRowsToContents() def list_update(): global new_connection if new_connection: main_window.active_clients_table.setModel( gui_create_model(database)) main_window.active_clients_table.resizeColumnsToContents() main_window.active_clients_table.resizeRowsToContents() with conflag_lock: new_connection = False def show_statistics(): global stat_window stat_window = HistoryWindow() stat_window.history_table.setModel(create_stat_model(database)) stat_window.history_table.resizeColumnsToContents() stat_window.history_table.resizeRowsToContents() stat_window.show() def server_config(): global config_window config_window = ConfigWindow() config_window.db_path.insert(config['SETTINGS']['Database_path']) config_window.db_file.insert(config['SETTINGS']['Database_file']) config_window.port.insert(config['SETTINGS']['Default_port']) config_window.ip.insert(config['SETTINGS']['Listen_Address']) config_window.save_btn.clicked.connect(save_server_config) def save_server_config(): global config_window message = QMessageBox() config['SETTINGS']['Database_path'] = config_window.db_path.text() config['SETTINGS']['Database_file'] = config_window.db_file.text() try: port = int(config_window.port.text()) except ValueError: message.warning(config_window, 'Error', 'Port will be a number') else: config['SETTINGS']['Listen_Address'] = config_window.ip.text() if 1023 < port < 65536: config['SETTINGS']['Default_port'] = str(port) dir_path = os.path.dirname(os.path.realpath(__file__)) with open(f"{dir_path}/{'server.ini'}", 'w') as conf: config.write(conf) message.information(config_window, 'Ok', 'Settings successfully saved!') else: message.warning(config_window, 'Error', 'Error shall be in range from 1024 to 65536') timer = QTimer() timer.timeout.connect(list_update) timer.start(1000) main_window.refresh_button.triggered.connect(list_update) main_window.show_history_button.triggered.connect(show_statistics) main_window.config_btn.triggered.connect(server_config) server_app.exec_()
def list_update(): main_window.active_clients_table.setModel(gui_create_model(database)) main_window.active_clients_table.resizeColumnsToContents() main_window.active_clients_table.resizeRowsToContents()
server_port = int(SETTINGS["DEFAULT_PORT"]) logger.warning("Успользуются порт сервера по умолчанию") else: server_port = args.port if not args.addr: addr = SETTINGS["DEFAULT_IP_ADDRESS"] logger.warning("Успользуются адрес сервера по умолчанию") else: addr = args.addr database = ServerDB(SETTINGS['DATABASE']) server = Server(SETTINGS, addr, server_port) server.daemon = True server.start() print('Запуск интерфейса') server_app = QApplication(sys.argv) main_window = MainWindow(database, server) main_window.statusBar().showMessage('Server Working') main_window.active_clients_table.setModel(gui_create_model(database)) main_window.active_clients_table.resizeColumnsToContents() main_window.active_clients_table.resizeRowsToContents() # Таймер, обновляющий список клиентов 1 раз в секунду # timer = QTimer() # timer.timeout.connect(list_update) # timer.start(1000) main_window.refresh_button.triggered.connect(list_update) main_window.show_history_button.triggered.connect(show_statistics) main_window.config_btn.triggered.connect(server_config) server_app.exec_() # sys.exit(server_app.exec_())