From 46c4928b8706b9de06f312cc3905b48595e1bdaf Mon Sep 17 00:00:00 2001 From: yv1ing Date: Sun, 9 Feb 2025 22:31:17 +0800 Subject: [PATCH] Fixed some bugs and packaged them into executable files --- app/ui.py | 10 +++++++--- app/utils.py | 2 +- audit/__init__.py | 1 - build.bat | 1 + logo.ico | Bin 0 -> 4865 bytes main.py | 10 ++++++++++ 6 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 build.bat create mode 100644 logo.ico diff --git a/app/ui.py b/app/ui.py index 522bbd0..ed1b5fa 100644 --- a/app/ui.py +++ b/app/ui.py @@ -146,7 +146,7 @@ class MainWindow(QWidget): main_layout.addLayout(output_layout) self.setLayout(main_layout) - self.setWindowTitle('MollyAudit - created by yvling') + self.setWindowTitle('茉莉审计 - by yvling') screen = QGuiApplication.primaryScreen().geometry() window_width = 1000 window_height = 600 @@ -156,9 +156,13 @@ class MainWindow(QWidget): # 导出结果 export_button_layout = QHBoxLayout() + link_label = QLabel('联系作者:Github Email') + link_label.setOpenExternalLinks(True) + export_button_layout.addWidget(link_label) + export_button_layout.addStretch(1) + self.export_button = QPushButton('导出结果') self.export_button.clicked.connect(self.export_result) - export_button_layout.addStretch(1) # 添加伸缩项,使按钮靠右 export_button_layout.addWidget(self.export_button) main_layout.addLayout(export_button_layout) @@ -268,4 +272,4 @@ class MainWindow(QWidget): del os.environ['OPENAI_API_BASE'] if 'OPENAI_API_KEY' in os.environ: del os.environ['OPENAI_API_KEY'] - self.log.info('已终止代码审计流程') + self.log.critical('已终止代码审计流程') diff --git a/app/utils.py b/app/utils.py index 0a5dd21..ef71eca 100644 --- a/app/utils.py +++ b/app/utils.py @@ -3,5 +3,5 @@ import datetime def get_now_date(): now = datetime.datetime.now() - formatted = now.strftime("%Y-%m-%d %H:%M:%S") + formatted = now.strftime("%Y-%m-%d-%H-%M-%S") return formatted diff --git a/audit/__init__.py b/audit/__init__.py index d189872..9bc8d7d 100644 --- a/audit/__init__.py +++ b/audit/__init__.py @@ -26,7 +26,6 @@ class Audit: def __init__(self, base_url, api_key, reasoning_model, embedding_model, process_output_callback, result_output_callback): self.raw_chain = None self.source_files_list = [] - self.max_token = 4096 self.reasoning_model = reasoning_model self.embedding_model = embedding_model self.fortify_rules = FROTIFY_RULES diff --git a/build.bat b/build.bat new file mode 100644 index 0000000..d55635d --- /dev/null +++ b/build.bat @@ -0,0 +1 @@ +.\.venv\Scripts\pyinstaller.exe --hidden-import=tiktoken_ext.openai_public --hidden-import=tiktoken_ext --hidden-import=pydantic --hidden-import=pydantic-core --hidden-import=pydantic.deprecated.decorator --add-data "logo.ico;." -F -w -i logo.ico -n MollyAudit main.py \ No newline at end of file diff --git a/logo.ico b/logo.ico new file mode 100644 index 0000000000000000000000000000000000000000..25e25d6262ce012e4cff46bccf36515a0940b3f0 GIT binary patch literal 4865 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 literal 0 HcmV?d00001 diff --git a/main.py b/main.py index 6f8489a..0f86afa 100644 --- a/main.py +++ b/main.py @@ -1,4 +1,6 @@ import sys +import os +from PyQt6.QtGui import QIcon from PyQt6.QtWidgets import QApplication from app import load_config from app.ui import MainWindow @@ -6,6 +8,13 @@ from app.ui import MainWindow app = QApplication(sys.argv) +def resource_path(relative_path): + try: + base_path = sys._MEIPASS + except AttributeError: + base_path = os.path.abspath(".") + return os.path.join(base_path, relative_path) + def main(): try: app.exec() @@ -19,6 +28,7 @@ if __name__ == '__main__': load_config() window = MainWindow() + window.setWindowIcon(QIcon(resource_path('logo.ico'))) window.show() sys.exit(main())