Add EasyEDA Std project source ingestion (10 boards backfilled)
打通 oshwhub origin=std 项目的工程源(schematic + PCB dataStr)抓取链路。原
plan.md §1.6 假设需要登录,实测 lceda.cn/api/documents/<doc>?uuid=<doc>&path=<doc>
对公开项目匿名可访问 —— 无需 cookie,无账号封禁风险。
调研:4 轮探测留痕在 data/state/std_probe[1-5]/(gitignored);翻 Std 编辑器
v6.5.51 的 main.min.js bundle 找到 ajaxDetail 端点;按 docType 区分两种
响应 shape(schematic 项目视图 vs PCB 文档视图)。
Crawler:
- make_source_client() 用浏览器 UA + lceda.cn/editor Referer,因为
oshwhub /api/project/<uuid> 端点拒绝 FacereDataset/0.1 UA(CLAUDE.md
UA 例外条款:目标站主动封自定义 UA + 公开静态资源)
- fetch_std_source(): 项目元 → version_documents → 逐文档 dataStr → 落
source/<doc>.json + source/manifest.json
- --with-source(爬新项目时一并抓源)/ --backfill-source(仅扫已有)
- QPS ≤ 0.2 (SLEEP_SOURCE = 5s) 自律
Schema: 加 source_format / source_path / source_documents / editor_version
(前 3 进 enum 锁定,便于后续 Pro / KiCad 源对齐)。
回填结果:10/10 成功,45 个文档,33.2 MB;schema validate 全通。
docTypes 主要是 1 (schematic) 与 3 (pcb);USB 电压电流表只有 PCB 文档(4 个:
主板+盖板+底板+面板,作者未上传原理图源)。
完整调研:docs/sources/easyeda_std_source.md。
This commit is contained in:
@@ -114,5 +114,42 @@
|
||||
"public": true,
|
||||
"publish": true,
|
||||
"skipped_files": []
|
||||
}
|
||||
},
|
||||
"source_format": "easyeda-std",
|
||||
"source_path": "source/",
|
||||
"source_documents": [
|
||||
{
|
||||
"doc_uuid": "c56a79c0509349b4be22d6f413ab1f69",
|
||||
"docType": 1,
|
||||
"master": "869b6ea265f8446595c7446ee07c618d",
|
||||
"path": "source/c56a79c0509349b4be22d6f413ab1f69.json",
|
||||
"size": 321179,
|
||||
"sha256": "ae6026a14794ba0fe108f9b0b561ba22a4af83b16f5487f2faa1f675d804931b"
|
||||
},
|
||||
{
|
||||
"doc_uuid": "ba150d03c64b479cb42d0ab34fd12709",
|
||||
"docType": 3,
|
||||
"master": "4d583c086dcd4686bab3e8103d15930a",
|
||||
"path": "source/ba150d03c64b479cb42d0ab34fd12709.json",
|
||||
"size": 1735811,
|
||||
"sha256": "cfeee04d27a9eeee7fad9e1d7a109c7dfdb32b0f30d674da38a2fbb3bc36a68b"
|
||||
},
|
||||
{
|
||||
"doc_uuid": "5c2114235e7f47e0998b8433ca808c30",
|
||||
"docType": 3,
|
||||
"master": "238bfc78d2c941bb950c329d4dcd15df",
|
||||
"path": "source/5c2114235e7f47e0998b8433ca808c30.json",
|
||||
"size": 1698152,
|
||||
"sha256": "650639d7b3cb39a306ec64f7da155dc4cf4fc99609655c28c55723185b7d2c67"
|
||||
},
|
||||
{
|
||||
"doc_uuid": "acfe4b335952431ea37f20b7a3000ada",
|
||||
"docType": 3,
|
||||
"master": "595aaccb3ff8474695bc11ec6785c419",
|
||||
"path": "source/acfe4b335952431ea37f20b7a3000ada.json",
|
||||
"size": 1748468,
|
||||
"sha256": "770e5633d531883a7e2d3f2a7581d50b8148c8f71b1f1e206cb1e1b2cb7acd8f"
|
||||
}
|
||||
],
|
||||
"editor_version": "6.5.37"
|
||||
}
|
||||
Reference in New Issue
Block a user