feat: PeopleLib 开放文献客户端,集成 Z-Library 与 LibGen 等多源检索

Electron 桌面客户端,聚合多个开放获取文献源的搜索、详情与下载。

新增数据源:
- Z-Library:邮箱登录(凭据本地存储),会话失效自动重登
- LibGen:适配新版 libgen.ac 前端(旧版 search.php 镜像已全部下线)
- Memory of the World、Sci-Hub、Anna's Archive

基础设施:
- mirror.js:镜像故障转移,支持串行优先与并发竞速两种策略,
  失效镜像 5 分钟冷却后自动重试,避免站点恢复后被永久跳过
- http.js:统一 15 秒请求超时,防止单个卡死镜像拖垮整次搜索
- settings.js:全局代理配置持久化,经 Electron net.fetch 生效于所有请求

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
This commit is contained in:
lofyer
2026-07-25 14:51:10 +08:00
co-authored by factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
commit 1a1288ce18
33 changed files with 4640 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
{
"name": "peoplelib",
"version": "1.0.0",
"description": "开放获取文献与图书客户端(arXiv / Gutenberg / Open Library / DOAJ / PMC / bioRxiv / Standard Ebooks / Semantic Scholar / LibGen / Z-Library",
"main": "main.js",
"author": "peoplelib",
"license": "MIT",
"scripts": {
"start": "electron .",
"portable": "node build-portable.js"
},
"dependencies": {
"undici": "^8.9.0"
},
"devDependencies": {
"electron": "^31.0.0"
},
"build": {
"appId": "com.peoplelib.client",
"productName": "PeopleLib",
"directories": {
"output": "dist"
},
"files": [
"main.js",
"preload.js",
"src/**/*"
],
"win": {
"target": "portable"
},
"portable": {
"artifactName": "PeopleLib-${version}.exe"
}
}
}