コード例 #1
0
ファイル: import_shell_ui.py プロジェクト: vsyour/pyShell
    def import_shell(self):
        def result(num):
            QMessageBox.critical(self, 'pyshell', "添加完成,成功%s,失败%s" % (num[0], num[0] ^ num[1]))
            start_runnable(self.main.refresh_table_item, lambda x: x)

        separator = self.ui.lineEdit_2.text()
        start_runnable(load_from_file, result, filename=self.filename, separator=separator)
コード例 #2
0
    def init_linker(self):
        def start():
            return Caidao.Caidao(self.siteurl, self.sitepass)

        def getresult(obj):
            self.linker = obj

        start_runnable(start, getresult)
コード例 #3
0
    def delete_file(self):
        @iscomplete
        def setresult(result):
            self.refresh()

        filename = self.get_filename_from_tablewig()
        start_runnable(self.linker.delete_file,
                       setresult,
                       remote_path=filename)
コード例 #4
0
ファイル: cmd_ui.py プロジェクト: vsyour/pyShell
 def execute_cmd(self):  # shell命令
     command = self.ui.parameter_0.currentText().strip()
     self.display_info_to_panel(command, command=True)
     if not command:
         return
     self.ui.parameter_2.setText(command)
     self.ui.parameter_0.addItem(command)
     self.ui.parameter_0.setCurrentText("")
     start_runnable(self.ui.linker.exec_command, self.display_info_to_panel, cmd=command)
コード例 #5
0
ファイル: export_shell_ui.py プロジェクト: vsyour/pyShell
    def export_shell(self):
        def result(num):
            QMessageBox.critical(self, 'pyshell', "导出%s条" % (num))

        separator = self.ui.lineEdit_2.text()
        start_runnable(export_shell_file,
                       result,
                       filename=self.filename,
                       separator=separator)
コード例 #6
0
 def get_item_form_folder(self, folder, flush=False):
     if flush:
         start_runnable(self.linker.get_folder_list,
                        lambda x: self.add_item_to_filetable(x, folder),
                        folder=folder,
                        flush=True)
     else:
         start_runnable(self.linker.get_folder_list,
                        lambda x: self.add_item_to_filetable(x, folder),
                        folder=folder,
                        flush=False)
コード例 #7
0
    def get_baseinfo_from_server(self):  # 类初始化线程
        @iscomplete
        def setresult(window, obj):
            self.linker = obj
            self.current_folder = self.linker.current_folder
            self.get_item_form_folder(self.current_folder)

        def loadcaidao():
            return Caidao.Caidao(self.siteurl, self.sitepass)

        start_runnable(loadcaidao, lambda x: setresult(self, x))
コード例 #8
0
    def new_file(self):
        @iscomplete
        def setresult(result):
            self.refresh()

        text, okPressed = QInputDialog.getText(self, "pyshell",
                                               "pls input new file name:",
                                               QLineEdit.Normal, " ")
        if okPressed and text.strip():
            filename = self.ui.ComPath.currentText().strip(
            ) + self.linker.separator + text
            start_runnable(self.linker.new_file, setresult, filename=filename)
コード例 #9
0
ファイル: cmd_ui.py プロジェクト: vsyour/pyShell
    def get_metadata_from_server(self):
        def start():
            return Caidao.Caidao(self.siteurl, self.sitepass)

        def getresult(obj):
            self.linker = obj
            self.ui.parameter_1.setText("/bin/sh")
            self.ui.parameter_2.setText("netstat -an | grep ESTABLISHED")  # 设置当前内容
            self.ui.parameter_0.addItem("netstat -an | grep ESTABLISHED")  # 添加到下拉列表
            self.execute_cmd()

        start_runnable(start, getresult)
コード例 #10
0
    def rename_file(self):
        @iscomplete
        def setresult(result):
            self.refresh()

        old = self.get_filename_from_tablewig()
        text, okPressed = QInputDialog.getText(self, "pyshell",
                                               "pls input new name:",
                                               QLineEdit.Normal, " ")
        if okPressed and text.strip():
            new = self.ui.ComPath.currentText().strip(
            ) + self.linker.separator + text
            start_runnable(self.linker.rename, setresult, src=old, dst=new)
