Esempio n. 1
0
 def AddTabPanel(self):
     text, ok = QtWidgets.QInputDialog.getText(self, '创建分区', '名称')
     for i in self.TabPanels:
         if text == i.objectName():
             errorInfo(self, '不能创建两个相同的分区!')
             return
     if ok:
         button = self.TabAreaPanel.addButton(text)
         panel = ResizablePanel()
         panel.setObjectName(text)
         self.TabStack.addWidget(panel)
         self.TabPanels.append(panel)
         button.clicked.connect(lambda: self.ChangeTab(button, panel))
         button.Deleted.connect(lambda: self.DeletePanel(panel))
         panel.TheAddButton.clicked.connect(
             lambda: self.AddTabPanelButton(panel))
         panel.DropFileSignal.connect(
             lambda s: self.AddTabPanelButtonDrop(s, panel))
         self.FileButtons.append(panel.Buttons)
         conn = sqlite3.connect('./Resources/DIY.sqlite')
         cu = conn.cursor()
         cu.execute('CREATE TABLE \'' + text +
                    '\' (BTNNAME TEXT, FILEPATH TEXT );')
         conn.commit()
         conn.close()
Esempio n. 2
0
 def EscapeDecode(self):
     try:
         self.EscapeTextBox.setText(
             parse.unquote(self.EscapeCipherBox.toPlainText().replace(
                 '%u', '\\u').encode().decode('unicode-escape')))
     except:
         errorInfo(self, '解码失败.')
Esempio n. 3
0
 def TapDecode(self):
     retable = [['A', 'B', '(C/K)', 'D', 'E'],
                ['F', 'G', 'H', 'I', 'J'],
                ['L', 'M', 'N', 'O', 'P'],
                ['Q', 'R', 'S', 'T', 'U'],
                ['V', 'W', 'X', 'Y', 'Z']]
     text = self.TapCipherBox.toPlainText()
     output = ''
     temp1 = ''
     temp2 = ''
     try:
         for i in text:
             if len(temp1) == 1 and len(temp2) == 1:
                 output += retable[int(temp1) - 1][int(temp2) - 1]
                 temp1 = ''
                 temp2 = ''
             if '1' <= i <= '5':
                 if len(temp1) == 1:
                     temp2 = i
                 else:
                     temp1 = i
         if len(temp1) == 1 and len(temp2) == 1:
             output += retable[int(temp1)][int(temp2)]
         self.TapTextBox.setText(output)
     except:
         errorInfo(self, '解码出现错误!')
Esempio n. 4
0
 def EscapeEncode(self):
     try:
         self.EscapeCipherBox.setText(
             parse.quote(self.EscapeTextBox.toPlainText().encode(
                 'unicode-escape')).replace('%5Cu', '%u'))
     except:
         errorInfo(self, '编码失败.')
Esempio n. 5
0
 def HTMLDecode(self):
     text = self.HTMLCipherBox.toPlainText()
     try:
         output = html.unescape(text)
         self.HTMLTextBox.setText(output)
     except:
         errorInfo(self, '解码时出现错误!')
Esempio n. 6
0
 def QuoteDec(self):
     text = self.QuoteCipherBox.toPlainText()
     try:
         cipher = quopri.decodestring(text)
     except:
         errorInfo(self, '解码时出现错误!')
         return
     try:
         self.QuoteTextBox.setText(cipher.decode())
     except:
         self.QuoteTextBox.setText(str(cipher))
Esempio n. 7
0
 def MorseDecode(self):
     spilt = self.MorseSpiltBox.text()
     if spilt == '':
         spilt = ' '
     elif spilt.find('.') != -1 or spilt.find('-') != -1:
         errorInfo(self, '分隔符含有摩斯电码字符!')
         return
     try:
         self.MorseTextBox.setText(MorseDecode(
             self.MorseCipherBox.toPlainText(), spilt, self.MorseChineseCheckBox.isChecked()))
     except:
         errorInfo(self, '解码出现错误!')
Esempio n. 8
0
 def HexDecode(self):
     text = self.HexCipherBox.toPlainText()
     try:
         temp = []
         if self.HexSplitBox.text() != '':
             temp = text.split(self.HexSplitBox.text())
         else:
             temp = text.split()
         output = ''.join(temp)
         self.HexTextBox.setText(hex2char(output).decode())
     except:
         errorInfo(self, '解码时出现错误!')
