From 568c763084b926a6f2d632b7ac65b9ec8280752f Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 10 六月 2025 15:41:34 +0800 Subject: [PATCH] 网页功能完善 --- main.py | 106 +++++++++++++++++++++++++++++++++++----------------- 1 files changed, 71 insertions(+), 35 deletions(-) diff --git a/main.py b/main.py index 308e841..c6bc753 100644 --- a/main.py +++ b/main.py @@ -18,7 +18,7 @@ from PyQt5.QtGui import QFont, QPalette, QColor, QTextOption from PyQt5.QtWebChannel import QWebChannel -from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEngineSettings +from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEngineSettings, QWebEnginePage from PyQt5.QtWidgets import QMainWindow, QApplication, QAction, QMessageBox, QLabel from PyQt5.QtCore import Qt, pyqtSlot, QObject, pyqtSignal, QTimer, QUrl, QPoint @@ -55,18 +55,20 @@ result, need_delegate = LocalKanPanNetworkDelegate.http_delegate_request(url) if not need_delegate: result = network_util.http_get(url) - print(url, "璇锋眰缁撴灉锛�",url, result) + print(url, "璇锋眰缁撴灉锛�", result) self.signal_request.emit(callback_info[0], callback_info[1], result) return result except Exception as e: - print("閾炬帴璇锋眰鍑洪敊锛�"+ url) logging.exception(e) - def __socket_request(self, text, callback_info): + def __socket_request(self, text, callback_info, port=None): try: print("socket璜嬫眰锛�", text) - result = network_util.socket_request(text) - print("璇锋眰缁撴灉锛�",text, result) + if port: + result = network_util.socket_request(text, port=port) + else: + result = network_util.socket_request(text) + print("璇锋眰缁撴灉锛�", result) self.signal_request.emit(callback_info[0], callback_info[1], result) return result except Exception as e: @@ -109,6 +111,34 @@ pass callback_info = json.loads(callback_info) t1 = threading.Thread(target=lambda: self.__socket_request(text, callback_info)) + t1.setDaemon(True) + t1.start() + + @pyqtSlot(str, str) + def ls_socket_request(self, text, callback_info): + print("ls_socket_request", text) + try: + text_json = json.loads(text) + params = [] + for k in text_json: + if k == "sign": + continue + if type(text_json[k]) == dict or type(text_json[k]) == list: + params.append(f"{k}={json.dumps(text_json[k], separators=(',', ':'))}") + else: + params.append(f"{k}={text_json[k]}") + params.sort() + params.append("%Yeshi2014@#.") + params_str = "&".join(params) + md5 = hashlib.md5() + md5.update(params_str.encode("utf-8")) + md5_hash = md5.hexdigest() + text_json["sign"] = md5_hash + text = json.dumps(text_json) + except: + pass + callback_info = json.loads(callback_info) + t1 = threading.Thread(target=lambda: self.__socket_request(text, callback_info, port=14008)) t1.setDaemon(True) t1.start() @@ -174,12 +204,12 @@ window_height = 80 padding = 10 self.resize(300, 50) - hwnds = win32_util.search_window("鎮诞鐩洏") - if hwnds: - rect = win32gui.GetWindowRect(hwnds[0]) - self.move(rect[0] + padding - 3, rect[1] - window_height - 30) - if rect[2] - rect[0] > 0: - self.resize((rect[2] - rect[0]) - (padding - 2) * 2, window_height) + # hwnds = win32_util.search_window("鎮诞鐩洏", is_one_result=True) + # if hwnds: + # rect = win32gui.GetWindowRect(hwnds[0]) + # self.move(rect[0] + padding - 3, rect[1] - window_height - 30) + # if rect[2] - rect[0] > 0: + # self.resize((rect[2] - rect[0]) - (padding - 2) * 2, window_height) self.setWindowTitle("娑堟伅鎻愮ず") self.setWindowFlag(Qt.WindowStaysOnTopHint, True) self.setWindowOpacity(0.9) @@ -323,6 +353,16 @@ print("") +class WebEnginePage(QWebEnginePage): + def javaScriptConsoleMessage(self, level, message, lineNumber, sourceID): + """澶勭悊 JavaScript 鎺у埗鍙版秷鎭�""" + print(f"JavaScript Console Error: {message} at line {lineNumber} of {sourceID}") + + def onLoadFailed(self, errorCode, failingUrl, errorDescription): + """澶勭悊鍔犺浇澶辫触鐨勬儏鍐�""" + print(f"Failed to load URL: {failingUrl}, Error: {errorDescription}, Code: {errorCode}") + + class MainWindow(QMainWindow): signal_update_code = pyqtSignal(str) @@ -403,6 +443,9 @@ size = (self.width(), self.height()) self.wx_pipe.send(json.dumps({"type": "codes_setting", "pos": (ps[0] + size[0] / 2, ps[1] + size[1] / 2)})) + def __show_dead_hwnds(): + self.wx_pipe.send(json.dumps({"type": "show_dead_hwnds"})) + def __manage_ths_pos(): ps = (self.x(), self.y()) size = (self.width(), self.height()) @@ -419,21 +462,16 @@ def __clear_webview_cache(): self.webview.page().profile().clearHttpCache() + def __show_ths_flash_trade(): + hwnds = ths_util.get_flash_trade_hwnds() + for hwnd in hwnds: + if not win32gui.IsWindowVisible(hwnd): + win32gui.BringWindowToTop(hwnd) + win32_util.move_window(hwnd, 0, 0) + menubar = self.menuBar() setting_ = menubar.addMenu('&璁剧疆') - - juejin_action = QAction("&鎺橀噾鍙傛暟閰嶇疆", self) - juejin_action.triggered.connect(__set_juejin_params) - setting_.addAction(juejin_action) - - action = QAction("&浠g爜绠$悊", self) - action.triggered.connect(__manage_code) - setting_.addAction(action) - - action = QAction("&涓嬭浇娑ㄥ仠浠g爜", self) - action.triggered.connect(__download_codes) - setting_.addAction(action) action = QAction("&GPU妫�娴�", self) action.triggered.connect(__gpu_is_avaiable) @@ -443,18 +481,13 @@ action.triggered.connect(__clear_webview_cache) setting_.addAction(action) - action = QAction("&鎺橀噾鍒嗘椂鏁版嵁涓嬭浇", self) - action.triggered.connect(__juejin_tick_download) - setting_.addAction(action) - action = QAction("&鍚岃姳椤轰唬鐮佽瘑鍒�", self) action.triggered.connect(__ths_ocr_code) setting_.addAction(action) - auto_ = menubar.addMenu('&鑷姩鍖�') - action = QAction("&鍚岃姳椤鸿缃�", self) - action.triggered.connect(__manage_ths_pos) - auto_.addAction(action) + action = QAction("&姝诲彞鏌勭鐞�", self) + action.triggered.connect(__show_dead_hwnds) + setting_.addAction(action) view_ = menubar.addMenu('&瑙嗗浘') action = QAction("&鎵撳紑鍓睆", self) @@ -465,9 +498,8 @@ action.triggered.connect(__show_his_msg_window) view_.addAction(action) - view_ = menubar.addMenu('&浠g爜绠$悊') - view_.aboutToShow.connect(__manage_code) - + view_ = menubar.addMenu('&鏄剧ず涓�閿崠鍑�') + view_.aboutToShow.connect(__show_ths_flash_trade) def __init__(self, wx_pipe): super().__init__() @@ -482,6 +514,7 @@ self.center() self.setWindowFlag(Qt.WindowStaysOnTopHint, True) self.webview = QWebEngineView() + self.webview.setPage(WebEnginePage()) self.webview.settings().setAttribute(QWebEngineSettings.JavascriptEnabled, True) self.__menu() # JS妗ヨ缃� @@ -524,6 +557,8 @@ except Exception as e: print("") self.wx_pipe.send(json.dumps({"type": "exit"})) + wxGuiProcess.terminate() + wxGuiProcess.join() sys.exit(0) # 璇诲彇娑堟伅 @@ -568,6 +603,7 @@ if __name__ == "__main__": freeze_support() p1, p2 = multiprocessing.Pipe() + global wxGuiProcess wxGuiProcess = Process(target=gui_wx.run, args=(p1,)) wxGuiProcess.start() -- Gitblit v1.8.0