コード例 #11
0
    def upload_file(self):
        @iscomplete
        def setresult(result):
            self.refresh()

        options = QFileDialog.Options()
        options |= QFileDialog.DontUseNativeDialog
        fileName, _ = QFileDialog.getOpenFileName(
            self,
            "QFileDialog.getOpenFileName()",
            "",
            "All Files (*);;Python Files (*.py)",
            options=options)
        if fileName:
            _, remote_fileName = os.path.split(fileName)
            start_runnable(self.linker.upload_file,
                           setresult,
                           remote_file=remote_fileName,
                           local_file=fileName)
コード例 #12
0
    def batch_text(self):
        self.successed = 0
        self.failed = 0
        self.failed_list = []

        def result(res):
            if res[0]:
                self.successed += 1
            else:
                self.failed += 1
                self.failed_list.append(res[1])

            self.cls.statusBar.showMessage(
                "批量测试中 %s/%s" %
                (self.successed + self.failed, len(rows.selectedRows())), 3000)
            if self.successed + self.failed >= len(rows.selectedRows()):
                QMessageBox.critical(
                    self.cls, 'pyshell', "批量测试完成,成功%s,失败%s,正在删除失效shell" %
                    (self.successed, self.failed))
                if self.failed_list:
                    for i in self.failed_list:
                        id = self.cls.ui.tableWidget.item(i, 0).text()
                        self.db.delete(int(id))
                        self.cls.ui.tableWidget.removeRow(i)
                    else:
                        QMessageBox.information(self.cls, 'pyshell',
                                                "删除失效shell成功")

        rows = self.cls.ui.tableWidget.selectionModel()
        for row in rows.selectedRows():
            id = self.cls.ui.tableWidget.item(row.row(), 0).text()
            url = db().get(int(id)).shell
            passwd = db().get(int(id)).passwd
            start_runnable(test_shell,
                           result,
                           url=url,
                           passwd=passwd,
                           type="php",
                           row=row.row())
コード例 #13
0
ファイル: main_view.py プロジェクト: vsyour/pyShell
    def tableWidget_ini(self):
        self.db = db()
        self.tableWidget.setColumnCount(7)  # 列
        self.tableWidget.setRowCount(0)  # 行  len(node)
        self.tableWidget.setHorizontalHeaderLabels(
            ['ID', '-', '网址', 'IP/物理位置', '备注', 'insert', 'update'])
        self.tableWidget.setColumnWidth(0, 0)  # 设置表格的各列的宽度值
        self.tableWidget.setColumnWidth(1, 40)  # 设置表格的各列的宽度值
        self.tableWidget.setColumnWidth(2, 300)  # 设置表格的各列的宽度值
        self.tableWidget.setColumnWidth(3, 290)  # 设置表格的各列的宽度值
        self.tableWidget.setColumnWidth(4, 90)  # 设置表格的各列的宽度值
        self.tableWidget.setColumnWidth(5, 150)  # 设置表格的各列的宽度值
        self.tableWidget.setColumnWidth(6, 150)  # 设置表格的各列的宽度值
        self.tableWidget.setRowHeight(0, 23)
        self.tableWidget.setEditTriggers(
            QTableWidget.NoEditTriggers)  # 设置表格的单元为只读属性,即不能编辑
        self.tableWidget.setSelectionBehavior(
            QTableWidget.SelectRows)  # 点击选择是选择行//设置选中时为整行选中
        self.tableWidget.setAlternatingRowColors(True)  # 还是只可以选择单行(单列)
        self.tableWidget.verticalHeader().hide()  # 隐藏行头

        start_runnable(self.refresh_table_item, lambda x: x)
コード例 #14
0
 def save_file(self):
     content = self.ui.data_textEdit.toPlainText()
     filename = self.ui.name_lineEdit.text().strip()
     start_runnable(self.linker.save_file, lambda x: x, filename=filename, content=content)
     self.main_ui.statusBar.showMessage("saved file success", 2000)
コード例 #15
0
 def dis_file_to_panel(self):
     self.ui.name_lineEdit.setText(self.remote_file)
     start_runnable(self.linker.read_file, self.display, item=self.remote_file)
コード例 #16
0
 def exc_code(self):
     content = self.ui.textEdit.toPlainText()
     start_runnable(self.linker.raw,
                    lambda x: self.ui.messages.setPlainText(x),
                    data=content)
コード例 #17
0
ファイル: import_shell_ui.py プロジェクト: vsyour/pyShell
 def result(num):
     QMessageBox.critical(self, 'pyshell', "添加完成,成功%s,失败%s" % (num[0], num[0] ^ num[1]))
     start_runnable(self.main.refresh_table_item, lambda x: x)