Esempio n. 9
0
 def QuoteCipherInputFunction(self):
     self.QuoteCipherInputPath, filetype = \
         QtWidgets.QFileDialog.getOpenFileName(self,
                                               "选取文件",
                                               '',
                                               "All Files (*);;Text Files (*.txt)")
     if self.QuoteCipherInputPath == "":
         return
     with open(self.QuoteCipherInputPath, 'r') as inp:
         try:
             self.QuoteCipherBox.setText(inp.read())
         except:
             errorInfo(self, '文件读取错误.')
Esempio n. 10
0
 def HexEncode(self):
     text = self.HexTextBox.toPlainText()
     try:
         temp = char2hex(text).decode()
         j = 0
         output = ''
         for i in temp:
             if j % 2 == 0:
                 output += self.HexSplitBox.text()
             output += i
             j += 1
         self.HexCipherBox.setText(output)
     except:
         errorInfo(self, '编码时出现错误!')
Esempio n. 11
0
 def QuoteEnc(self):
     if self.QuoteTextEvalCheckBox.isChecked():
         try:
             text = eval(self.QuoteTextBox.toPlainText())
         except:
             errorInfo(
                 self,
                 '编码表无效或者要解码的字符串不是合法的编码字符串!!\nTable or Cipher Error!!!!!!!')
             return
     else:
         text = self.QuoteTextBox.toPlainText().encode()
     try:
         cipher = quopri.encodestring(text).decode()
     except:
         errorInfo(self, '编码时出现错误!')
         return
     self.QuoteCipherBox.setText(cipher)
Esempio n. 12
0
 def AddTabPanelButtonDrop(self, path, panel):
     osinfo = platform.system()
     if osinfo == 'Windows':
         splitChr = '\\'
     else:
         splitChr = '/'
     name = path.split(splitChr)[-1]
     self.AddTabPanelButtonFile(panel, path, name)
     conn = sqlite3.connect('./Resources/DIY.sqlite')
     cu = conn.cursor()
     try:
         cu.execute('INSERT INTO \'' + panel.objectName() +
                    '\' (BTNNAME, FILEPATH) VALUES (\'' + name + '\',\'' +
                    path + '\')')
         conn.commit()
     except:
         errorInfo('添加失败!\n请检查是否有重复项!')
     conn.close()
Esempio n. 13
0
 def AddTabPanelButton(self, panel):
     file, ok = QtWidgets.QFileDialog.getOpenFileName(
         self, "选取文件", '', "All Files (*)")
     if ok:
         name, ok = QtWidgets.QInputDialog.getText(self, '创建启动按钮', '名称')
         conn = sqlite3.connect('./Resources/DIY.sqlite')
         cu = conn.cursor()
         try:
             cu.execute('INSERT INTO \'' + panel.objectName() +
                        '\' (BTNNAME, FILEPATH) VALUES (\'' + name +
                        '\',\'' + file + '\')')
             conn.commit()
         except:
             errorInfo('添加失败!\n请检查是否有重复项!')
         conn.close()
         button = panel.addButton(name)
         button.clicked.connect(lambda: self.OpenFile(file))
         button.Deleted.connect(lambda: self.DeleteTabPanelButton(panel))
         button.EditNameSignal.connect(
             lambda: self.EditButtonName(panel, button))
Esempio n. 14
0
 def TapEncode(self):
     table = {'A': 11, 'B': 12, 'C': 13, 'D': 14, 'E': 15,
              'F': 21, 'G': 22, 'H': 23, 'I': 24, 'J': 25,
              'L': 31, 'M': 32, 'N': 33, 'O': 34, 'P': 35,
              'Q': 41, 'R': 42, 'S': 43, 'T': 44, 'U': 45,
              'V': 51, 'W': 52, 'X': 53, 'Y': 54, 'Z': 55,
              'a': 11, 'b': 12, 'c': 13, 'd': 14, 'e': 15,
              'f': 21, 'g': 22, 'h': 23, 'i': 24, 'j': 25,
              'l': 31, 'm': 32, 'n': 33, 'o': 34, 'p': 35,
              'q': 41, 'r': 42, 's': 43, 't': 44, 'u': 45,
              'v': 51, 'w': 52, 'x': 53, 'y': 54, 'z': 55,
              'K': 13, 'k': 13}
     text = self.TapTextBox.toPlainText()
     output = ''
     try:
         for i in text:
             output += str(table[i]) + ' '
         self.TapCipherBox.setText(output)
     except:
         errorInfo(self, '编码出现错误!')
