Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

书库扫描入库

v1.0.0

扫描本地电子书库,自动提取元数据、分类整理、联网搜索书籍简介,生成Obsidian笔记的完整工作流。支持EPUB/MOBI/AZW3/PDF格式。

0· 60·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for fatblue/book-library-scanner.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "书库扫描入库" (fatblue/book-library-scanner) from ClawHub.
Skill page: https://clawhub.ai/fatblue/book-library-scanner
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install book-library-scanner

ClawHub CLI

Package manager switcher

npx clawhub@latest install book-library-scanner
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
技能声称扫描本地书库、抓取简介并生成 Obsidian 笔记;提供的 Python 脚本基本实现了扫描、分类和笔记生成,功能与描述一致。不过存在不一致:SKILL.md 和代码引用了一个名为 search_book.ps1 的 PowerShell 搜索封装脚本,但该 .ps1 文件并未包含在清单中;此外代码中对 PyMuPDF (fitz) 的导入用于 PDF 元数据提取,但没有在元数据或安装说明中声明该依赖。
!
Instruction Scope
核心运行流程会遍历并读取用户指定的目录下所有 .epub/.mobi/.azw3/.pdf 文件并写入索引与 Markdown 文件——这与用途相符。但 batch_search.py 使用 subprocess.run 调用外部 PowerShell 脚本(search_book.ps1),该脚本会执行“联网搜索简介”的逻辑;因为 search_book.ps1 未提供,无法确认其网络行为与目标站点。通过 subprocess 向 PowerShell 传入书名参数的做法允许外部脚本决定如何处理或传输这些参数(可能造成数据外发),所以必须审查该 PowerShell 脚本或仅在可信环境下运行。
Install Mechanism
这是 instruction-plus-scripts 的无安装规格包(不自动下载或写入新二进制),所以安装风险较低。但脚本依赖未声明:extract_pdf_metadata 导入 fitz (PyMuPDF),实际运行需要用户预装该包。缺少 search_book.ps1 也意味着用户或调用者可能要提供自定义脚本——这会改变安全边界。
Credentials
技能不要求任何环境变量或凭证,且不访问系统级配置路径,这与其本地文件处理目的相称。唯一需要注意的是,如果提供或使用 search_book.ps1,它可能需要网络或 API Key(未声明);在提供该脚本或将其取自不可信来源前,应确认是否需要凭证并评估其用途。
Persistence & Privilege
技能未请求始终驻留或修改其他技能/系统配置;默认的自治调用设置保持为平台默认,且脚本仅在用户调用时对指定目录读写索引和笔记,权限范围与描述相符。
What to consider before installing
该技能大体上做它声称的事:扫描本地书库、提取元数据并生成 Obsidian 笔记。但在安装/运行前请注意并采取以下步骤: - 检查缺失文件:清单和说明中提到 scripts/search_book.ps1,但发布包里没有该文件;如果你需要网络搜索简介,作者应该提供该脚本或说明如何安全配置。不要运行来自不可信来源的 PowerShell 脚本。 - 审查外部脚本:batch_search.py 会通过 subprocess 调用 PowerShell 并传入书名参数。任何被调用的 PowerShell 脚本都可能将这些参数或其他信息发送到网络端点,务必先打开并审查 search_book.ps1 的实现和目标 URL 或 API 调用。 - 依赖项确认:extract_pdf_metadata 导入 fitz (PyMuPDF) 但包未列在说明中。若系统上未安装该库,PDF 元数据提取会失败;安装前请确认并仅从可信来源安装依赖。 - 最小权限与目录选择:脚本会递归读取你指定的书库目录并写入输出目录。仅对不含敏感/私人文件的目录运行,或在隔离环境(虚拟机、容器)中先行测试。 - 备份与试运行:在对真实 Obsidian 笔记目录运行前备份目标目录,或先在临时目录做一次完整运行以确认输出符合预期。 如果作者能提供缺失的 search_book.ps1、声明必要的 Python 依赖并说明 search API 的具体端点/认证需求,能显著提高可信度。当前有这些不一致,建议在审查并确认外部脚本安全之前将此技能视为“可用但需谨慎”。

Like a lobster shell, security has layers — review code before you run it.

