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:
@@ -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"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user