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)
Esempio n. 2
0
    def settingfreedomPanelFromJSONFile(self,
                                        freedomJSONFile={},
                                        openFromJSONFile=False):
        logbook.setisOpenJSONFile(openFromJSONFile)

        if (freedomJSONFile == None): 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 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 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)
Esempio n. 5
0
    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))
Esempio n. 6
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))
Esempio n. 7
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)
Esempio n. 8
0
    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)
Esempio n. 9
0
    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)
Esempio n. 11
0
    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)
Esempio n. 12
0
    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