latestvk973efxn57msxspk882avpzbxn853gs0
60downloads
0stars
1versions
Updated 1w ago
v1.0.0
MIT-0

Book Library Scanner - 书库扫描入库技能

将本地电子书库扫描、分类整理、搜索简介、导入Obsidian的完整工作流。

触发场景

当用户提到以下需求时使用此技能:

  • 扫描电子书库、整理书库
  • 给书籍补充简介、搜索书籍信息
  • 导入Obsidian、建立书库目录
  • book library, scan books, organize ebooks

工作流程

1. 扫描书库目录

# 扫描指定目录,提取epub/mobi/azw3/pdf格式的书籍元数据
# 支持读取书名、作者、分类等信息

关键函数

  • scan_book_directory(book_dir) - 扫描书库目录
  • extract_metadata(filepath) - 提取单本书的元数据

2. 分类整理

分类规则

  • 根据书名/作者中的国家标注分类:如"(美)"、"(德)"、"(英)"、"(法)"等
  • 默认分类:文学、历史、心理学、哲学、经济、科学技术、其他
  • 目录结构:分类/国家/作者/书名.md

3. 搜索书籍简介

API调用: 使用元宝搜索API搜索书籍简介,每个请求间隔2秒避免限流。

Windows编码处理

  • PowerShell子进程传中文参数时,用UTF-8编码
  • Python读取输出时用 decode('utf-8', errors='ignore')

4. 生成Obsidian笔记

每本书生成一个Markdown文件,包含:

  • 书名、作者、分类、国家、格式
  • 内容简介(从网络搜索获取)
  • 来源链接

配置参数

参数说明默认值
book_dir书库源目录必填
output_dir输出目录Required
batch_size每批处理数量500
delay_secondsAPI请求间隔2
save_every每...本保存一次100

文件结构

书库/
├── 书库索引.json        # 主索引(含全部书籍信息)
├── 书库总目录.md         # 总览文档
├── 文学/               # 分类文件夹
│   ├── 中国/           # 国家文件夹
│   │   ├── 鲁迅/       # 作者文件夹
│   │   │   ├── 呐喊.md
│   │   │   └── ...
│   └── ...
└── ...

索引文件格式

{
  "version": "1.0",
  "scan_date": "2026-04-18",
  "books": [
    {
      "title": "书名",
      "author": "作者",
      "category": "文学",
      "country": "中国",
      "format": "EPUB",
      "filename": "原文件名.epub",
      "filepath": "原文件路径",
      "introduction": "内容简介",
      "intro_source": "来源URL"
    }
  ]
}

技术要点

Windows编码问题

Python调用PowerShell传递中文参数时:

result = subprocess.run(
    ['powershell', '-File', script_path, '-Keyword', keyword],
    capture_output=True,
    timeout=30
)
output = result.stdout.decode('utf-8', errors='ignore').strip()

文件名安全处理

import re
safe_name = re.sub(r'[<>:"/\\|?*]', '', original_name)[:50]

批量处理检查点

每批完成后保存进度,支持断点续传:

checkpoint = {
    'last_batch': batch_num,
    'total_found': found_count,
    'last_index': last_processed_index,
    'timestamp': datetime.now().isoformat()
}

已知问题

  1. 拼音书名:部分书籍元数据提取失败时,会使用文件夹拼音名作为书名。需要后续人工处理或更复杂的转换逻辑。

  2. 搜索成功率:后续批次的搜索成功率可能下降(80-99%),因为冷门书籍的搜索结果较少。

  3. API限流:每请求间隔2秒,批量处理时需要较长时间(每500本约35-45分钟)。

示例用法

用户: 帮我扫描 D:\LWbook 书库,整理后导入 Obsidian

执行步骤:
1. 扫描 D:\LWbook 目录
2. 提取书籍元数据
3. 按分类→国家→作者整理
4. 搜索每本书的简介
5. 生成 Obsidian Markdown 笔记
6. 建立索引文件

相关文件

  • scripts/book_scanner.py - 书库扫描脚本
  • scripts/batch_search.py - 批量搜索简介脚本
  • scripts/generate_notes.py - 生成Obsidian笔记脚本
  • scripts/search_book.ps1 - PowerShell搜索封装

Comments

Loading comments...