43 lines
1.4 KiB
Bash
43 lines
1.4 KiB
Bash
|
|
#!/bin/bash
|
|||
|
|
# Soul 第9章文章上传脚本:写好文章后直接上传,id 已存在则更新(不重复)
|
|||
|
|
# 用法: ./scripts/upload_soul_article.sh <文章md文件路径>
|
|||
|
|
# 例: ./scripts/upload_soul_article.sh "/Users/karuo/Documents/个人/2、我写的书/《一场soul的创业实验》/第四篇|真实的赚钱/第9章|我在Soul上亲访的赚钱案例/9.18 第105场|创业社群、直播带货与程序员.md"
|
|||
|
|
|
|||
|
|
set -e
|
|||
|
|
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|||
|
|
FILE="${1:?请提供文章 md 文件路径}"
|
|||
|
|
|
|||
|
|
if [[ ! -f "$FILE" ]]; then
|
|||
|
|
echo "错误: 文件不存在: $FILE"
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
# 从文件名提取 id,如 9.18 第105场|xxx.md -> 9.18
|
|||
|
|
BASENAME=$(basename "$FILE" .md)
|
|||
|
|
ID=$(echo "$BASENAME" | sed -E 's/^([0-9]+\.[0-9]+).*/\1/')
|
|||
|
|
if [[ ! "$ID" =~ ^[0-9]+\.[0-9]+$ ]]; then
|
|||
|
|
echo "错误: 无法从文件名提取 id,格式应为: 9.xx 第X场|标题.md"
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
# 从第一行 # 9.xx 第X场|标题 提取 title
|
|||
|
|
TITLE=$(head -1 "$FILE" | sed 's/^# [[:space:]]*//')
|
|||
|
|
if [[ -z "$TITLE" ]]; then
|
|||
|
|
TITLE="$BASENAME"
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
echo "上传: id=$ID title=$TITLE"
|
|||
|
|
python3 "$ROOT/content_upload.py" \
|
|||
|
|
--id "$ID" \
|
|||
|
|
--title "$TITLE" \
|
|||
|
|
--content-file "$FILE" \
|
|||
|
|
--part part-4 \
|
|||
|
|
--chapter chapter-9 \
|
|||
|
|
--price 1.0
|
|||
|
|
|
|||
|
|
# 上传成功后,按海报格式发到飞书群
|
|||
|
|
if [[ $? -eq 0 ]]; then
|
|||
|
|
echo "发海报到飞书..."
|
|||
|
|
python3 "$ROOT/scripts/send_poster_to_feishu.py" "$FILE" 2>/dev/null || true
|
|||
|
|
fi
|