def settingOutboundShadowsocksPanelFromJSONFile(self, outboundShadowsocksJSONFile=None, openFromJSONFile=False): logbook.setisOpenJSONFile(openFromJSONFile) self.tableWidgetOutShadowsocks.setRowCount(0) if (not outboundShadowsocksJSONFile): outboundShadowsocksJSONFile = {} try: outboundShadowsocksJSONFile["servers"] except KeyError as e: logbook.writeLog("OutboundShadowsocks", "KeyError", e) outboundShadowsocksJSONFile["servers"] = [] serverNumber = len(outboundShadowsocksJSONFile["servers"]) servers = outboundShadowsocksJSONFile["servers"] if (serverNumber): self.tableWidgetOutShadowsocks.setRowCount(serverNumber) try: for i in range(serverNumber): self.tableWidgetOutShadowsocks.setRowCount(i+1) address = servers[i]["address"] port = servers[i]["port"] method = servers[i]["method"] password = servers[i]["password"] email = servers[i]["email"] level = servers[i]["level"] ota = servers[i]["ota"] if method == "chacha20-ietf-poly1305": method = "chacha20-poly1305" self.tableWidgetNewRowItem(i, address, int(port), method, password, email, int(level), ota) except KeyError as e: logbook.writeLog("OutboundShadowsocks", "KeyError", e)
def settingblackholePanelFromJSONFile(self, blackholeJSONFile = {}, openFromJSONFile = False): logbook.setisOpenJSONFile(openFromJSONFile) if (blackholeJSONFile == None): blackholeJSONFile = {} try: blackholeJSONFile["response"] except KeyError as e: logbook.writeLog("blackhole", "KeyError", e) blackholeJSONFile["response"] = {} try: blackholeJSONFile["response"]["type"] except KeyError as e: logbook.writeLog("blackhole", "KeyError", e) blackholeJSONFile["response"]["type"] = "none" blackholetype = blackholeJSONFile["response"]["type"] if (blackholetype == "http"): self.radioBtnBlackholeHttp.setChecked(True) if (blackholetype == "none"): self.radioBtnBlackholeNone.setChecked(True)
def settingOutboundShadowsocksPanelFromJSONFile( self, outboundShadowsocksJSONFile={}, openFromJSONFile=False): logbook.setisOpenJSONFile(openFromJSONFile) self.tableWidgetOutShadowsocks.setRowCount(0) if (not outboundShadowsocksJSONFile): outboundShadowsocksJSONFile = {} try: outboundShadowsocksJSONFile["servers"] except KeyError as e: logbook.writeLog("OutboundShadowsocks", "KeyError", e) outboundShadowsocksJSONFile["servers"] = [] serverNumber = len(outboundShadowsocksJSONFile["servers"]) servers = outboundShadowsocksJSONFile["servers"] if (serverNumber): self.tableWidgetOutShadowsocks.setRowCount(serverNumber) try: for i in range(serverNumber): self.tableWidgetOutShadowsocks.setItem( i, 0, QTableWidgetItem(str(servers[i]["address"]))) self.tableWidgetOutShadowsocks.setItem( i, 1, QTableWidgetItem(str(servers[i]["port"]))) self.tableWidgetOutShadowsocks.setItem( i, 2, QTableWidgetItem(str(servers[i]["method"]))) self.tableWidgetOutShadowsocks.setItem( i, 3, QTableWidgetItem(str(servers[i]["password"]))) self.tableWidgetOutShadowsocks.setItem( i, 4, QTableWidgetItem(str(servers[i]["email"]))) try: self.tableWidgetOutShadowsocks.setItem( i, 5, QTableWidgetItem(str(servers[i]["level"]))) except Exception: self.tableWidgetOutShadowsocks.setItem( i, 5, QTableWidgetItem("0")) try: self.treasureChest.addLevel(servers[i]["level"]) except Exception: pass try: self.treasureChest.addEmail(servers[i]["email"]) except Exception: pass checkota = QCheckBox() checkota.setChecked(bool(servers[i]["ota"])) self.tableWidgetOutShadowsocks.setCellWidget( i, 6, checkota) self.tableWidgetOutShadowsocks.resizeColumnsToContents() except KeyError as e: logbook.writeLog("OutboundShadowsocks", "KeyError", e) except: logbook.writeLog("OutboundShadowsocks set servers", "unkown", e)
def settingfreedomPanelFromJSONFile(self, freedomJSONFile=None, openFromJSONFile=False): logbook.setisOpenJSONFile(openFromJSONFile) if (not freedomJSONFile): freedomJSONFile = {} try: freedomJSONFile["domainStrategy"] except KeyError as e: logbook.writeLog("freedom", "KeyError", e) freedomJSONFile["domainStrategy"] = "AsIs" try: freedomJSONFile["timeout"] except KeyError as e: logbook.writeLog("freedom", "KeyError", e) freedomJSONFile["timeout"] = 0 try: freedomJSONFile["redirect"] except KeyError as e: logbook.writeLog("freedom", "KeyError", e) freedomJSONFile["redirect"] = "" try: freedomJSONFile["userLevel"] except KeyError as e: logbook.writeLog("freedom", "KeyError", e) freedomJSONFile["userLevel"] = 0 domainStrategy = freedomJSONFile["domainStrategy"] if (domainStrategy == "AsIs"): self.radioBtnFreedomAsIs.setChecked(True) if (domainStrategy == "UseIP"): self.radioBtnFreedomUseIP.setChecked(True) self.lineEditFreedomRedirect.setText(str(freedomJSONFile["redirect"])) try: self.spinBoxFreedomTime.setValue(int(freedomJSONFile["timeout"])) except (TypeError, ValueError) as e: logbook.writeLog("freedom", "ValueError or TypeError", e) self.spinBoxFreedomTime.setValue(0) try: self.spinBoxFreedomsuserLevel.setValue(int(freedomJSONFile["userLevel"])) except (TypeError, ValueError) as e: logbook.writeLog("freedom", "ValueError or TypeError", e) self.spinBoxFreedomsuserLevel.setValue(0) try: self.treasureChest.addLevel(int(freedomJSONFile["userLevel"])) except Exception: pass
def settingOutboundSocksPanelFromJSONFile(self, outboundSocksJSONFile = {}, openFromJSONFile = True): logbook.setisOpenJSONFile(openFromJSONFile) self.treeViewoutSocksAddressMode.setRowCount(0) if (outboundSocksJSONFile == None): outboundSocksJSONFile = {} try: outboundSocksJSONFile["servers"] except KeyError as e: logbook.writeLog("OutboundSocks", "KeyError", e) outboundSocksJSONFile["servers"] = [] servers = outboundSocksJSONFile["servers"] serversNumber = len(servers) ### just show the first server detail in TabelWidget if (serversNumber > 0): try: self.lineEditOutboundSocksAddress.setText(servers[0]["address"]) except KeyError as e: logbook.writeLog("OutboundSocks", "KeyError", e) try: self.spinBoxOutboundSocksPort.setValue(int(servers[0]["port"])) except KeyError as e: logbook.writeLog("OutboundSocks", "KeyError", e) except (ValueError, TypeError) as e: logbook.writeLog("OutboundSocks", "ValueError or TypeError", e) for i in range(serversNumber): try: usersNumber = len(servers[i]["users"]) except KeyError as e: logbook.writeLog("OutboundSocks", "KeyError", e) usersNumber = 0 try: users = servers[i]["users"] except KeyError as e: logbook.writeLog("OutboundSocks", "KeyError", e) try: serverAddress = QStandardItem(str(servers[i]["address"])) except KeyError as e: logbook.writeLog("OutboundSocks", "KeyError", e) try: serverPort = QStandardItem(str(servers[i]["port"])) except KeyError as e: logbook.writeLog("OutboundSocks", "KeyError", e) for j in range(usersNumber): try: user = QStandardItem(str(users[j]["user"])) password = QStandardItem(str(users[j]["pass"])) try: level = QStandardItem(str(users[j]["level"])) except Exception: level = QStandardItem("0") try: self.treasureChest.addLevel(users[j]["level"]) except Exception: pass serverAddress.appendRow((user, password, level)) except KeyError as e: logbook.writeLog("OutboundSocks set user", "KeyError", e) except TypeError as e: logbook.writeLog("OutboundSocks set user", "TypeError", e) except ValueError as e: logbook.writeLog("OutboundSocks set user", "ValueError", e) except: logbook.writeLog("OutboundSocks set user", "unkonw") self.treeViewoutSocksAddressMode.appendRow((serverAddress, serverPort)) ### make a sure add items success if (self.treeViewoutSocksAddressMode.rowCount() > 0): ### if there no any selectItem, "Add, Modify, Delete" button's slot will crash self.treeViewoutSocksAddress.setCurrentIndex(self.treeViewoutSocksAddressMode.index(0, 0))
def settingOutboundVmessPanelFromJSONFile(self, outboundVmessJSONFile=None, openFromJSONFile=False): logbook.setisOpenJSONFile(openFromJSONFile) self.treeViewOutboundVmessAddressMode.setRowCount(0) if (not outboundVmessJSONFile): outboundVmessJSONFile = {} try: outboundVmessJSONFile["vnext"] except KeyError as e: logbook.writeLog("OutboundVmess", "KeyError", e) outboundVmessJSONFile["vnext"] = [] addressNumber = len(outboundVmessJSONFile["vnext"]) if (addressNumber): addresses = outboundVmessJSONFile["vnext"] for i in range(addressNumber): try: users = addresses[i]["users"] usersNumber = len(users) serverAddress = QStandardItem(addresses[i]["address"]) serverPort = QStandardItem(str(addresses[i]["port"])) if (usersNumber): for j in range(usersNumber): try: uuidString = QStandardItem(str(users[j]["id"])) except Exception: uuidString = QStandardItem("") try: alterId = QStandardItem( str(users[j]["alterId"])) except Exception: alterId = QStandardItem("") try: security = QStandardItem( str(users[j]["security"])) except Exception: security = QStandardItem("") try: level = QStandardItem(str(users[j]["level"])) except Exception: level = QStandardItem("0") try: self.treasureChest.addLevel(users[j]["level"]) except Exception: pass serverAddress.appendRow( (alterId, security, uuidString, level)) self.treeViewOutboundVmessAddressMode.appendRow( (serverAddress, serverPort)) except KeyError as e: logbook.writeLog("OutboundVmess", "KeyError", e) except: logbook.writeLog("OutboundVmess", "unkonw") if (self.treeViewOutboundVmessAddressMode.rowCount() > 0): self.treeViewOutboundVmessAddress.setCurrentIndex( self.treeViewOutboundVmessAddressMode.index(0, 0))
def settingInboundSocksPanelFromJSONFile(self, inboundSocksJSONFile={}, openFromJSONFile=False): logbook.setisOpenJSONFile(openFromJSONFile) self.tableWidgetInboundSocksUser.setRowCount(0) accountsNumber = 0 accounts = True if (not inboundSocksJSONFile): inboundSocksJSONFile = {} try: inboundSocksJSONFile["auth"] except KeyError as e: logbook.writeLog("InboundSocks", "KeyError", e) inboundSocksJSONFile["auth"] = "noauth" try: inboundSocksJSONFile["udp"] except KeyError as e: logbook.writeLog("InboundSocks", "KeyError", e) inboundSocksJSONFile["udp"] = False try: inboundSocksJSONFile["ip"] except KeyError as e: logbook.writeLog("InboundSocks", "KeyError", e) inboundSocksJSONFile["ip"] = "127.0.0.1" try: inboundSocksJSONFile["timeout"] except KeyError as e: logbook.writeLog("InboundSocks", "KeyError", e) inboundSocksJSONFile["timeout"] = 300 try: inboundSocksJSONFile["accounts"] except KeyError as e: logbook.writeLog("InboundSocks", "KeyError", e) inboundSocksJSONFile["accounts"] = [] accounts = False try: inboundSocksJSONFile["userLevel"] except KeyError as e: logbook.writeLog("InboundSocks", "KeyError", e) inboundSocksJSONFile["userLevel"] = 0 self.lineEditInboundSocksIP.setText(str(inboundSocksJSONFile["ip"])) self.checkBoxInboundSocksUDP.setChecked( bool(inboundSocksJSONFile["udp"])) try: self.spinBoxInboundSocksTimeout.setValue( int(inboundSocksJSONFile["timeout"])) except (TypeError, ValueError) as e: logbook.writeLog("InboundSocks", "ValueError or TypeError", e) self.spinBoxInboundSocksTimeout.setValue(300) try: self.spinBoxInboundSocksuserLevel.setValue( int(inboundSocksJSONFile["userLevel"])) except (TypeError, ValueError) as e: logbook.writeLog("InboundSocks", "ValueError or TypeError", e) self.spinBoxInboundSocksuserLevel.setValue(0) try: self.treasureChest.addLevel( self.spinBoxInboundSocksuserLevel.value()) except Exception: pass if (accounts): if (inboundSocksJSONFile["auth"] == "password"): self.groupBoxAuth.setChecked(True) accountsNumber = len(inboundSocksJSONFile["accounts"]) accounts = inboundSocksJSONFile["accounts"] if (accountsNumber): self.tableWidgetInboundSocksUser.setRowCount(accountsNumber) try: for i in range(0, accountsNumber): self.tableWidgetInboundSocksUser.setItem( i, 0, QTableWidgetItem(str(accounts[i]["user"]))) self.tableWidgetInboundSocksUser.setItem( i, 1, QTableWidgetItem(str(accounts[i]["pass"]))) self.tableWidgetInboundSocksUser.resizeColumnsToContents( ) except KeyError as e: logbook.writeLog("InboundSocks", "KeyError", e)
def settinghttpPanelFromJSONFile(self, httpJSONFile={}, openFromJSONFile=False): logbook.setisOpenJSONFile(openFromJSONFile) self.tableWidgetHttp.setRowCount(0) if (not httpJSONFile): httpJSONFile = {} try: httpJSONFile["timeout"] except KeyError as e: logbook.writeLog("http", "KeyError", e) httpJSONFile["timeout"] = 300 try: httpJSONFile["allowTransparent"] except KeyError as e: logbook.writeLog("http", "KeyError", e) httpJSONFile["allowTransparent"] = False try: httpJSONFile["accounts"] except KeyError as e: logbook.writeLog("http", "KeyError", e) httpJSONFile["accounts"] = {} try: httpJSONFile["userLevel"] except KeyError as e: logbook.writeLog("http", "KeyError", e) httpJSONFile["userLevel"] = 0 try: self.spinBoxHttpTimeout.setValue(int(self.httpJSONFile["timeout"])) except (ValueError, TypeError) as e: logbook.writeLog("http", "ValueError or TypeError", e) self.spinBoxHttpTimeout.setValue(300) try: self.checkBoxallowTransparent.setChecked( bool(httpJSONFile["allowTransparent"])) except (ValueError, TypeError) as e: logbook.writeLog("http", "ValueError or TypeError", e) self.checkBoxallowTransparent.setChecked(False) try: self.spinBoxHttpuserLevel.setValue(int(httpJSONFile["userLevel"])) except (ValueError, TypeError) as e: logbook.writeLog("http", "ValueError or TypeError", e) self.spinBoxHttpuserLevel.setValue(0) try: self.treasureChest.addLevel(self.spinBoxHttpuserLevel.value()) except Exception: pass accountsNumber = len(httpJSONFile["accounts"]) if (accountsNumber): accounts = httpJSONFile["accounts"] self.tableWidgetHttp.setRowCount(accountsNumber) self.groupBoxHttpAuth.setChecked(True) for i in range(accountsNumber): try: user = accounts[i]["user"] except Exception: user = "" try: password = accounts[i]["pass"] except Exception: password = "" self.tableWidgetHttp.setItem(i, 0, QTableWidgetItem(str(user))) self.tableWidgetHttp.setItem(i, 1, QTableWidgetItem(str(password))) self.tableWidgetHttp.resizeColumnsToContents() else: self.groupBoxHttpAuth.setChecked(False)
def settingInboundVmessPanelFromJSONFile(self, inboundVmessJSONFile=None, openFromJSONFile=False): logbook.setisOpenJSONFile(openFromJSONFile) detour = True defaultLevelAlterID = True client = True if (not inboundVmessJSONFile): inboundVmessJSONFile = {} try: inboundVmessJSONFile["detour"] inboundVmessJSONFile["detour"]["to"] except KeyError as e: logbook.writeLog("InboundVmess", "KeyError", e) inboundVmessJSONFile["detour"] = {} inboundVmessJSONFile["detour"]["to"] = "" detour = False try: inboundVmessJSONFile["disableInsecureEncryption"] except KeyError as e: logbook.writeLog("InboundVmess", "KeyError", e) inboundVmessJSONFile["disableInsecureEncryption"] = False try: inboundVmessJSONFile["default"] except KeyError as e: logbook.writeLog("InboundVmess", "KeyError", e) inboundVmessJSONFile["default"] = {} inboundVmessJSONFile["default"]["level"] = 10 inboundVmessJSONFile["default"]["alterId"] = 30 defaultLevelAlterID = False def settingdefaultLevelAlterID(level=10, alterid=30, default=True): self.spinBoxDefaultLevel.setValue(level) self.spinBoxDefaultAlterID.setValue(alterid) self.groupBoxDefault.setChecked(default) try: self.treasureChest.addLevel(self.spinBoxDefaultLevel.value()) except Exception: pass try: inboundVmessJSONFile["clients"] except KeyError as e: logbook.writeLog("InboundVmess", "KeyError", e) inboundVmessJSONFile["clients"] = [] client = False if (inboundVmessJSONFile["disableInsecureEncryption"]): self.checkBoxdisableInsecureEncryption.setChecked(True) if (detour): self.comboBoxInVmessInboundTags.insertItem( self.comboBoxInVmessInboundTags.currentIndex(), str(inboundVmessJSONFile["detour"]["to"])) self.comboBoxInVmessInboundTags.setCurrentText( str(inboundVmessJSONFile["detour"]["to"])) if (defaultLevelAlterID): try: settingdefaultLevelAlterID( int(inboundVmessJSONFile["default"]["level"]), int(inboundVmessJSONFile["default"]["alterId"]), True) except KeyError as e: logbook.writeLog("InboundVmess Default Level and AlterID", "KeyError", e) settingdefaultLevelAlterID() except (TypeError, ValueError) as e: logbook.writeLog("InboundVmess Default Level and AlterID", "ValueError or TypeError", e) settingdefaultLevelAlterID() elif (not defaultLevelAlterID): settingdefaultLevelAlterID(default=False) if (client): self.groupBoxClientsSetting.setChecked(True) clientsNumber = len(inboundVmessJSONFile["clients"]) clients = inboundVmessJSONFile["clients"] if (clientsNumber): for r, i in enumerate(clients): self.model.setRowCount(r + 1) self.setRowData(r, i["email"], i["level"], i["alterId"], i["id"]) try: self.treasureChest.addLevel(int(i["level"])) self.treasureChest.addLevel(int(i["email"])) except Exception: pass else: self.groupBoxClientsSetting.setChecked(False) else: self.groupBoxClientsSetting.setChecked(False)
def settingdokodemodoorPanelFromJSONFile(self, dokodemodoorJSONFile={}, openFromJSONFile=False): logbook.setisOpenJSONFile(openFromJSONFile) if (not dokodemodoorJSONFile): dokodemodoorJSONFile = {} try: dokodemodoorJSONFile["address"] except KeyError as e: logbook.writeLog("dokodemodoor", "KeyError", e) dokodemodoorJSONFile["address"] = "" try: dokodemodoorJSONFile["port"] except KeyError as e: logbook.writeLog("dokodemodoor", "KeyError", e) dokodemodoorJSONFile["port"] = 443 try: dokodemodoorJSONFile["network"] except KeyError as e: logbook.writeLog("dokodemodoor", "KeyError", e) dokodemodoorJSONFile["network"] = "" try: dokodemodoorJSONFile["timeout"] except KeyError as e: logbook.writeLog("dokodemodoor", "KeyError", e) dokodemodoorJSONFile["timeout"] = 300 try: dokodemodoorJSONFile["followRedirect"] except KeyError as e: logbook.writeLog("dokodemodoor", "KeyError", e) dokodemodoorJSONFile["followRedirect"] = False try: dokodemodoorJSONFile["userLevel"] except KeyError as e: logbook.writeLog("dokodemodoor", "KeyError", e) dokodemodoorJSONFile["userLevel"] = 0 self.lineEditDokodemodoorAddress.setText( str(dokodemodoorJSONFile["address"])) try: self.spinBoxDokodemodoorPort.setValue( int(dokodemodoorJSONFile["port"])) except (ValueError, TypeError) as e: logbook.writeLog("dokodemodoor", "ValueError or TypeError", e) self.spinBoxDokodemodoorPort.setValue(443) try: self.spinBoxDokodemodoorTimeout.setValue( int(dokodemodoorJSONFile["timeout"])) except (ValueError, TypeError) as e: logbook.writeLog("dokodemodoor", "ValueError or TypeError", e) self.spinBoxDokodemodoorTimeout.setValue(300) self.checkBoxDokodemodoorFollowRedirect.setChecked( bool(dokodemodoorJSONFile["followRedirect"])) try: self.spinBoxDokodemodooruserLevel.setValue( int(dokodemodoorJSONFile["userLevel"])) except (ValueError, TypeError) as e: logbook.writeLog("dokodemodoor", "ValueError or TypeError", e) self.spinBoxDokodemodooruserLevel.setValue(0) try: self.treasureChest.addLevel( self.spinBoxDokodemodooruserLevel.value()) except Exception: pass udp = re.search("udp", dokodemodoorJSONFile["network"].lower()) tcp = re.search("tcp", dokodemodoorJSONFile["network"].lower()) if (bool(tcp)): self.checkBoxDokodemodoorTCP.setChecked(True) if (bool(udp)): self.checkBoxDokodemodoorUDP.setChecked(True)
def settingInboundShadowsocksPanelFromJSONFile( self, inboundShadowsocksJSONFile=None, openFromJSONFile=False): logbook.setisOpenJSONFile(openFromJSONFile) if (not inboundShadowsocksJSONFile): inboundShadowsocksJSONFile = {} try: inboundShadowsocksJSONFile["email"] except KeyError as e: logbook.writeLog("InboundShadowsocks", "KeyError", e) inboundShadowsocksJSONFile["email"] = "" try: inboundShadowsocksJSONFile["method"] except KeyError as e: logbook.writeLog("InboundShadowsocks", "KeyError", e) inboundShadowsocksJSONFile["method"] = "" try: inboundShadowsocksJSONFile["password"] except KeyError as e: logbook.writeLog("InboundShadowsocks", "KeyError", e) inboundShadowsocksJSONFile["password"] = "" try: inboundShadowsocksJSONFile["udp"] except KeyError as e: logbook.writeLog("InboundShadowsocks", "KeyError", e) inboundShadowsocksJSONFile["udp"] = False try: inboundShadowsocksJSONFile["level"] except KeyError as e: logbook.writeLog("InboundShadowsocks", "KeyError", e) inboundShadowsocksJSONFile["level"] = 1 try: inboundShadowsocksJSONFile["ota"] except KeyError as e: logbook.writeLog("InboundShadowsocks", "KeyError", e) inboundShadowsocksJSONFile["ota"] = True try: inboundShadowsocksJSONFile["network"] except KeyError as e: logbook.writeLog("InboundShadowsocks", "KeyError", e) inboundShadowsocksJSONFile["network"] = "tcp" self.lineEditInboundShadowsocksEmail.setText( str(inboundShadowsocksJSONFile["email"])) self.comboBoxInboundShadowsocksMethod.setCurrentText( str(inboundShadowsocksJSONFile["method"])) self.lineEditInboundShadowsocksPassowrd.setText( str(inboundShadowsocksJSONFile["password"])) self.checkBoxInboundShadowsocksUDP.setChecked( bool(inboundShadowsocksJSONFile["udp"])) self.checkBoxInboundShadowsocksOTA.setChecked( bool(inboundShadowsocksJSONFile["ota"])) try: self.spinBoxInboundShadowsocksLevel.setValue( int(inboundShadowsocksJSONFile["level"])) except (TypeError, ValueError) as e: logbook.writeLog("InboundShadowsocks", "KeyError", e) self.spinBoxInboundShadowsocksLevel.setValue(1) try: self.treasureChest.addLevel( self.spinBoxInboundShadowsocksLevel.value()) self.treasureChest.addEmail( self.lineEditInboundShadowsocksEmail.text()) except Exception: pass network = [ x.strip() for x in str(inboundShadowsocksJSONFile["network"]).split(",") ] if (network): if "tcp" in network: self.checkBoxNewtworkTCP.setChecked(True) else: self.checkBoxNewtworkTCP.setChecked(False) if "udp" in network: self.checkBoxNewtworkUDP.setChecked(True) else: self.checkBoxNewtworkUDP.setChecked(False)
def settingInboundVmessPanelFromJSONFile(self, inboundVmessJSONFile = {}, openFromJSONFile = False): logbook.setisOpenJSONFile(openFromJSONFile) self.tableWidgetInVmessUser.setRowCount(0) detour = True; defaultLevelAlterID = True; client = True if (not inboundVmessJSONFile): inboundVmessJSONFile ={} try: inboundVmessJSONFile["detour"] inboundVmessJSONFile["detour"]["to"] except KeyError as e: logbook.writeLog("InboundVmess", "KeyError", e) inboundVmessJSONFile["detour"] = {} inboundVmessJSONFile["detour"]["to"] = "" detour = False try: inboundVmessJSONFile["disableInsecureEncryption"] except KeyError as e: logbook.writeLog("InboundVmess", "KeyError", e) inboundVmessJSONFile["disableInsecureEncryption"] = False try: inboundVmessJSONFile["default"] except KeyError as e: logbook.writeLog("InboundVmess", "KeyError", e) inboundVmessJSONFile["default"] = {} inboundVmessJSONFile["default"]["level"] = 10 inboundVmessJSONFile["default"]["alterId"] = 30 defaultLevelAlterID = False def settingdefaultLevelAlterID(level = 10, alterid = 30, default = True): self.spinBoxDefaultLevel.setValue(level) self.spinBoxDefaultAlterID.setValue(alterid) self.groupBoxDefault.setChecked(default) try: self.treasureChest.addLevel(self.spinBoxDefaultLevel.value()) except Exception: pass try: inboundVmessJSONFile["clients"] except KeyError as e: logbook.writeLog("InboundVmess", "KeyError", e) inboundVmessJSONFile["clients"] = [] client = False if (inboundVmessJSONFile["disableInsecureEncryption"]): self.checkBoxdisableInsecureEncryption.setChecked(True) if (detour): self.comboBoxInVmessInboundTags.insertItem(self.comboBoxInVmessInboundTags.currentIndex(), str(inboundVmessJSONFile["detour"]["to"])) self.comboBoxInVmessInboundTags.setCurrentText(str(inboundVmessJSONFile["detour"]["to"])) if (defaultLevelAlterID): try: settingdefaultLevelAlterID(int(inboundVmessJSONFile["default"]["level"]), int(inboundVmessJSONFile["default"]["alterId"]), True) except KeyError as e: logbook.writeLog("InboundVmess Default Level and AlterID", "KeyError", e) settingdefaultLevelAlterID() except (TypeError, ValueError) as e: logbook.writeLog("InboundVmess Default Level and AlterID", "ValueError or TypeError", e) settingdefaultLevelAlterID() elif (not defaultLevelAlterID): settingdefaultLevelAlterID(default = False) if (client): self.groupBoxClientsSetting.setChecked(True) clientsNumber = len(inboundVmessJSONFile["clients"]) clients = inboundVmessJSONFile["clients"] if (clientsNumber > 0): self.tableWidgetInVmessUser.setRowCount(clientsNumber) for i in range(clientsNumber): try: email = QTableWidgetItem(str(clients[i]["email"])) except Exception: email = QTableWidgetItem("") try: level = QTableWidgetItem(str(clients[i]["level"])) except Exception: level = QTableWidgetItem("") try: alterID = QTableWidgetItem(str(clients[i]["alterId"])) except Exception: alterID = QTableWidgetItem("") try: uuidStr = QTableWidgetItem(str(clients[i]["id"])) except Exception: uuidStr = QTableWidgetItem("") self.tableWidgetInVmessUser.setItem(i, 0, email) self.tableWidgetInVmessUser.setItem(i, 1, level) self.tableWidgetInVmessUser.setItem(i, 2, alterID) self.tableWidgetInVmessUser.setItem(i, 3, uuidStr) self.tableWidgetInVmessUser.resizeColumnsToContents() try:self.treasureChest.addLevel(clients[i]["level"]) except Exception: pass try: self.treasureChest.addEmail(clients[i]["email"]) except Exception: pass else: self.groupBoxClientsSetting.setChecked(False) else: self.groupBoxClientsSetting.setChecked(False)
def settingInboundShadowsocksPanelFromJSONFile( self, inboundShadowsocksJSONFile={}, openFromJSONFile=False): logbook.setisOpenJSONFile(openFromJSONFile) if (inboundShadowsocksJSONFile == None): inboundShadowsocksJSONFile = {} try: inboundShadowsocksJSONFile["email"] except KeyError as e: logbook.writeLog("InboundShadowsocks", "KeyError", e) inboundShadowsocksJSONFile["email"] = "" try: inboundShadowsocksJSONFile["method"] except KeyError as e: logbook.writeLog("InboundShadowsocks", "KeyError", e) inboundShadowsocksJSONFile["method"] = "" try: inboundShadowsocksJSONFile["password"] except KeyError as e: logbook.writeLog("InboundShadowsocks", "KeyError", e) inboundShadowsocksJSONFile["password"] = "" try: inboundShadowsocksJSONFile["udp"] except KeyError as e: logbook.writeLog("InboundShadowsocks", "KeyError", e) inboundShadowsocksJSONFile["udp"] = False try: inboundShadowsocksJSONFile["level"] except KeyError as e: logbook.writeLog("InboundShadowsocks", "KeyError", e) inboundShadowsocksJSONFile["level"] = 1 try: inboundShadowsocksJSONFile["ota"] except KeyError as e: logbook.writeLog("InboundShadowsocks", "KeyError", e) inboundShadowsocksJSONFile["ota"] = True self.lineEditInboundShadowsocksEmail.setText( str(inboundShadowsocksJSONFile["email"])) self.comboBoxInboundShadowsocksMethod.setCurrentText( str(inboundShadowsocksJSONFile["method"])) self.lineEditInboundShadowsocksPassowrd.setText( str(inboundShadowsocksJSONFile["password"])) self.checkBoxInboundShadowsocksUDP.setChecked( bool(inboundShadowsocksJSONFile["udp"])) self.checkBoxInboundShadowsocksOTA.setChecked( bool(inboundShadowsocksJSONFile["ota"])) try: self.spinBoxInboundShadowsocksLevel.setValue( int(inboundShadowsocksJSONFile["level"])) except (TypeError, ValueError) as e: logbook.writeLog("InboundShadowsocks", "KeyError", e) self.spinBoxInboundShadowsocksLevel.setValue(1) try: self.treasureChest.addLevel( self.spinBoxInboundShadowsocksLevel.value()) self.treasureChest.addEmail( self.lineEditInboundShadowsocksEmail.text()) except Exception: pass