Files
yu-zhi-ran/automation/fill_wechat_via_xdotool.sh
T

140 lines
4.2 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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" <<EOF
{
"title": "$ARTICLE_TITLE",
"markdown_file": "$MARKDOWN_FILE",
"cover_image": "$COVER_IMG",
"created_at": "$(date -Iseconds)",
"status": "draft",
"auto_filled": true,
"notes": "标题和正文已通过xdotool自动填充,封面图已手动上传到正文开头。请手动:1. 点击编辑器右侧'从正文选择'设置封面 2. 填写摘要和标签 3. 保存草稿"
}
EOF
echo "元数据: $SCREENSHOT_DIR/metadata.json"
echo ""
echo "=========================================="
echo "✅ 自动填充完成!"
echo "=========================================="
echo "剩余步骤(手动):"
echo " 1. 编辑器右侧 → 点击'从正文选择' → 选第一张图"
echo " 2. 填写摘要(150字内)"
echo " 3. 添加标签:阳台种菜,城市农业,种植,园艺"
echo " 4. 声明原创(如需)"
echo " 5. 保存草稿或发表"
echo ""
echo "编辑器窗口 ID: $WIN_ID"
echo "=========================================="