Optimized the root .gitignore to exclude virtual environments, node modules, and temp folders to ensure clean and lightweight version tracking. Co-authored-by: Cursor <cursoragent@cursor.com>
168 lines
4.9 KiB
Bash
168 lines
4.9 KiB
Bash
#!/bin/bash
|
||
|
||
# anything-to-notebooklm Skill Installer
|
||
# 自动安装所有依赖并配置环境
|
||
|
||
set -e # 遇到错误立即退出
|
||
|
||
SKILL_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
SKILL_NAME="anything-to-notebooklm"
|
||
|
||
# 颜色输出
|
||
RED='\033[0;31m'
|
||
GREEN='\033[0;32m'
|
||
YELLOW='\033[1;33m'
|
||
BLUE='\033[0;34m'
|
||
NC='\033[0m' # No Color
|
||
|
||
echo -e "${BLUE}========================================${NC}"
|
||
echo -e "${BLUE} 多源内容 → NotebookLM 安装程序${NC}"
|
||
echo -e "${BLUE}========================================${NC}"
|
||
echo ""
|
||
|
||
# 1. 检查 Python 版本
|
||
echo -e "${YELLOW}[1/6] 检查 Python 环境...${NC}"
|
||
if ! command -v python3 &> /dev/null; then
|
||
echo -e "${RED}❌ 未找到 Python3,请先安装 Python 3.9+${NC}"
|
||
exit 1
|
||
fi
|
||
|
||
PYTHON_VERSION=$(python3 -c 'import sys; print(".".join(map(str, sys.version_info[:2])))')
|
||
REQUIRED_VERSION="3.9"
|
||
|
||
if [ "$(printf '%s\n' "$REQUIRED_VERSION" "$PYTHON_VERSION" | sort -V | head -n1)" != "$REQUIRED_VERSION" ]; then
|
||
echo -e "${RED}❌ Python 版本过低(当前 $PYTHON_VERSION,需要 3.9+)${NC}"
|
||
exit 1
|
||
fi
|
||
|
||
echo -e "${GREEN}✅ Python $PYTHON_VERSION${NC}"
|
||
|
||
# 2. 检查并克隆 wexin-read-mcp
|
||
echo ""
|
||
echo -e "${YELLOW}[2/6] 安装 MCP 服务器...${NC}"
|
||
MCP_DIR="$SKILL_DIR/wexin-read-mcp"
|
||
|
||
if [ -d "$MCP_DIR" ]; then
|
||
echo -e "${GREEN}✅ MCP 服务器已存在${NC}"
|
||
else
|
||
echo "正在克隆 wexin-read-mcp..."
|
||
git clone https://github.com/Bwkyd/wexin-read-mcp.git "$MCP_DIR"
|
||
echo -e "${GREEN}✅ MCP 服务器克隆完成${NC}"
|
||
fi
|
||
|
||
# 3. 安装 Python 依赖
|
||
echo ""
|
||
echo -e "${YELLOW}[3/6] 安装 Python 依赖...${NC}"
|
||
|
||
# 安装 MCP 服务器依赖
|
||
if [ -f "$MCP_DIR/requirements.txt" ]; then
|
||
echo "安装 MCP 依赖..."
|
||
pip3 install -r "$MCP_DIR/requirements.txt" -q
|
||
echo -e "${GREEN}✅ MCP 依赖安装完成${NC}"
|
||
fi
|
||
|
||
# 安装 Skill 依赖(包括 markitdown)
|
||
if [ -f "$SKILL_DIR/requirements.txt" ]; then
|
||
echo "安装 Skill 依赖(包括 markitdown 文件转换工具)..."
|
||
pip3 install -r "$SKILL_DIR/requirements.txt" -q
|
||
echo -e "${GREEN}✅ Skill 依赖安装完成${NC}"
|
||
echo -e "${GREEN}✅ markitdown 已安装(支持 15+ 文件格式转换)${NC}"
|
||
fi
|
||
|
||
# 4. 安装 Playwright 浏览器
|
||
echo ""
|
||
echo -e "${YELLOW}[4/6] 安装 Playwright 浏览器...${NC}"
|
||
echo "这可能需要几分钟,请耐心等待..."
|
||
|
||
if python3 -c "from playwright.sync_api import sync_playwright" 2>/dev/null; then
|
||
playwright install chromium
|
||
echo -e "${GREEN}✅ Playwright 浏览器安装完成${NC}"
|
||
else
|
||
echo -e "${RED}❌ Playwright 导入失败,请检查安装${NC}"
|
||
exit 1
|
||
fi
|
||
|
||
# 5. 检查并安装 notebooklm
|
||
echo ""
|
||
echo -e "${YELLOW}[5/6] 检查 NotebookLM CLI...${NC}"
|
||
|
||
if command -v notebooklm &> /dev/null; then
|
||
NOTEBOOKLM_VERSION=$(notebooklm --version 2>/dev/null || echo "unknown")
|
||
echo -e "${GREEN}✅ NotebookLM CLI 已安装 ($NOTEBOOKLM_VERSION)${NC}"
|
||
else
|
||
echo "正在安装 notebooklm-py..."
|
||
pip3 install git+https://github.com/teng-lin/notebooklm-py.git -q
|
||
|
||
if command -v notebooklm &> /dev/null; then
|
||
echo -e "${GREEN}✅ NotebookLM CLI 安装完成${NC}"
|
||
else
|
||
echo -e "${RED}❌ NotebookLM CLI 安装失败${NC}"
|
||
echo "请手动安装:pip3 install git+https://github.com/teng-lin/notebooklm-py.git"
|
||
exit 1
|
||
fi
|
||
fi
|
||
|
||
# 6. 配置指导
|
||
echo ""
|
||
echo -e "${YELLOW}[6/6] 配置指导${NC}"
|
||
echo ""
|
||
|
||
CLAUDE_CONFIG="$HOME/.claude/config.json"
|
||
CONFIG_SNIPPET=" \"weixin-reader\": {
|
||
\"command\": \"python\",
|
||
\"args\": [
|
||
\"$MCP_DIR/src/server.py\"
|
||
]
|
||
}"
|
||
|
||
echo -e "${BLUE}📝 下一步:配置 MCP 服务器${NC}"
|
||
echo ""
|
||
echo "请编辑 $CLAUDE_CONFIG"
|
||
echo ""
|
||
echo "在 \"mcpServers\" 中添加:"
|
||
echo -e "${GREEN}$CONFIG_SNIPPET${NC}"
|
||
echo ""
|
||
echo "完整配置示例:"
|
||
echo -e "${GREEN}{
|
||
\"primaryApiKey\": \"any\",
|
||
\"mcpServers\": {
|
||
$CONFIG_SNIPPET
|
||
}
|
||
}${NC}"
|
||
echo ""
|
||
|
||
# 检查是否已配置
|
||
if [ -f "$CLAUDE_CONFIG" ]; then
|
||
if grep -q "weixin-reader" "$CLAUDE_CONFIG"; then
|
||
echo -e "${GREEN}✅ 检测到已有 weixin-reader 配置${NC}"
|
||
else
|
||
echo -e "${YELLOW}⚠️ 未检测到 weixin-reader 配置,请手动添加${NC}"
|
||
fi
|
||
else
|
||
echo -e "${YELLOW}⚠️ 未找到 Claude 配置文件,请手动创建${NC}"
|
||
fi
|
||
|
||
echo ""
|
||
echo -e "${BLUE}🔐 NotebookLM 认证${NC}"
|
||
echo ""
|
||
echo "首次使用前,请运行:"
|
||
echo -e "${GREEN} notebooklm login${NC}"
|
||
echo -e "${GREEN} notebooklm list # 验证认证成功${NC}"
|
||
echo ""
|
||
|
||
# 最终检查
|
||
echo ""
|
||
echo -e "${BLUE}========================================${NC}"
|
||
echo -e "${GREEN}✅ 安装完成!${NC}"
|
||
echo -e "${BLUE}========================================${NC}"
|
||
echo ""
|
||
echo "📦 安装位置:$SKILL_DIR"
|
||
echo ""
|
||
echo "⚠️ 重要提醒:"
|
||
echo " 1. 配置 MCP 服务器后需要重启 Claude Code"
|
||
echo " 2. 首次使用前运行 notebooklm login"
|
||
echo ""
|
||
echo "🚀 使用示例:"
|
||
echo " 把这篇文章生成播客 https://mp.weixin.qq.com/s/xxx"
|
||
echo ""
|