novel-doomsday-resurgence/ultimate_solution.sh

204 lines
5.4 KiB
Bash
Raw Normal View History

#!/bin/bash
echo "=== inkos 问题终极解决方案 ==="
echo "此方案将:"
echo "1. 备份现有章节文件"
echo "2. 创建全新的inkos项目"
echo "3. 导入现有章节"
echo "4. 测试创作功能"
echo ""
# 1. 停止所有进程
echo "1. 停止所有inkos进程..."
pkill -9 -f "inkos" 2>/dev/null || true
sleep 2
# 2. 备份章节文件
echo "2. 备份章节文件..."
BACKUP_DIR="/root/.openclaw/workspace/backups/chapters_backup_$(date +%Y%m%d_%H%M%S)"
mkdir -p "$BACKUP_DIR"
# 备份原始章节文件
CHAPTERS_SOURCE="/root/.openclaw/workspace/tomato-novel/tomato-novel/books/末日重生-开局囤货十亿物资/chapters"
if [ -d "$CHAPTERS_SOURCE" ]; then
cp -r "$CHAPTERS_SOURCE" "$BACKUP_DIR/"
echo " 章节文件已备份到: $BACKUP_DIR"
fi
# 3. 清理旧的inkos数据
echo "3. 清理旧的inkos数据..."
rm -rf /root/.openclaw/workspace/tomato-novel/books/末日重生-开局囤货十亿物资/story 2>/dev/null || true
rm -rf /root/.openclaw/workspace/tomato-novel/books/末日重生-开局囤货十亿物资 2>/dev/null || true
# 4. 创建最简单的inkos配置
echo "4. 创建最简单的inkos配置..."
cat > /root/.openclaw/workspace/tomato-novel/inkos_ultimate.json << 'EOF'
{
"name": "tomato-novel-ultimate",
"version": "0.1.0",
"language": "zh",
"llm": {
"provider": "custom",
"baseUrl": "https://ark.cn-beijing.volces.com/api/coding/v3",
"model": "deepseek-v3.2"
},
"daemon": {
"schedule": {
"writeCron": "0 */1 * * *"
},
"maxConcurrentBooks": 1
},
"quality": {
"enforcement": "none"
}
}
EOF
cp /root/.openclaw/workspace/tomato-novel/inkos_ultimate.json /root/.openclaw/workspace/tomato-novel/inkos.json
# 5. 创建新的小说项目
echo "5. 创建新的小说项目..."
cd /root/.openclaw/workspace/tomato-novel
# 创建书籍目录结构
BOOK_DIR="books/末日重生-开局囤货十亿物资"
mkdir -p "$BOOK_DIR/chapters"
mkdir -p "$BOOK_DIR/story/state"
mkdir -p "$BOOK_DIR/story/runtime"
# 创建基本的book.json
cat > "$BOOK_DIR/book.json" << 'EOF'
{
"id": "末日重生-开局囤货十亿物资",
"title": "末日重生:开局囤货十亿物资",
"platform": "tomato",
"genre": "urban",
"language": "zh",
"targetChapters": 200,
"currentChapter": 143,
"status": "active",
"createdAt": "2026-04-06T21:55:00.000Z",
"updatedAt": "2026-04-06T21:55:00.000Z"
}
EOF
# 6. 复制章节文件
echo "6. 复制章节文件..."
if [ -d "$CHAPTERS_SOURCE" ]; then
# 只复制第136-143章避免任何数据错误
for chapter in {136..143}; do
chapter_file=$(find "$CHAPTERS_SOURCE" -name "${chapter}_*.md" | head -1)
if [ -f "$chapter_file" ]; then
cp "$chapter_file" "$BOOK_DIR/chapters/"
echo " 复制: $(basename "$chapter_file")"
fi
done
# 复制最新的index.json
if [ -f "$CHAPTERS_SOURCE/index.json" ]; then
cp "$CHAPTERS_SOURCE/index.json" "$BOOK_DIR/chapters/"
echo " 复制: index.json"
fi
fi
# 7. 创建简单的index.json只包含136-143章
echo "7. 创建简单的index.json..."
cat > "$BOOK_DIR/chapters/index_simple.json" << 'EOF'
[
{
"number": 136,
"title": "危机升级",
"status": "ready-for-review",
"wordCount": 2442
},
{
"number": 137,
"title": "暗流涌动",
"status": "ready-for-review",
"wordCount": 3494
},
{
"number": 138,
"title": "夜色酒吧",
"status": "ready-for-review",
"wordCount": 3467
},
{
"number": 139,
"title": "眼镜来访",
"status": "ready-for-review",
"wordCount": 3345
},
{
"number": 140,
"title": "资金链危机",
"status": "ready-for-review",
"wordCount": 2626
},
{
"number": 141,
"title": "眼镜的选择",
"status": "ready-for-review",
"wordCount": 2291
},
{
"number": 142,
"title": "老火车站的交易",
"status": "ready-for-review",
"wordCount": 2580
},
{
"number": 143,
"title": "刀疤刘的行动",
"status": "ready-for-review",
"wordCount": 2102
}
]
EOF
cp "$BOOK_DIR/chapters/index_simple.json" "$BOOK_DIR/chapters/index.json"
# 8. 启动inkos
echo "8. 启动inkos守护进程..."
nohup inkos up > /tmp/inkos_ultimate_start.log 2>&1 &
sleep 10
# 9. 检查启动状态
echo "9. 检查启动状态..."
if ps aux | grep -q "inkos up" | grep -v grep; then
PID=$(ps aux | grep "inkos up" | grep -v grep | awk '{print $2}')
echo "✅ inkos 守护进程已启动 (PID: $PID)"
# 等待一下,然后检查状态
sleep 5
echo "10. 检查inkos状态..."
inkos status 2>&1
echo ""
echo "11. 测试创作第144章..."
echo "正在创作请等待30-60秒..."
# 尝试创作下一章
result=$(timeout 30 inkos draft 末日重生-开局囤货十亿物资 2>&1 | head -30)
if echo "$result" | grep -q "Writing draft for"; then
echo "✅ inkos 创作测试成功!"
echo "inkos现在应该可以正常创作了。"
else
echo "❌ inkos 创作测试失败"
echo "错误信息:"
echo "$result"
echo ""
echo "查看详细日志: tail -50 /tmp/inkos_ultimate_start.log"
fi
else
echo "❌ inkos 启动失败"
echo "查看日志: tail -50 /tmp/inkos_ultimate_start.log"
fi
echo ""
echo "=== 解决方案完成 ==="
echo "备份位置: $BACKUP_DIR"
echo "如果创作成功inkos将继续自动创作第144章及后续章节。"