novel-doomsday-resurgence/ultimate_solution.sh
2026-04-06 22:06:30 +08:00

204 lines
5.4 KiB
Bash
Executable File
Raw Permalink 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
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章及后续章节。"