Esempio n. 15
0
 def HashEncode(self):
     if self.HashTextInputFlag:
         self.MD5ValueBox.setText(
             str(generate_file_md5(self.HashTextInputPath)))
         self.SHA1ValueBox.setText(
             str(generate_file_sha1(self.HashTextInputPath)))
         self.SHA224ValueBox.setText(
             str(generate_file_sha224(self.HashTextInputPath)))
         self.SHA256ValueBox.setText(
             str(generate_file_sha256(self.HashTextInputPath)))
         self.SHA384ValueBox.setText(
             str(generate_file_sha384(self.HashTextInputPath)))
         self.SHA512ValueBox.setText(
             str(generate_file_sha512(self.HashTextInputPath)))
         self.SHA3224ValueBox.setText(
             str(generate_file_sha3_224(self.HashTextInputPath)))
         self.SHA3256ValueBox.setText(
             str(generate_file_sha3_256(self.HashTextInputPath)))
         self.SHA3384ValueBox.setText(
             str(generate_file_sha3_384(self.HashTextInputPath)))
         self.SHA3512ValueBox.setText(
             str(generate_file_sha3_512(self.HashTextInputPath)))
         self.HashTextInputPath = ''
         self.HashTextInputFlag = False
         self.HashTextBox.setText('')
     else:
         if self.HashEvalCheckBox.isChecked():
             try:
                 text = eval(self.HashTextBox.toPlainText())
             except:
                 errorInfo(self, 'Eval执行失败!\n非有效Python语句!')
                 return
         else:
             try:
                 text = self.HashTextBox.toPlainText()
                 text = text.encode(self.HashEncodingBox.text())
             except:
                 errorInfo(self, '无效的编码!')
                 return
         try:
             salt = int(self.HashSaltBox.text())
         except:
             salt = 0
             if self.HashSaltBox.text() != '':
                 errorInfo(self, '加盐的长度不应该包含除了数字之外的符号!')
         self.HashValueBox.setText(hex(hash(text + addSalt(salt))))
         self.MD5ValueBox.setText(str(generate_md5(text, salt)))
         self.SHA1ValueBox.setText(str(generate_sha1(text, salt)))
         self.SHA224ValueBox.setText(str(generate_sha224(text, salt)))
         self.SHA256ValueBox.setText(str(generate_sha256(text, salt)))
         self.SHA384ValueBox.setText(str(generate_sha384(text, salt)))
         self.SHA512ValueBox.setText(str(generate_sha512(text, salt)))
         self.SHA3224ValueBox.setText(str(generate_sha3_224(text, salt)))
         self.SHA3256ValueBox.setText(str(generate_sha3_256(text, salt)))
         self.SHA3384ValueBox.setText(str(generate_sha3_384(text, salt)))
         self.SHA3512ValueBox.setText(str(generate_sha3_512(text, salt)))
Esempio n. 16
0
 def set_value(self, path):
     """设置编辑器内容"""
     import base64
     try:
         data = open(path, 'r', encoding='UTF-8').read()
     except:
         traceback.print_exc()
         errorInfo(self, '所选文件不是文本文件.')
         return
     data = base64.b64encode(data.encode())
     data = data.decode()
     self.path = path
     self.page().runJavaScript(
         "monaco.editor.getModels()[0].setValue(Base64.decode('{}'))".format(data))
     if path[-3:] == '.py':
         self.change_language('python')
     elif path[-3:] == '.md':
         self.change_language('markdown')
     elif path[-3:] == '.js':
         self.change_language('jsvascript')
     elif path[-3:] == '.json':
         self.change_language('json')
     else:
         self.change_language('text')