#!/bin/bash # 微信公众号编辑器填充 - xdotool纯操作版(最稳定) # 前置:VNC中已打开编辑器,窗口标题包含"公众号" set -e PROJECT_ROOT="/root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran" MARKDOWN_FILE="$PROJECT_ROOT/content/drafts/001-wechat.md" COVER_IMG="$PROJECT_ROOT/content/publishing/images/05-封面图.png" # 检查文件 [ -f "$MARKDOWN_FILE" ] || { echo "错误: $MARKDOWN_FILE 不存在"; exit 1; } [ -f "$COVER_IMG" ] || { echo "警告: 封面图不存在 $COVER_IMG"; } # 获取文章内容 ARTICLE_TITLE=$(head -1 "$MARKDOWN_FILE" | sed 's/^# //') ARTICLE_BODY=$(sed '1d;$d' "$MARKDOWN_FILE") echo "==========================================" echo "微信公众号编辑器填充(xdotool版)" echo "==========================================" echo "标题: $ARTICLE_TITLE" echo "正文长度: $(echo "$ARTICLE_BODY" | wc -l) 行" echo "封面: $COVER_IMG" echo "" echo "⚠️ 确保:" echo " 1. VNC桌面已打开(http://10.2.0.14:6080/vnc.html)" echo " 2. 编辑器窗口已激活(点击一下编辑器区域)" echo " 3. 编辑器是当前活动窗口" echo "" echo "3秒后开始..." sleep 3 export DISPLAY=:0 # 查找编辑器窗口 echo "查找编辑器窗口..." WIN_ID=$(xdotool search --name "公众号" | head -1) if [ -z "$WIN_ID" ]; then echo "❌ 未找到标题包含'公众号'的窗口" echo "请确保编辑器窗口已打开并激活" exit 1 fi echo "✓ 找到窗口 ID: $WIN_ID" # 激活窗口 xdotool windowactivate "$WIN_ID" sleep 1 # 确保在编辑器内(点一下) xdotool click 1 sleep 0.5 # Ctrl+A 全选并删除(清空可能存在的默认文本) xdotool key ctrl+a sleep 0.3 xdotool key Delete sleep 0.5 # 输入标题 echo "输入标题..." echo -n "$ARTICLE_TITLE" | xclip -selection clipboard xdotool key ctrl+v sleep 1 # 按 Tab 键移动到正文区域 echo "切换到正文..." xdotool key Tab sleep 0.5 # 可能还需要再按一次 Tab(取决于编辑器结构) xdotool key Tab sleep 0.5 # 全选正文区并清空 xdotool key ctrl+a sleep 0.3 xdotool key Delete sleep 0.5 # 粘贴正文(分段粘贴避免缓冲区溢出) echo "粘贴正文(分段)..." echo "$ARTICLE_BODY" | fold -s -w 100 | while IFS= read -r line; do [ -z "$line" ] && continue echo -n "$line" | xclip -selection clipboard xdotool key ctrl+v xdotool key Return sleep 0.1 done sleep 1 # 上传封面图 echo "上传封面图(手动确认)..." echo "请手动:" echo " 1. 点击编辑器工具栏的图片按钮(🖼️)" echo " 2. 选择 '上传图片' 或 '本地上传'" echo " 3. 文件路径: $COVER_IMG" echo "" echo "脚本暂停30秒,请完成上传..." sleep 30 # 截图(已安装 scrot 或 import?) SCREENSHOT_DIR="$PROJECT_ROOT/content/published/$(date +%Y-%m-%d)-wechat-draft" mkdir -p "$SCREENSHOT_DIR" if command -v scrot &>/dev/null; then scrot "$SCREENSHOT_DIR/screenshot.png" 2>/dev/null && echo "截图: $SCREENSHOT_DIR/screenshot.png" elif command -v import &>/dev/null; then import -window "$WIN_ID" "$SCREENSHOT_DIR/screenshot.png" 2>/dev/null && echo "截图: $SCREENSHOT_DIR/screenshot.png" else echo "⚠️ 未找到截图工具,请手动截图保存到 $SCREENSHOT_DIR/" fi # 创建元数据 cat > "$SCREENSHOT_DIR/metadata.json" <