Files
FacereDataset/data/raw/oshwhub/892dbc4ebca74227ac6269a1693380d8/source/bbc0cb810edd408f9c9f34adf3e171d1.json
Knowit d874278bc5 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。
2026-04-28 20:07:40 +08:00

1 line
5.1 KiB
JSON

{"success":true,"code":0,"result":{"uuid":"bbc0cb810edd408f9c9f34adf3e171d1","puuid":"892dbc4ebca74227ac6269a1693380d8","title":"V1.2外壳后盖板","description":"","docType":3,"master":"0ce027b5537d44c6991d9ed7c3e4ac50","thumb":"//image.lceda.cn/histories/0ce027b5537d44c6991d9ed7c3e4ac50.png","components":[],"updated_at":"2026-02-07 18:01:38","created_at":"2023-06-13 20:34:10","download_times":68,"isAnonymousFile":false,"writable":false,"datastrid":"0ce027b5537d44c6991d9ed7c3e4ac50","dataStr":{"head":{"docType":"3","editorVersion":"6.5.29","newgId":true,"c_para":[],"x":"4020","y":"3379","hasIdFlag":true,"importFlag":0,"transformList":""},"canvas":"CA~1000~1000~#000000~yes~#FFFFFF~10~1000~1000~line~0.5~mm~1~0~visible~0.5~4020~3379~0~yes","shape":["TRACK~1~10~S$121~4076.9684 3458.9211 4081.929 3422.7007~gge120~0","TRACK~1~10~S$92~4059.7637 3458.9211 4076.9684 3458.9211~gge91~0","TRACK~1~10~S$117~3963.0316 3458.9211 3958.071 3422.7007~gge116~0","TRACK~1~10~S$88~3980.2363 3458.9211 3963.0316 3458.9211~gge87~0","TRACK~1~10~S$57~4059.7637 3443.5668 4059.7637 3458.9211~gge84~0","TRACK~1~10~S$57~3980.2363 3443.5668 3980.2363 3458.9211~gge81~0","TRACK~1~10~S$110~3958.5828 3334.5119 3964.0159 3299.0789~gge109~0","TRACK~1~10~S$57~3980.2363 3314.4332 3980.2363 3299.0789~gge56~0","TRACK~1~10~S$96~3980.2363 3299.0789 3964.0159 3299.0789~gge95~0","TRACK~1~10~S$100~4081.4172 3334.5119 4075.9841 3299.0789~gge113~0","TRACK~1~10~S$100~4059.7637 3299.0789 4075.9841 3299.0789~gge99~0","TRACK~1~10~S$57~4059.7637 3314.4332 4059.7637 3299.0789~gge66~0","ARC~1~10~~M4059.7115,3314.45 A75.7873,75.7873 0 0 0 3980.2886,3314.45~~gge136~0","ARC~1~10~~M3980.2886,3443.5502 A75.7873,75.7873 0 0 0 4059.7115,3443.5502~~gge154~0","ARC~1~10~~M4081.9293,3422.6864 A75.7873,75.7873 0 0 0 4081.3909,3334.5605~~gge148~0","ARC~1~10~~M3958.6092,3334.5604 A75.7873,75.7873 0 0 0 3958.0708,3422.6863~~gge142~0","HOLE~3970.788~3306.166~2.8543~gge169~0","HOLE~4069.213~3306.166~2.8543~gge199~0","HOLE~3970.788~3451.835~2.8543~gge214~0","HOLE~4069.213~3451.835~2.8543~gge229~0"],"layers":["1~TopLayer~#FF0000~true~false~true~","2~BottomLayer~#0000FF~true~false~true~","3~TopSilkLayer~#FFCC00~true~false~true~","4~BottomSilkLayer~#66CC33~true~false~true~","5~TopPasteMaskLayer~#808080~true~false~true~","6~BottomPasteMaskLayer~#800000~true~false~true~","7~TopSolderMaskLayer~#800080~true~false~true~0.3","8~BottomSolderMaskLayer~#AA00FF~true~false~true~0.3","9~Ratlines~#6464FF~false~false~true~","10~BoardOutLine~#FF00FF~true~true~true~","11~Multi-Layer~#C0C0C0~true~false~true~","12~Document~#FFFFFF~true~false~true~","13~TopAssembly~#33CC99~false~false~false~","14~BottomAssembly~#5555FF~false~false~false~","15~Mechanical~#F022F0~false~false~false~","19~3DModel~#66CCFF~false~false~false~","21~Inner1~#999966~false~false~false~~","22~Inner2~#008000~false~false~false~~","23~Inner3~#00FF00~false~false~false~~","24~Inner4~#BC8E00~false~false~false~~","25~Inner5~#70DBFA~false~false~false~~","26~Inner6~#00CC66~false~false~false~~","27~Inner7~#9966FF~false~false~false~~","28~Inner8~#800080~false~false~false~~","29~Inner9~#008080~false~false~false~~","30~Inner10~#15935F~false~false~false~~","31~Inner11~#000080~false~false~false~~","32~Inner12~#00B400~false~false~false~~","33~Inner13~#2E4756~false~false~false~~","34~Inner14~#99842F~false~false~false~~","35~Inner15~#FFFFAA~false~false~false~~","36~Inner16~#99842F~false~false~false~~","37~Inner17~#2E4756~false~false~false~~","38~Inner18~#3535FF~false~false~false~~","39~Inner19~#8000BC~false~false~false~~","40~Inner20~#43AE5F~false~false~false~~","41~Inner21~#C3ECCE~false~false~false~~","42~Inner22~#728978~false~false~false~~","43~Inner23~#39503F~false~false~false~~","44~Inner24~#0C715D~false~false~false~~","45~Inner25~#5A8A80~false~false~false~~","46~Inner26~#2B937E~false~false~false~~","47~Inner27~#23999D~false~false~false~~","48~Inner28~#45B4E3~false~false~false~~","49~Inner29~#215DA1~false~false~false~~","50~Inner30~#4564D7~false~false~false~~","51~Inner31~#6969E9~false~false~false~~","52~Inner32~#9069E9~false~false~false~~","99~ComponentShapeLayer~#00CCCC~false~false~false~0.4","100~LeadShapeLayer~#CC9999~false~false~false~","101~ComponentMarkingLayer~#66FFCC~false~false~false~","Hole~Hole~#222222~false~false~true~","DRCError~DRCError~#FAD609~false~false~true~"],"objects":["All~true~false","Component~true~true","Prefix~true~true","Name~true~false","Track~true~true","Pad~true~true","Via~true~true","Hole~true~true","Copper_Area~true~true","Circle~true~true","Arc~true~true","Solid_Region~true~true","Text~true~true","Image~true~true","Rect~true~true","Dimension~true~true","Protractor~true~true"],"BBox":{"x":3944.2,"y":3299.1,"width":151.6,"height":159.8},"preference":{"hideFootprints":"","hideNets":""},"DRCRULE":{"Default":{"trackWidth":1,"clearance":0.6,"viaHoleDiameter":2.4,"viaHoleD":1.2},"isRealtime":false,"isDrcOnRoutingOrPlaceVia":false,"checkObjectToCopperarea":true,"showDRCRangeLine":true},"netColors":[]},"owner":{"uuid":"80fcee0f22fe42998cec371bbcdff7a2","username":"dhx233","nickname":"启凡科创","avatar":"//image.lceda.cn/avatars/2021/6/pLr9KEeLiazf8g7FNplgNZncbu78BfVpwdzEqx4m.png","team":false},"public":true,"org_uuid":"","version":"934c7066256a4552a3cdeed83c76be96"}}