用途:当用户要求“查找/下载/获取某本书”时,book-finder 负责定位并下载 PDF 或 EPUB 文件,最终把校验过的文件交付给用户。
主要能力与来源优先级:先用网页搜索,按顺序尝试 Libgen(libgen.li,超时后试 libgen.rs、libgen.is)、Anna's Archive、大学服务器(site:edu filetype:pdf)、研究机构库、Archive.org、Bookey CDN 及通用 PDF 搜索。旧书(2015 年前)通常更易找到;近一两年的新书较难。
用法:Libgen 抓取分三步——先抓搜索页中的 ads.php?md5=HASH,再访问 ads 页解析 get.php 链接,最后下载。示例:curl -s -L --max-time 20 -H "User-Agent: Mozilla/5.0" "https://libgen.li/index.php?req=QUERY&columns%5B%5D=t&columns%5B%5D=a&objects%5B%5D=f&topics%5B%5D=l&res=25&gmode=on&filesuns=all" | grep -oiP 'ads.php?md5=[a-f0-9]+' | head -5;再取 get.php 链接并下载。
下载与校验:下载后用 head -c 5 检查文件头,%PDF- 表示有效 PDF,PK 表示有效 EPUB/ZIP;文件应不小于 50KB,否则多为错误或跳转页,需换源重试。
交付与限制:确认有效后,将文件作为附件、保存到工作目录或按请求渠道回复给用户。常见失败包括返回 HTML、403、超时、文件过小、书太新。若所有来源失败,应告知书太新或太小众,并提供购买链接。该技能不生成书籍,也不绕过出版商付费墙。