From 136668147b370432251ffa244d64830d2c06886d Mon Sep 17 00:00:00 2001 From: 27942 Date: Thu, 26 Feb 2026 20:42:22 +0800 Subject: [PATCH] haha --- .gitignore | 3 + 1.html | 1 - app.py | 10 + build_client.spec | 63 ++++ build_worker.spec | 71 +++++ captcha_debug/captcha_bg.png | Bin 130186 -> 0 bytes captcha_debug/captcha_piece.png | Bin 2557 -> 0 bytes client_gui/__init__.py | 2 + client_gui/config_store.py | 51 +++ client_gui/main.py | 381 ++++++++++++++++++++++ dp_slider_verify.py | 279 ---------------- requirements.txt | 3 + run_client.py | 11 + tyyp_1html_dp.py | 549 -------------------------------- worker/config.py | 4 +- 下载 (1).png | Bin 113986 -> 0 bytes 下载.png | Bin 2492 -> 0 bytes 部署说明.md | 56 ++++ 18 files changed, 653 insertions(+), 831 deletions(-) delete mode 100644 1.html create mode 100644 app.py create mode 100644 build_client.spec create mode 100644 build_worker.spec delete mode 100644 captcha_debug/captcha_bg.png delete mode 100644 captcha_debug/captcha_piece.png create mode 100644 client_gui/__init__.py create mode 100644 client_gui/config_store.py create mode 100644 client_gui/main.py delete mode 100644 dp_slider_verify.py create mode 100644 run_client.py delete mode 100644 tyyp_1html_dp.py delete mode 100644 下载 (1).png delete mode 100644 下载.png create mode 100644 部署说明.md diff --git a/.gitignore b/.gitignore index f157423..125f245 100644 --- a/.gitignore +++ b/.gitignore @@ -30,6 +30,9 @@ Desktop.ini .env .env.* +# 客户端 GUI 本地配置 +client_config.json + # 日志 *.log diff --git a/1.html b/1.html deleted file mode 100644 index 89ddc71..0000000 --- a/1.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/app.py b/app.py new file mode 100644 index 0000000..3ec8031 --- /dev/null +++ b/app.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +""" +中央服务器唯一入口。 +启动方式: python app.py +""" +from __future__ import annotations + +if __name__ == "__main__": + from server.main import main + main() diff --git a/build_client.spec b/build_client.spec new file mode 100644 index 0000000..bcc0aa4 --- /dev/null +++ b/build_client.spec @@ -0,0 +1,63 @@ +# -*- mode: python ; coding: utf-8 -*- +# 客户端 GUI 打包配置 +# 用法: 在项目根目录执行 pyinstaller build_client.spec + +import os +_project_root = os.path.dirname(os.path.abspath(SPECPATH)) + +block_cipher = None + +a = Analysis( + [os.path.join(_project_root, 'run_client.py')], + pathex=[_project_root], + binaries=[], + datas=[], + hiddenimports=[ + 'client_gui', + 'client_gui.main', + 'client_gui.config_store', + 'PyQt5', + 'PyQt5.QtCore', + 'PyQt5.QtWidgets', + 'PyQt5.QtGui', + ], + hookspath=[], + hooksconfig={}, + runtime_hooks=[], + excludes=[], + win_no_prefer_redirects=False, + win_private_assemblies=False, + cipher=block_cipher, + noarchive=False, +) + +pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) + +exe = EXE( + pyz, + a.scripts, + [], + exclude_binaries=True, + name='BOSS直聘Worker客户端', + debug=False, + bootloader_ignore_signals=False, + strip=False, + upx=True, + console=False, # 无控制台窗口 + disable_windowed_traceback=False, + argv_emulation=False, + target_arch=None, + codesign_identity=None, + entitlements_file=None, +) + +coll = COLLECT( + exe, + a.binaries, + a.zipfiles, + a.datas, + strip=False, + upx=True, + upx_exclude=[], + name='BOSS直聘Worker客户端', +) diff --git a/build_worker.spec b/build_worker.spec new file mode 100644 index 0000000..e4abee1 --- /dev/null +++ b/build_worker.spec @@ -0,0 +1,71 @@ +# -*- mode: python ; coding: utf-8 -*- +# Worker 打包配置(供客户端 GUI 的「启动」按钮调用) +# 用法: pyinstaller build_worker.spec +# 将生成的 worker.exe 放入「BOSS直聘Worker客户端」输出目录 + +block_cipher = None + +import os +_project_root = os.path.dirname(os.path.abspath(SPECPATH)) + +a = Analysis( + [os.path.join(_project_root, 'worker', 'main.py')], + pathex=[_project_root], + binaries=[], + datas=[], + hiddenimports=[ + 'worker', + 'worker.ws_client', + 'worker.bit_browser', + 'worker.browser_control', + 'worker.tasks', + 'worker.tasks.registry', + 'worker.tasks.base', + 'worker.tasks.boss_recruit', + 'worker.tasks.check_login', + 'tunnel', + 'tunnel.client', + 'tunnel.protocol', + 'common', + 'common.protocol', + ], + hookspath=[], + hooksconfig={}, + runtime_hooks=[], + excludes=[], + win_no_prefer_redirects=False, + win_private_assemblies=False, + cipher=block_cipher, + noarchive=False, +) + +pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) + +exe = EXE( + pyz, + a.scripts, + [], + exclude_binaries=True, + name='worker', + debug=False, + bootloader_ignore_signals=False, + strip=False, + upx=True, + console=True, # Worker 需要控制台输出 + disable_windowed_traceback=False, + argv_emulation=False, + target_arch=None, + codesign_identity=None, + entitlements_file=None, +) + +coll = COLLECT( + exe, + a.binaries, + a.zipfiles, + a.datas, + strip=False, + upx=True, + upx_exclude=[], + name='worker', +) diff --git a/captcha_debug/captcha_bg.png b/captcha_debug/captcha_bg.png deleted file mode 100644 index 3dfcc022a8ccda235ae58b4b197b8c6d26b423cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130186 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

itLD5L?Ry=s2DUD)ZC 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


