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:
2026-04-28 20:07:40 +08:00
parent b0d3afd2a9
commit d874278bc5
71 changed files with 4389 additions and 23 deletions

View File

@@ -180,5 +180,42 @@
"public": true,
"publish": true,
"skipped_files": []
}
},
"source_format": "easyeda-std",
"source_path": "source/",
"source_documents": [
{
"doc_uuid": "0e91d3210cdd4c54bf58c30ff31b78c2",
"docType": 3,
"master": "d50d0e8035ab40c39987851c604ac352",
"path": "source/0e91d3210cdd4c54bf58c30ff31b78c2.json",
"size": 747096,
"sha256": "1fd20602691e13102f9264779d9c456ed2f6a60393d035fc2562920ffd636661"
},
{
"doc_uuid": "b3fc7f40d4004622a89702e9da1ff2d6",
"docType": 3,
"master": "6b388d56a36943209dc17d4d3d07f584",
"path": "source/b3fc7f40d4004622a89702e9da1ff2d6.json",
"size": 72115,
"sha256": "86694d11f3340f421d3467731154639f47876b7c2a3e62d981f8ab5891c3aabf"
},
{
"doc_uuid": "7612e6a35ba140c7b5937a8d5ccf82e6",
"docType": 3,
"master": "ad346b0e059b48f1b87244f69c9ffe4e",
"path": "source/7612e6a35ba140c7b5937a8d5ccf82e6.json",
"size": 160029,
"sha256": "28be186016594f713deeff8827d3ae841540806f15bfff8cd6faa020e83d540d"
},
{
"doc_uuid": "90e07bcc09654d23ac6474e80d7096da",
"docType": 3,
"master": "f683fb448b1242c58ba85eb3a8e7822c",
"path": "source/90e07bcc09654d23ac6474e80d7096da.json",
"size": 217239,
"sha256": "909c9ad1cd7053fb21b088911eb92445344c14dcac1444353f955edb59f8411d"
}
],
"editor_version": "6.5.15"
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,155 @@
{
"project_uuid": "1a1e865568d04db59a5a140dd3f13581",
"fetched_at": "2026-04-28T11:45:46.103030+00:00",
"editor_version": "6.5.15",
"documents": [
{
"doc_uuid": "0e91d3210cdd4c54bf58c30ff31b78c2",
"docType": 3,
"master": "d50d0e8035ab40c39987851c604ac352",
"path": "source/0e91d3210cdd4c54bf58c30ff31b78c2.json",
"size": 747096,
"sha256": "1fd20602691e13102f9264779d9c456ed2f6a60393d035fc2562920ffd636661"
},
{
"doc_uuid": "b3fc7f40d4004622a89702e9da1ff2d6",
"docType": 3,
"master": "6b388d56a36943209dc17d4d3d07f584",
"path": "source/b3fc7f40d4004622a89702e9da1ff2d6.json",
"size": 72115,
"sha256": "86694d11f3340f421d3467731154639f47876b7c2a3e62d981f8ab5891c3aabf"
},
{
"doc_uuid": "7612e6a35ba140c7b5937a8d5ccf82e6",
"docType": 3,
"master": "ad346b0e059b48f1b87244f69c9ffe4e",
"path": "source/7612e6a35ba140c7b5937a8d5ccf82e6.json",
"size": 160029,
"sha256": "28be186016594f713deeff8827d3ae841540806f15bfff8cd6faa020e83d540d"
},
{
"doc_uuid": "90e07bcc09654d23ac6474e80d7096da",
"docType": 3,
"master": "f683fb448b1242c58ba85eb3a8e7822c",
"path": "source/90e07bcc09654d23ac6474e80d7096da.json",
"size": 217239,
"sha256": "909c9ad1cd7053fb21b088911eb92445344c14dcac1444353f955edb59f8411d"
}
],
"upstream_version_documents": [
{
"uuid": "0e91d3210cdd4c54bf58c30ff31b78c2",
"title": "USBMETER-PD/QC修改版",
"description": "",
"docType": 3,
"master": "d50d0e8035ab40c39987851c604ac352",
"thumb": "//image.lceda.cn/histories/d50d0e8035ab40c39987851c604ac352.png",
"components": {
"e7f085e4f71344109c090040716070ab": 1,
"bade90667a6e4731855e9a223387b8a6": 1,
"34d485a31ab749c2a421a61ecb5de7d3": 1,
"4c67b61cce2943f89ac2fdf86f39facf": 1,
"fafd024f554e426eb74cf4a204aa88b0": 18,
"93502b2173e143198b8edc82f517bb53": 1,
"f8151fdc728a41ebbc304e11d39e5437": 2,
"176eead66a5c45e698aceb33a5f6fe97": 4,
"deb597b15c4c4d0f898906b163012236": 1,
"a5d1478200fe427bab1da880f4a8b4f5": 1,
"60e744143af94b7aa77e76c6d1b4b0e0": 1,
"f3d2a2ecf658447dac746eb15158a989": 1,
"da4c0c6156674e778b193ed08c9ff682": 1,
"e8d9c1b75ef643a2a39de188d3713bd2": 1,
"0a2cbe4d4c4c4bbdaa1b54b90d8b9abc": 3,
"5777648ee3534e66ad7ac0cf17dbf683": 2,
"706974f9e1a34f92a5d7dc78885fbc2f": 2,
"56220e626cd546f79eea71e5179df3e8": 2,
"65447a8446304f0d90c483ebc9e6c046": 1,
"3247e1a5a12442768d01abe323a15d1c": 1,
"904b05bf744941788ee266e1db69f507": 1
},
"updateTime": 1666588075,
"createTime": 1660242710,
"histories": [
"b96420920edd4ebeb25a7b81e98f045b",
"7e93ce00b2984413b79c644e88eff342",
"a1579b97f09c4ec5865634844a8433dd",
"34186b439ba9469a99ff76fffcac4d4f",
"5fcac6ffa0094200a5b000543b2c3737",
"8fd658fa2e724dcca7591f3979454e4a",
"ffe360934e8a41d386120d0958495ef1",
"fb05639607a848d88e376f8e3a13c9f7",
"e33426884e9548b78f61877d6208c68e",
"dc2198174fe34fb8874f9cd52196bd3f",
"90071cb8e17645f6bbfc8ce126562f4f",
"c8f3259745fd434cb9f229371c58708e",
"4280c35e162f4d159ecd2d16159eaa2b",
"71331646b6bd49139028d9ef5adf363e",
"08342402dda949e7997498f2d74b3353",
"e57753e6303343cf9e25b1d65908ffbb",
"84b5b7166dc44fd69629971b5652a8c8",
"8646dd8d52e54e44aa2d7a12f17fce4e",
"72f68a5171ca423086beaf3b970788b4",
"f10a0e02cf324c96b6d353e77a66951e",
"dd793ab517184c30a93850c5927f698e",
"b8109a61abd5484b9e77336b96df9cba",
"f8df29163c0d49e2a22ebbe162f32013",
"d50d0e8035ab40c39987851c604ac352"
]
},
{
"uuid": "b3fc7f40d4004622a89702e9da1ff2d6",
"title": "盖板",
"description": "",
"docType": 3,
"master": "6b388d56a36943209dc17d4d3d07f584",
"thumb": "//image.lceda.cn/histories/6b388d56a36943209dc17d4d3d07f584.png",
"components": null,
"updateTime": 1660623314,
"createTime": 1660243172,
"histories": [
"6606071b93be4377aa45c8e9100fd2a8",
"3f8780754f9643e6981653241ab62dc3",
"2e3de5db24f440fc89fb362fdc4f4978",
"4f7130a33f2f4c8f826877c59bfb2de6",
"6b388d56a36943209dc17d4d3d07f584"
]
},
{
"uuid": "7612e6a35ba140c7b5937a8d5ccf82e6",
"title": "底板",
"description": "",
"docType": 3,
"master": "ad346b0e059b48f1b87244f69c9ffe4e",
"thumb": "//image.lceda.cn/histories/ad346b0e059b48f1b87244f69c9ffe4e.png",
"components": null,
"updateTime": 1660273993,
"createTime": 1660243720,
"histories": [
"e15cb90a0ee8481183354b936bf7f27f",
"871afa1377244816ab3139e5c610d4a8",
"ac04d3298ddb4c3897163660d9761670",
"0c36dec930d1448d81d2c4860c7f5d04",
"4ea5526cb92d46f8bc45a53c3c3bf04e",
"ad346b0e059b48f1b87244f69c9ffe4e"
]
},
{
"uuid": "90e07bcc09654d23ac6474e80d7096da",
"title": "面板",
"description": "",
"docType": 3,
"master": "f683fb448b1242c58ba85eb3a8e7822c",
"thumb": "//image.lceda.cn/histories/f683fb448b1242c58ba85eb3a8e7822c.png",
"components": null,
"updateTime": 1660623323,
"createTime": 1660243860,
"histories": [
"d278fafcf7314e5fac7793b56934565c",
"2f65b6f6ce934c79b30c0acb9b46ae87",
"410c17e291474ee3ba3444d67f3a9360",
"182865635f6d4fd78a8a98ff8abf4c41",
"f683fb448b1242c58ba85eb3a8e7822c"
]
}
]
}