Initial commit: yu-zhi-ran platform with automation integration
This commit is contained in:
Executable
+139
@@ -0,0 +1,139 @@
|
||||
#!/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 "=========================================="
|
||||
Reference in New Issue
Block a user