EPDXGDWcX$zu7u-m=07kFd46x=F? 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 str: + """配置文件路径:项目根目录下的 client_config.json。""" + root = get_project_root() + return os.path.join(root, "client_config.json") + + +def load_config() -> dict: + """加载配置。若为旧版本地地址则迁移为云端地址。""" + path = get_config_path() + if os.path.isfile(path): + try: + with open(path, "r", encoding="utf-8") as f: + data = json.load(f) + cfg = {**DEFAULTS, **data} + # 旧版本地地址迁移为云端地址 + if cfg.get("server_url") == "ws://127.0.0.1:9000/ws": + cfg["server_url"] = DEFAULTS["server_url"] + return cfg + except Exception: + pass + return DEFAULTS.copy() + + +def save_config(data: dict) -> None: + """保存配置。""" + path = get_config_path() + with open(path, "w", encoding="utf-8") as f: + json.dump(data, f, ensure_ascii=False, indent=2) + + +def get_project_root() -> str: + """项目根目录。打包运行时为 exe 所在目录,否则为项目源码根目录。""" + if getattr(sys, "frozen", False): + return os.path.dirname(sys.executable) + return os.path.dirname(os.path.dirname(os.path.abspath(__file__))) diff --git a/client_gui/main.py b/client_gui/main.py new file mode 100644 index 0000000..1bd277d --- /dev/null +++ b/client_gui/main.py @@ -0,0 +1,381 @@ +# -*- coding: utf-8 -*- +""" +客户端 GUI 主程序(PyQt5)。 +供线下有比特浏览器的电脑使用,非技术用户可通过界面完成「更新」和「启动」。 +""" +from __future__ import annotations + +import os +import queue +import shutil +import subprocess +import sys +import threading + +from PyQt5.QtWidgets import ( + QApplication, + QMainWindow, + QWidget, + QVBoxLayout, + QHBoxLayout, + QGridLayout, + QGroupBox, + QLabel, + QLineEdit, + QPushButton, + QTextEdit, + QProgressBar, + QMessageBox, + QFrame, +) +from PyQt5.QtCore import Qt, QTimer, pyqtSignal, QObject, QEvent +from PyQt5.QtGui import QFont, QTextCursor + +from .config_store import load_config, save_config, get_project_root + +# 日志缓冲 +LOG_BATCH_CHARS = 2048 +LOG_MAX_LINES = 2000 +LOG_DRAIN_INTERVAL_MS = 120 + + +def do_git_pull(project_root: str, log_callback) -> bool: + """在项目目录执行 git pull。""" + git = shutil.which("git") + if not git: + log_callback("错误:未找到 git,请先安装 Git 或在已克隆的代码目录中手动更新。\n") + return False + try: + proc = subprocess.run( + [git, "pull"], + cwd=project_root, + capture_output=True, + text=True, + encoding="utf-8", + errors="replace", + ) + if proc.stdout: + log_callback(proc.stdout) + if proc.stderr: + log_callback(proc.stderr) + if proc.returncode == 0: + log_callback("更新完成。\n") + return True + log_callback(f"更新失败,返回码: {proc.returncode}\n") + return False + except Exception as e: + log_callback(f"更新出错: {e}\n") + return False + + +def _is_frozen() -> bool: + return getattr(sys, "frozen", False) + + +def _get_worker_launcher() -> tuple[str, str]: + if _is_frozen(): + exe_dir = os.path.dirname(sys.executable) + worker_exe = os.path.join(exe_dir, "worker.exe") + if os.path.isfile(worker_exe): + return worker_exe, exe_dir + project_root = get_project_root() + return sys.executable, project_root + + +def run_worker(server_url: str, worker_id: str, worker_name: str, log_callback) -> subprocess.Popen | None: + """启动 Worker 子进程。""" + launcher, cwd = _get_worker_launcher() + is_python = launcher == sys.executable + if is_python: + cmd = [ + launcher, "-m", "worker.main", + "--server", server_url, + "--worker-id", worker_id, + "--worker-name", worker_name, + ] + env = {**os.environ, "PYTHONIOENCODING": "utf-8"} + encoding = "utf-8" + else: + cmd = [launcher, "--server", server_url, "--worker-id", worker_id, "--worker-name", worker_name] + env = os.environ + # worker.exe 在 Windows 上可能用 GBK 输出 + encoding = "gbk" if sys.platform == "win32" else "utf-8" + try: + return subprocess.Popen( + cmd, cwd=cwd, env=env, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT, + text=True, encoding=encoding, errors="replace", bufsize=1, + ) + except Exception as e: + log_callback(f"启动失败: {e}\n") + return None + + +def _reader_thread(proc: subprocess.Popen, log_queue: queue.Queue) -> None: + """后台线程:读取子进程 stdout,放入队列。避免主线程阻塞。""" + try: + for line in iter(proc.stdout.readline, ""): + if line: + log_queue.put(line) + except Exception: + pass + + +class LogWorker(QObject): + """日志队列批量渲染,避免卡顿。""" + batch_ready = pyqtSignal(str) + + def __init__(self, log_queue: queue.Queue, parent=None): + super().__init__(parent) + self.log_queue = log_queue + self.timer = QTimer(self) + self.timer.timeout.connect(self._drain) + self.timer.start(LOG_DRAIN_INTERVAL_MS) + + def _drain(self): + if self.log_queue.empty(): + return + batch = [] + size = 0 + try: + while size < LOG_BATCH_CHARS: + batch.append(self.log_queue.get_nowait()) + size += len(batch[-1]) + except queue.Empty: + pass + if batch: + self.batch_ready.emit("".join(batch)) + + +class ClientGUI(QMainWindow): + def __init__(self): + super().__init__() + self.setWindowTitle("BOSS 直聘 Worker 客户端") + self.setMinimumSize(600, 460) + self.resize(620, 500) + + self.config = load_config() + self.worker_proc: subprocess.Popen | None = None + self._poll_timer: QTimer | None = None + self._log_queue: queue.Queue[str] = queue.Queue() + + self._build_ui() + self._log_worker = LogWorker(self._log_queue, self) + self._log_worker.batch_ready.connect(self._append_log_batch) + + def _build_ui(self): + central = QWidget() + self.setCentralWidget(central) + layout = QVBoxLayout(central) + layout.setSpacing(8) + + # 配置区 + cfg_group = QGroupBox("连接配置") + cfg_layout = QGridLayout(cfg_group) + cfg_layout.addWidget(QLabel("服务器地址:"), 0, 0) + self.entry_server = QLineEdit() + self.entry_server.setPlaceholderText("ws://8.137.99.82:9000/ws") + self.entry_server.setText(self.config.get("server_url", "")) + cfg_layout.addWidget(self.entry_server, 0, 1) + + cfg_layout.addWidget(QLabel("Worker ID:"), 1, 0) + self.entry_worker_id = QLineEdit() + self.entry_worker_id.setText(self.config.get("worker_id", "")) + cfg_layout.addWidget(self.entry_worker_id, 1, 1) + + cfg_layout.addWidget(QLabel("Worker 名称:"), 2, 0) + self.entry_worker_name = QLineEdit() + self.entry_worker_name.setText(self.config.get("worker_name", "")) + cfg_layout.addWidget(self.entry_worker_name, 2, 1) + + layout.addWidget(cfg_group) + + # 操作按钮 + btn_layout = QHBoxLayout() + self.btn_update = QPushButton("更新代码") + self.btn_update.setCursor(Qt.PointingHandCursor) + self.btn_update.clicked.connect(self._on_update) + btn_layout.addWidget(self.btn_update) + + self.btn_start = QPushButton("启动") + self.btn_start.setCursor(Qt.PointingHandCursor) + self.btn_start.clicked.connect(self._on_start) + btn_layout.addWidget(self.btn_start) + + self.btn_stop = QPushButton("停止") + self.btn_stop.setCursor(Qt.PointingHandCursor) + self.btn_stop.clicked.connect(self._on_stop) + self.btn_stop.setEnabled(False) + btn_layout.addWidget(self.btn_stop) + + btn_layout.addStretch() + layout.addLayout(btn_layout) + + # 进度条(更新时显示) + self.progress = QProgressBar() + self.progress.setRange(0, 0) # indeterminate + self.progress.setVisible(False) + layout.addWidget(self.progress) + + # 日志区 + log_group = QGroupBox("运行日志") + log_layout = QVBoxLayout(log_group) + self.log_text = QTextEdit() + self.log_text.setReadOnly(True) + self.log_text.setFont(QFont("Consolas", 9)) + self.log_text.setStyleSheet( + "QTextEdit { background-color: #f8fafc; color: #1e293b; border: 1px solid #e2e8f0; border-radius: 4px; }" + ) + log_layout.addWidget(self.log_text) + layout.addWidget(log_group, 1) + + # 状态栏 + status_frame = QFrame() + status_layout = QHBoxLayout(status_frame) + status_layout.setContentsMargins(0, 4, 0, 0) + self.status_indicator = QLabel("●") + self.status_indicator.setStyleSheet("color: #22c55e; font-size: 12px;") + status_layout.addWidget(self.status_indicator) + self.status_label = QLabel("就绪") + status_layout.addWidget(self.status_label) + status_layout.addStretch() + layout.addWidget(status_frame) + + def _save_config(self): + self.config["server_url"] = self.entry_server.text().strip() + self.config["worker_id"] = self.entry_worker_id.text().strip() + self.config["worker_name"] = self.entry_worker_name.text().strip() + save_config(self.config) + + def _log(self, msg: str): + self._log_queue.put(msg) + + def _append_log_batch(self, text: str): + cursor = self.log_text.textCursor() + cursor.movePosition(QTextCursor.End) + self.log_text.setTextCursor(cursor) + self.log_text.insertPlainText(text) + # 限制行数 + block = self.log_text.document().firstBlock() + count = 0 + while block.isValid(): + count += 1 + block = block.next() + if count > LOG_MAX_LINES: + cursor = self.log_text.textCursor() + cursor.movePosition(QTextCursor.Start) + for _ in range(count - LOG_MAX_LINES): + cursor.movePosition(QTextCursor.Down, QTextCursor.KeepAnchor) + cursor.removeSelectedText() + self.log_text.verticalScrollBar().setValue(self.log_text.verticalScrollBar().maximum()) + + def _set_status(self, text: str, color: str = "#22c55e"): + self.status_label.setText(text) + self.status_indicator.setStyleSheet(f"color: {color}; font-size: 12px;") + + def _on_update(self): + self._save_config() + self.btn_update.setEnabled(False) + self._set_status("更新中…", "#f59e0b") + self.progress.setVisible(True) + self._log("正在更新代码(git pull)...\n") + + def task(): + ok = do_git_pull(get_project_root(), self._log) + QApplication.instance().postEvent( + self, _FinishUpdateEvent(ok) + ) + + threading.Thread(target=task, daemon=True).start() + + def event(self, e): + if isinstance(e, _FinishUpdateEvent): + self.progress.setVisible(False) + self.btn_update.setEnabled(True) + self._set_status("更新完成" if e.ok else "就绪", "#22c55e" if e.ok else "#ef4444") + if e.ok: + QMessageBox.information(self, "更新", "代码更新成功") + else: + QMessageBox.warning(self, "更新", "更新失败,请检查网络或 Git 配置") + return True + return super().event(e) + + def _on_start(self): + self._save_config() + server_url = self.entry_server.text().strip() or "ws://8.137.99.82:9000/ws" + worker_id = self.entry_worker_id.text().strip() or "worker-1" + worker_name = self.entry_worker_name.text().strip() or "本机" + + self._set_status("启动中…", "#3b82f6") + self._log("正在启动 Worker...\n") + proc = run_worker(server_url, worker_id, worker_name, self._log) + if proc is None: + self._set_status("就绪", "#22c55e") + return + + self.worker_proc = proc + self.btn_start.setEnabled(False) + self.btn_stop.setEnabled(True) + self._set_status("运行中", "#22c55e") + + # 后台线程读取 stdout,避免主线程阻塞 + t = threading.Thread(target=_reader_thread, args=(proc, self._log_queue), daemon=True) + t.start() + + # 定时检查进程是否退出(非阻塞) + self._exit_check_timer = QTimer(self) + self._exit_check_timer.timeout.connect(self._check_worker_exit) + self._exit_check_timer.start(300) + + def _check_worker_exit(self): + if self.worker_proc is None: + return + if self.worker_proc.poll() is not None: + self._exit_check_timer.stop() + self._exit_check_timer = None + self._on_worker_exit() + + def _on_worker_exit(self): + self.worker_proc = None + self.btn_start.setEnabled(True) + self.btn_stop.setEnabled(False) + self._set_status("已停止", "#6b7280") + self._log("Worker 已退出。\n") + + def _on_stop(self): + if self.worker_proc: + self._set_status("正在停止…", "#f59e0b") + self.worker_proc.terminate() + self._log("正在停止 Worker...\n") + + def closeEvent(self, event): + if self.worker_proc and self.worker_proc.poll() is None: + reply = QMessageBox.question( + self, "确认", "Worker 正在运行,确定要退出吗?", + QMessageBox.Yes | QMessageBox.No, QMessageBox.No + ) + if reply == QMessageBox.Yes: + self.worker_proc.terminate() + else: + event.ignore() + return + event.accept() + + +class _FinishUpdateEvent(QEvent): + Type = QEvent.Type(QEvent.registerEventType()) + + def __init__(self, ok: bool): + super().__init__(_FinishUpdateEvent.Type) + self.ok = ok + + +def main(): + app = QApplication(sys.argv) + w = ClientGUI() + w.show() + sys.exit(app.exec_()) + + +if __name__ == "__main__": + main() diff --git a/dp_slider_verify.py b/dp_slider_verify.py deleted file mode 100644 index a973eb7..0000000 --- a/dp_slider_verify.py +++ /dev/null @@ -1,279 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -""" -根据背景图 + 拼图块图计算滑块目标偏移,并可选使用 DrissionPage 执行拖动。 - -默认读取当前项目根目录: -- 下载 (1).png (背景图) -- 下载.png (拼图块,RGBA 透明图) -""" -from __future__ import annotations - -import argparse -import random -import time -from pathlib import Path - -import numpy as np -from PIL import Image, ImageDraw - - -def _load_images(bg_path: Path, piece_path: Path) -> tuple[np.ndarray, np.ndarray]: - bg = np.array(Image.open(bg_path).convert("RGB"), dtype=np.int16) - piece_rgba = np.array(Image.open(piece_path).convert("RGBA"), dtype=np.int16) - return bg, piece_rgba - - -def _piece_bbox(alpha: np.ndarray, threshold: int = 12) -> tuple[int, int, int, int, np.ndarray]: - mask = alpha > threshold - if not mask.any(): - raise ValueError("拼图块图片 alpha 全透明,无法匹配") - - ys, xs = np.where(mask) - y0, y1 = int(ys.min()), int(ys.max()) + 1 - x0, x1 = int(xs.min()), int(xs.max()) + 1 - return x0, y0, x1, y1, mask - - -def calc_drag_distance( - bg_path: Path, - piece_path: Path, - alpha_threshold: int = 12, -) -> dict: - """返回最佳匹配位置与建议拖动距离。""" - bg, piece_rgba = _load_images(bg_path, piece_path) - - bh, bw = bg.shape[:2] - ph, pw = piece_rgba.shape[:2] - if ph != bh: - raise ValueError(f"图片高度不一致:背景={bh}, 拼图块={ph}") - - alpha = piece_rgba[:, :, 3] - x0, y0, x1, y1, _ = _piece_bbox(alpha, threshold=alpha_threshold) - - piece_crop = piece_rgba[y0:y1, x0:x1, :3] - mask = alpha[y0:y1, x0:x1] > alpha_threshold - ys, xs = np.where(mask) - piece_pixels = piece_crop[ys, xs] - - patch_h, patch_w = piece_crop.shape[:2] - if patch_w > bw or patch_h > bh: - raise ValueError("拼图块裁剪后尺寸超过背景图") - - max_x = bw - patch_w - best_x = 0 - best_score = float("inf") - second_best = float("inf") - - # 固定 y,按 x 扫描。评分越小越好。 - for x in range(max_x + 1): - patch_pixels = bg[y0 + ys, x + xs] - score = float(np.abs(patch_pixels - piece_pixels).mean()) - if score < best_score: - second_best = best_score - best_score = score - best_x = x - elif score < second_best: - second_best = score - - # 如果拼图初始从最左侧出发,建议拖动距离可用:best_x - x0 - drag_distance = best_x - x0 - confidence_ratio = (second_best / best_score) if best_score > 0 else float("inf") - - return { - "target_x": int(best_x), - "piece_bbox_x0": int(x0), - "piece_bbox_y0": int(y0), - "piece_bbox_w": int(patch_w), - "piece_bbox_h": int(patch_h), - "drag_distance": int(drag_distance), - "best_score": best_score, - "second_best": second_best, - "confidence_ratio": confidence_ratio, - "bg_width": int(bw), - "bg_height": int(bh), - } - - -def save_debug_overlay(bg_path: Path, out_path: Path, match: dict) -> None: - img = Image.open(bg_path).convert("RGB") - draw = ImageDraw.Draw(img) - x = int(match["target_x"]) - y = int(match["piece_bbox_y0"]) - w = int(match["piece_bbox_w"]) - h = int(match["piece_bbox_h"]) - draw.rectangle([x, y, x + w, y + h], outline=(255, 0, 0), width=2) - img.save(out_path) - - -def build_human_track(distance: int) -> list[int]: - """生成拟人拖动轨迹(整数步长列表)。""" - if distance == 0: - return [] - - direction = 1 if distance > 0 else -1 - remaining = abs(int(round(distance))) - - track: list[int] = [] - moved = 0 - velocity = 0.0 - interval = 0.02 - accelerate_until = remaining * 0.7 - - while moved < remaining: - if moved < accelerate_until: - acc = random.uniform(2.0, 4.0) - else: - acc = -random.uniform(3.0, 6.0) - - step = max(1, int(velocity * interval + 0.5 * acc * interval * interval * 100)) - moved += step - velocity = max(0.0, velocity + acc * interval) - track.append(step) - - overflow = moved - remaining - if overflow > 0 and track: - track[-1] -= overflow - if track[-1] <= 0: - track.pop() - - # 小幅回拉,增加拟人性 - if remaining >= 30: - back = random.randint(1, 3) - track.extend([-back, back]) - - return [direction * s for s in track if s != 0] - - -def drag_slider_with_dp(page, slider_selector: str, distance: int) -> None: - slider = page.ele(slider_selector, timeout=8) - if not slider: - raise RuntimeError(f"未找到滑块元素:{slider_selector}") - - # 若元素支持直接 drag,优先用内置实现 - if hasattr(slider, "drag"): - try: - slider.drag(offset_x=distance, offset_y=0, duration=0.8) - return - except Exception: - pass - - actions = page.actions - actions.move_to(slider, duration=0.2) - - hold_ok = False - for hold_call in ( - lambda: actions.hold(slider), - lambda: actions.hold(), - ): - try: - hold_call() - hold_ok = True - break - except Exception: - continue - - if not hold_ok: - raise RuntimeError("无法按下滑块,请确认 DrissionPage 版本与页面状态") - - for step in build_human_track(distance): - dy = random.randint(-1, 1) - moved = False - for move_call in ( - lambda: actions.move(step, dy, duration=random.uniform(0.01, 0.04)), - lambda: actions.move(offset_x=step, offset_y=dy, duration=random.uniform(0.01, 0.04)), - lambda: actions.move(step, dy), - lambda: actions.move(offset_x=step, offset_y=dy), - ): - try: - move_call() - moved = True - break - except Exception: - continue - if not moved: - raise RuntimeError("动作链 move 调用失败,请按当前 DrissionPage 版本调整 move 参数") - - released = False - for release_call in ( - lambda: actions.release(), - lambda: actions.release(on_ele=None), - ): - try: - release_call() - released = True - break - except Exception: - continue - - if not released: - raise RuntimeError("动作链 release 调用失败") - - -def maybe_run_dp_drag(args: argparse.Namespace, distance: int) -> None: - if not args.url or not args.slider: - return - - from DrissionPage import ChromiumOptions, ChromiumPage - - if args.port: - co = ChromiumOptions().set_local_port(port=args.port) - page = ChromiumPage(addr_or_opts=co) - else: - page = ChromiumPage() - - page.get(args.url) - if args.wait_after_open > 0: - time.sleep(args.wait_after_open) - - drag_slider_with_dp(page, args.slider, distance) - - -def parse_args() -> argparse.Namespace: - root = Path(__file__).resolve().parent - - parser = argparse.ArgumentParser(description="DP 滑块验证辅助脚本") - parser.add_argument("--bg", type=Path, default=root / "下载 (1).png", help="背景图路径") - parser.add_argument("--piece", type=Path, default=root / "下载.png", help="拼图块图路径") - parser.add_argument("--alpha-threshold", type=int, default=12, help="透明阈值(0-255)") - parser.add_argument("--debug-out", type=Path, default=root / "slider_match_debug.png", help="匹配结果标注图") - - # 以下参数用于真实页面拖动(可选) - parser.add_argument("--url", type=str, default="", help="验证码页面 URL") - parser.add_argument("--slider", type=str, default="", help="滑块元素选择器") - parser.add_argument("--port", type=int, default=0, help="连接已有浏览器的本地端口") - parser.add_argument("--distance-adjust", type=int, default=0, help="对计算结果追加修正像素") - parser.add_argument("--wait-after-open", type=float, default=1.0, help="打开页面后等待秒数") - - return parser.parse_args() - - -def main() -> None: - args = parse_args() - - if not args.bg.exists(): - raise FileNotFoundError(f"背景图不存在:{args.bg}") - if not args.piece.exists(): - raise FileNotFoundError(f"拼图块图不存在:{args.piece}") - - match = calc_drag_distance(args.bg, args.piece, alpha_threshold=args.alpha_threshold) - save_debug_overlay(args.bg, args.debug_out, match) - - distance = int(match["drag_distance"]) + int(args.distance_adjust) - - print("匹配结果:") - print(f" target_x={match['target_x']}") - print(f" piece_bbox_x0={match['piece_bbox_x0']}") - print(f" 建议拖动距离 drag_distance={match['drag_distance']}") - print(f" 调整后拖动距离 distance={distance}") - print(f" best_score={match['best_score']:.4f}, second_best={match['second_best']:.4f}") - print(f" confidence_ratio={match['confidence_ratio']:.4f} (越大越好)") - print(f" 标注图已输出:{args.debug_out}") - - if args.url and args.slider: - maybe_run_dp_drag(args, distance) - print("DP 拖动已执行。") - - -if __name__ == "__main__": - main() diff --git a/requirements.txt b/requirements.txt index 6425885..f7d6254 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,6 +7,9 @@ pydantic>=2.0.0 PyMySQL>=1.1.0 asgiref>=3.8.0 +# ─── 客户端 GUI ─── +PyQt5>=5.15.0 + # ─── Worker 代理 (worker/) ─── websockets>=14.0 requests>=2.31.0 diff --git a/run_client.py b/run_client.py new file mode 100644 index 0000000..db244c1 --- /dev/null +++ b/run_client.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +""" +客户端 GUI 启动入口。 +使用方式: python run_client.py +""" +from __future__ import annotations + +from client_gui.main import main + +if __name__ == "__main__": + main() diff --git a/tyyp_1html_dp.py b/tyyp_1html_dp.py deleted file mode 100644 index 5934f21..0000000 --- a/tyyp_1html_dp.py +++ /dev/null @@ -1,549 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -""" -站点流程自动化(DrissionPage): -1) 打开 http://yscnb.com/tyyp/1.html -2) 输入手机号 -3) 点击“获取验证码” -4) 解析弹窗中的拼图验证码并执行拖动 - -说明:仅实现到“滑块拖动”步骤,不会自动填写短信验证码。 -""" -from __future__ import annotations - -import argparse -import base64 -import random -import re -import time -from io import BytesIO -from pathlib import Path - -import numpy as np -from PIL import Image - - -def _to_rgba_array(image_bytes: bytes) -> np.ndarray: - return np.array(Image.open(BytesIO(image_bytes)).convert("RGBA"), dtype=np.int16) - - -def _to_rgb_array(image_bytes: bytes) -> np.ndarray: - return np.array(Image.open(BytesIO(image_bytes)).convert("RGB"), dtype=np.int16) - - -def _piece_bbox(alpha: np.ndarray, threshold: int = 12) -> tuple[int, int, int, int]: - mask = alpha > threshold - if not mask.any(): - raise ValueError("拼图块 alpha 全透明,无法匹配") - ys, xs = np.where(mask) - return int(xs.min()), int(ys.min()), int(xs.max()) + 1, int(ys.max()) + 1 - - -def calc_drag_distance_from_bytes(bg_bytes: bytes, piece_bytes: bytes, alpha_threshold: int = 12) -> dict: - """计算拼图目标位移(基于背景图 + 拼图块图)。""" - bg = _to_rgb_array(bg_bytes) - piece_rgba = _to_rgba_array(piece_bytes) - - bh, bw = bg.shape[:2] - ph, _ = piece_rgba.shape[:2] - if bh != ph: - raise ValueError(f"背景与拼图块高度不一致: {bh} != {ph}") - - alpha = piece_rgba[:, :, 3] - x0, y0, x1, y1 = _piece_bbox(alpha, threshold=alpha_threshold) - - piece_crop = piece_rgba[y0:y1, x0:x1, :3] - mask = alpha[y0:y1, x0:x1] > alpha_threshold - ys, xs = np.where(mask) - piece_pixels = piece_crop[ys, xs] - - patch_h, patch_w = piece_crop.shape[:2] - if patch_w > bw or patch_h > bh: - raise ValueError("拼图块裁剪尺寸超过背景图") - - best_x = 0 - best_score = float("inf") - second_best = float("inf") - max_x = bw - patch_w - - for x in range(max_x + 1): - patch_pixels = bg[y0 + ys, x + xs] - score = float(np.abs(patch_pixels - piece_pixels).mean()) - if score < best_score: - second_best = best_score - best_score = score - best_x = x - elif score < second_best: - second_best = score - - drag_distance = best_x - x0 - confidence_ratio = (second_best / best_score) if best_score > 0 else float("inf") - - return { - "target_x": int(best_x), - "piece_bbox_x0": int(x0), - "piece_bbox_y0": int(y0), - "piece_bbox_w": int(patch_w), - "piece_bbox_h": int(patch_h), - "bg_width": int(bw), - "bg_height": int(bh), - "drag_distance": int(drag_distance), - "best_score": best_score, - "second_best": second_best, - "confidence_ratio": confidence_ratio, - } - - -def parse_data_url(data_url: str) -> bytes: - if not data_url.startswith("data:image"): - raise ValueError("图片不是 data:image URL") - _, data = data_url.split(",", 1) - return base64.b64decode(data) - - -def style_px(style_text: str, key: str, default: float) -> float: - if not style_text: - return default - m = re.search(rf"{re.escape(key)}\s*:\s*([0-9.]+)px", style_text) - if not m: - return default - return float(m.group(1)) - - -def click_safe(ele) -> None: - try: - ele.click() - return - except Exception: - pass - ele.click(by_js=True) - - -def _ease_out_quad(t: float) -> float: - return t * (2 - t) - - -def _ease_out_cubic(t: float) -> float: - return 1 - (1 - t) ** 3 - - -def _ease_out_bounce(t: float) -> float: - if t < 1 / 2.75: - return 7.5625 * t * t - elif t < 2 / 2.75: - t -= 1.5 / 2.75 - return 7.5625 * t * t + 0.75 - elif t < 2.5 / 2.75: - t -= 2.25 / 2.75 - return 7.5625 * t * t + 0.9375 - else: - t -= 2.625 / 2.75 - return 7.5625 * t * t + 0.984375 - - -def build_human_track(distance: int, num_steps: int = 0) -> list[dict]: - """生成仿人轨迹列表,每项 {'dx': int, 'dy': int, 'dt': float(秒)}。 - - 包含:加速-匀速-减速-过冲-回弹 五阶段。 - """ - if distance == 0: - return [] - - dist = abs(distance) - sign = 1 if distance > 0 else -1 - - if num_steps <= 0: - num_steps = max(12, int(dist * random.uniform(0.25, 0.4))) - - overshoot = random.randint(max(2, int(dist * 0.03)), max(3, int(dist * 0.08))) - total = dist + overshoot # 先超过,再回弹 - - easing = random.choice([_ease_out_quad, _ease_out_cubic]) - - # 正向阶段 - raw_positions: list[float] = [] - for i in range(1, num_steps + 1): - t = i / num_steps - raw_positions.append(easing(t) * total) - - # 回弹阶段 (2~4 步) - bounce_steps = random.randint(2, 4) - for j in range(1, bounce_steps + 1): - t = j / bounce_steps - raw_positions.append(total - _ease_out_bounce(t) * overshoot) - - track: list[dict] = [] - prev_x = 0.0 - for pos in raw_positions: - dx = round(pos - prev_x) - if dx == 0 and random.random() < 0.3: - continue - prev_x += dx - dy = random.choice([-1, 0, 0, 0, 1]) - # 前半段快、后半段慢(加快整体速度) - dt = random.uniform(0.005, 0.012) if prev_x < dist * 0.6 else random.uniform(0.008, 0.025) - if random.random() < 0.03: - dt += random.uniform(0.02, 0.06) - track.append({"dx": sign * dx, "dy": dy, "dt": dt}) - - # 最终位置校正 - actual = sum(s["dx"] for s in track) - diff = distance - actual - if diff != 0: - track.append({"dx": diff, "dy": 0, "dt": random.uniform(0.01, 0.03)}) - - return track - - -def _dispatch_mouse(page, event_type: str, x: int, y: int, button: str = "left") -> None: - """通过 CDP Input.dispatchMouseEvent 发送鼠标事件。""" - page.run_cdp( - "Input.dispatchMouseEvent", - type=event_type, - x=x, - y=y, - button=button, - clickCount=1 if event_type == "mousePressed" else 0, - ) - - -def _get_element_center(page, ele) -> tuple[int, int]: - """获取元素在视口中的中心坐标。""" - rect = page.run_js( - """const r = arguments[0].getBoundingClientRect(); - return {x: Math.round(r.x + r.width/2), y: Math.round(r.y + r.height/2)}""", - ele, - ) - if rect and isinstance(rect, dict): - return int(rect["x"]), int(rect["y"]) - # 回退:通过元素属性 - loc = ele.rect.midpoint - return int(loc[0]), int(loc[1]) - - -def drag_slider(page, slider_ele, distance: int) -> None: - """用 CDP 级鼠标事件完成拖拽,模拟真人操作轨迹。""" - cx, cy = _get_element_center(page, slider_ele) - - # 1. 鼠标移到滑块中心 - _dispatch_mouse(page, "mouseMoved", cx, cy) - time.sleep(random.uniform(0.03, 0.08)) - - # 2. 按下 - _dispatch_mouse(page, "mousePressed", cx, cy) - time.sleep(random.uniform(0.02, 0.06)) - - # 3. 沿轨迹移动 - cur_x, cur_y = cx, cy - track = build_human_track(distance) - for step in track: - cur_x += step["dx"] - cur_y += step["dy"] - _dispatch_mouse(page, "mouseMoved", cur_x, cur_y) - time.sleep(step["dt"]) - - # 4. 到达终点后短暂停留 - time.sleep(random.uniform(0.02, 0.06)) - - # 5. 释放 - _dispatch_mouse(page, "mouseReleased", cur_x, cur_y) - - -def find_first(page, selectors: list[str], timeout: float = 5): - for sel in selectors: - try: - ele = page.ele(sel, timeout=timeout) - if ele: - return ele - except Exception: - continue - return None - - -def wait_for_data_src(img_ele, timeout: float = 6, interval: float = 0.12) -> str: - """轮询等待 img 元素的 src 变为有效 data:image URL(含非空 base64 数据)。""" - deadline = time.time() + timeout - while time.time() < deadline: - src = img_ele.attr("src") or "" - if src.startswith("data:image"): - _prefix, _, b64 = src.partition(",") - if b64.strip(): - return src - time.sleep(interval) - raise RuntimeError(f"等待 data:image src 超时({timeout}s),当前 src 前80字符: {(img_ele.attr('src') or '')[:80]}") - - -def save_debug(debug_dir: Path, bg_bytes: bytes, piece_bytes: bytes) -> tuple[Path, Path]: - debug_dir.mkdir(parents=True, exist_ok=True) - bg_path = debug_dir / "captcha_bg.png" - piece_path = debug_dir / "captcha_piece.png" - bg_path.write_bytes(bg_bytes) - piece_path.write_bytes(piece_bytes) - return bg_path, piece_path - - -def run(args: argparse.Namespace) -> None: - from DrissionPage import ChromiumOptions, ChromiumPage - - t_start = time.perf_counter() - - if args.port: - co = ChromiumOptions().set_local_port(port=args.port) - page = ChromiumPage(addr_or_opts=co) - else: - page = ChromiumPage() - - page.get(args.url) - time.sleep(args.wait_page) - - # 首页先勾选协议 checkbox(id=color-input-red 的复选框),再点「立即订购」 - agree_checkbox = find_first(page, [ - "css:#color-input-red", - "css:input[name='color-input-red']", - 'x://input[@id="color-input-red"]', - "css:input.right-box[type='checkbox']", - ], timeout=5) - if agree_checkbox: - click_safe(agree_checkbox) - print("已勾选协议复选框") - time.sleep(0.4) # 勾选后等待 - - # 立即订购:点击 div.paybg 即为立即订购 - order_btn = None - for attempt in range(4): - order_btn = find_first(page, [ - "css:div.paybg", - "css:.paybg", - 'x://button[contains(.,"立即订购")]', - 'x://a[contains(.,"立即订购")]', - 'x://span[contains(.,"立即订购")]', - 'x://div[contains(.,"立即订购")]', - 'x://*[contains(text(),"立即订购")]', - 'x://*[contains(.,"立即订购")]', - "css:.btn-order", - "css:.order-btn", - "css:button.btn-primary", - "css:button.btn", - "css:a.btn", - ], timeout=1) - if order_btn: - break - time.sleep(0.25) - if order_btn: - try: - order_btn.run_js("this.scrollIntoView({block:'center'})") - time.sleep(0.05) - except Exception: - pass - click_safe(order_btn) - print("已点击立即订购") - time.sleep(0.4) - else: - # 兜底1:若页面有 jQuery,用 :contains 查找 - jq_clicked = False - try: - jq_clicked = page.run_js(""" - if (typeof $ !== 'undefined') { - var el = $('button, a, span, div').filter(function(){ return $(this).text().indexOf('立即订购')>=0; }).first(); - if (el.length) { el[0].scrollIntoView({block:'center'}); el[0].click(); return true; } - el = $('*').filter(function(){ return $(this).text().trim()==='立即订购'; }).first(); - if (el.length) { el[0].scrollIntoView({block:'center'}); el[0].click(); return true; } - } - return false; - """) - if jq_clicked: - print("已通过 jQuery 点击立即订购") - time.sleep(0.4) - except Exception: - pass - if not jq_clicked: - clicked = page.run_js(""" - var nodes = document.querySelectorAll('button, a, span, div, input[type=button], input[type=submit]'); - for (var i = 0; i < nodes.length; i++) { - var t = (nodes[i].innerText || nodes[i].textContent || '').trim(); - if (t === '立即订购' || (t.indexOf('立即订购') >= 0 && t.length < 20)) { - var el = nodes[i]; - if (el.offsetParent !== null || el.tagName === 'BODY') { - el.scrollIntoView({block: 'center'}); - el.dispatchEvent(new MouseEvent('click', {bubbles: true, cancelable: true, view: window})); - return true; - } - } - } - for (var i = 0; i < nodes.length; i++) { - var t = (nodes[i].innerText || nodes[i].textContent || '').trim(); - if (t.indexOf('立即订购') >= 0) { - nodes[i].scrollIntoView({block: 'center'}); - nodes[i].dispatchEvent(new MouseEvent('click', {bubbles: true, cancelable: true, view: window})); - return true; - } - } - return false; - """) - if clicked: - print("已通过 JS 点击立即订购") - time.sleep(0.4) - elif not clicked: - # 尝试在 iframe 内点击 - in_iframe = page.run_js(""" - var iframes = document.querySelectorAll('iframe'); - for (var i = 0; i < iframes.length; i++) { - try { - var doc = iframes[i].contentDocument || iframes[i].contentWindow.document; - var all = doc.querySelectorAll('*'); - for (var j = 0; j < all.length; j++) { - var t = (all[j].innerText || all[j].textContent || '').trim(); - if (t.indexOf('立即订购') >= 0) { - all[j].scrollIntoView({block:'center'}); - all[j].dispatchEvent(new MouseEvent('click',{bubbles:true,cancelable:true,view:window})); - return true; - } - } - } catch(e) {} - } - return false; - """) - if in_iframe: - print("已在 iframe 内点击立即订购") - time.sleep(0.4) - else: - # 调试:输出包含「立即订购」的元素信息 - try: - info = page.run_js(""" - var out=[], all=document.querySelectorAll('*'); - for(var i=0;i=0) - out.push(all[i].tagName+(all[i].id?'#'+all[i].id:'')+(all[i].className?'.'+all[i].className.split(' ')[0]:'')); - } - return out.slice(0,5).join(', ') || '无'; - """) - print(f"调试: 包含「立即订购」的元素(前5个): {info}") - except Exception: - pass - print("警告: 未找到「立即订购」按钮,尝试继续...") - - phone_input = find_first(page, [ - 'x://input[@placeholder="请输入手机号码"]', - "css:input.inp-txt", - ], timeout=8) - if not phone_input: - raise RuntimeError("未找到手机号输入框") - - phone_input.input(args.phone, clear=True) - print(f"已输入手机号: {args.phone}") - - if not args.skip_agree: - agree = find_first(page, [ - "css:i.ico-checkbox", - 'x://i[contains(@class,"ico-checkbox")]', - ], timeout=2) - if agree: - try: - click_safe(agree) - print("已点击同意勾选") - except Exception: - print("同意勾选点击失败,继续执行") - - send_btn = find_first(page, [ - "css:button.btn-code", - 'x://button[contains(text(),"获取验证码")]', - ], timeout=8) - if not send_btn: - raise RuntimeError("未找到“获取验证码”按钮") - - click_safe(send_btn) - print("已点击获取验证码,等待滑块弹窗") - - # 等待验证码弹窗出现 - verify_box = find_first(page, [ - "css:.verifybox", - "css:.verify-bar-area", - ], timeout=6) - if not verify_box: - raise RuntimeError("未检测到滑块验证码弹窗") - - bg_img = find_first(page, ["css:.verify-img-panel img"], timeout=5) - piece_img = find_first(page, ["css:.verify-sub-block img"], timeout=5) - slider = find_first(page, ["css:.verify-move-block"], timeout=5) - bar = find_first(page, ["css:.verify-bar-area"], timeout=5) - - if not bg_img or not piece_img or not slider or not bar: - raise RuntimeError("验证码关键元素缺失(背景图/拼图块/滑块)") - - bg_src = wait_for_data_src(bg_img, timeout=10) - piece_src = wait_for_data_src(piece_img, timeout=10) - - bg_bytes = parse_data_url(bg_src) - piece_bytes = parse_data_url(piece_src) - - if len(bg_bytes) < 100 or len(piece_bytes) < 100: - raise RuntimeError(f"验证码图片数据异常: bg={len(bg_bytes)}B, piece={len(piece_bytes)}B") - - if args.debug_dir: - bg_path, piece_path = save_debug(Path(args.debug_dir), bg_bytes, piece_bytes) - print(f"已保存验证码图片: {bg_path} | {piece_path}") - - match = calc_drag_distance_from_bytes(bg_bytes, piece_bytes, alpha_threshold=args.alpha_threshold) - - # 用渲染宽度做像素→屏幕映射 - bg_display_w = page.run_js( - """const el = arguments[0]; const r = el.getBoundingClientRect(); return r.width;""", - bg_img, - ) - if not bg_display_w or bg_display_w <= 0: - bg_display_w = match["bg_width"] - scale = float(bg_display_w) / max(1, match["bg_width"]) - move_distance = int(round(match["drag_distance"] * scale)) + int(args.distance_adjust) - - print( - "滑块匹配结果: " - f"bg_width={match['bg_width']}, bg_display_w={bg_display_w}, " - f"target_x={match['target_x']}, drag_distance={match['drag_distance']}, " - f"scale={scale:.4f}, move_distance={move_distance}, " - f"confidence={match['confidence_ratio']:.4f}" - ) - - drag_slider(page, slider, move_distance) - time.sleep(args.wait_result) - - elapsed = time.perf_counter() - t_start - print(f"总耗时: {elapsed:.2f} 秒(程序开始 → 滑块滑动完成)") - - # 尝试判断是否通过:遮罩是否消失 - still_visible = page.run_js( - """ - const m = document.querySelector('.mask'); - if (!m) return false; - const s = window.getComputedStyle(m); - return s.display !== 'none' && s.visibility !== 'hidden' && s.opacity !== '0'; - """ - ) - if still_visible: - print("拖动已执行,但验证码弹窗仍在,可能需要微调 --distance-adjust") - else: - print("滑块拖动完成,验证码弹窗已关闭(疑似验证通过)") - - -def build_parser() -> argparse.ArgumentParser: - root = Path(__file__).resolve().parent - p = argparse.ArgumentParser(description="天翼订购页 1.html 自动滑块脚本") - p.add_argument("--url", default="http://yscnb.com/tyyp/1.html", help="目标页面 URL") - p.add_argument("--phone", required=True, help="手机号") - p.add_argument("--port", type=int, default=0, help="连接已有浏览器端口(可选)") - p.add_argument("--skip-agree", action="store_true", help="跳过勾选“同意办理”") - p.add_argument("--alpha-threshold", type=int, default=12, help="拼图 alpha 透明阈值") - p.add_argument("--distance-adjust", type=int, default=0, help="拖动距离微调像素") - p.add_argument("--wait-page", type=float, default=0.3, help="打开页面后等待秒数") - p.add_argument("--wait-result", type=float, default=0.5, help="拖动后等待结果秒数") - p.add_argument("--debug-dir", default=str(root / "captcha_debug"), help="验证码图片输出目录") - return p - - -def main() -> None: - args = build_parser().parse_args() - run(args) - - -if __name__ == "__main__": - main() diff --git a/worker/config.py b/worker/config.py index 6056905..45d1f40 100644 --- a/worker/config.py +++ b/worker/config.py @@ -4,8 +4,8 @@ Worker 配置。通过命令行参数或环境变量设置。 """ import os -# ─── 中央服务器 ─── -SERVER_WS_URL: str = os.getenv("SERVER_WS_URL", "ws://127.0.0.1:9000/ws") +# ─── 中央服务器(云端公网 IP 写死) ─── +SERVER_WS_URL: str = os.getenv("SERVER_WS_URL", "ws://8.137.99.82:9000/ws") # ─── Worker 标识 ─── WORKER_ID: str = os.getenv("WORKER_ID", "worker-1") diff --git a/下载 (1).png b/下载 (1).png deleted file mode 100644 index f998e74a77dcb9502bda7bc216c6c842b7911337..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 113986 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%0D?EH{$-?@Zh`fWn}PORN9a` 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 diff --git a/下载.png b/下载.png deleted file mode 100644 index 844d20ee7aebe5e0437daebdd167f92e047c76e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2492 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 diff --git a/部署说明.md b/部署说明.md new file mode 100644 index 0000000..8398a5c --- /dev/null +++ b/部署说明.md @@ -0,0 +1,56 @@ +# 部署说明 + +## 一、服务器部署 + +在服务器上,只需执行: + +```bash +python app.py +``` + +即可启动中央服务器(Django + Channels + 隧道)。 + +--- + +## 二、客户端部署(线下有比特浏览器的电脑) + +客户电脑可能不懂代码,需要提供 **GUI 程序**(PyQt5)完成「更新」和「启动」。 + +### 方式 A:源码运行(需安装 Python) + +1. 将项目拷贝到客户电脑 +2. 安装依赖:`pip install -r requirements.txt` +3. 运行 GUI:`python run_client.py` + +### 方式 B:打包为 exe(推荐,无需 Python) + +1. 安装 PyInstaller:`pip install pyinstaller` +2. 在项目根目录执行打包: + ```bash + # 打包客户端 GUI + pyinstaller build_client.spec + + # 打包 Worker(供 GUI 的「启动」按钮调用) + pyinstaller build_worker.spec + ``` +3. 将生成的文件合并: + - `dist/BOSS直聘Worker客户端/` 为 GUI 输出目录 + - 将 `dist/worker/worker.exe` 复制到 `dist/BOSS直聘Worker客户端/` 目录内 +4. 将整个 `BOSS直聘Worker客户端` 文件夹发给客户,客户双击 `BOSS直聘Worker客户端.exe` 即可使用 + +### GUI 功能说明 + +| 按钮 | 功能 | +|------|------| +| **更新代码** | 在项目目录执行 `git pull`,拉取最新自动化代码 | +| **启动** | 启动 Worker,连接服务器并执行任务 | + +配置项说明: + +- **服务器地址**:中央服务器 WebSocket 地址,如 `ws://8.137.99.82:9000/ws` +- **Worker ID**:本机 Worker 唯一标识 +- **Worker 名称**:便于识别的名称,如「电脑A」 + +> **说明**: +> - 若使用「更新」功能,需在客户电脑安装 Git,并将 exe 放在项目(git 仓库)目录内。 +> - 若不使用「更新」,可只分发打包后的 exe,客户只需填写服务器地址等信息后点击「启动」即可。