Files
FacereDataset/data/raw/oshwhub/7360e73de5dd428e9f29e10573f2d8ac/source/0bc01399ab3146faa20cc538add2623f.json
Knowit c6279bff08 Add EasyEDA Pro 2.x legacy source ingestion (5/5 batch closure)
补齐前一批失败的 2 个 legacy Pro 项目(立创·泰山派 RK3566、立创·梁山派),
打通 Pro 2.x 旧版工程的源抓取链路。结合上一 commit 的 modern Pro 3.x
路径,本仓库 5/5 Pro 项目 EPRO2/dataStr 全部端到端打通。

Pro 2.x 与 Pro 3.x 是两个完全不同的存储模型:
- Pro 3.x:git-style branch + linear history chain,AES-128-GCM 加密的
  EPRO2 增量消息流,按 history 重放(已在前一 commit 打通)
- Pro 2.x:无 branch / 无 history。文档以 EasyEDA Std plaintext dataStr
  存储(同 ["DOCTYPE","SCH","1.1"] 格式),按 doc UUID 通过
  /api/v2/documents/lists 批量 GET,主体无加密,只组件库走 AES

Pro 2.x 抓取链由 HAR (tmp/prodownload3.har, 178 请求) 反推:

  GET  /api/v4/projects/<P>                     → boards: [{sch, pcb, name}]
  GET  /api/projects/<P>/ticket?uuid=&g_ticket=-1
                                                → 完整项目 manifest
  POST /api/schematic/lists {uuids:[<sch>]}     → sort: [{uuid:<sheet>}]
  POST /api/v2/documents/lists {uuids,docType:1} → schematic plaintext
  POST /api/v2/documents/lists {uuids,docType:3} → PCB plaintext
  POST /api/coppers/search {paths}              → 铺铜层
  POST /api/textpath/search {paths,project_uuid}→ 字体/文字
  POST /api/v2/resources/search {hash,project_uuid} → BLOB 图片

实现:
- crawlers/oshwhub/crawler.py:
  - fetch_pro_source() refactor 成 dispatcher,先 GET project meta
    检查 branch_uuid,null 即旧版走 _fetch_pro_legacy(),非空走
    _fetch_pro_modern()
  - _fetch_pro_legacy() 新增(按上面 9 步流程拉所有 doc + 辅助层)
  - _pro_post_json() POST helper(与 _pro_get_json 对称)
- schemas/project.schema.json: source_format enum 加 easyeda-pro-legacy
- docs/sources/easyeda_pro_source.md rev 4: §1.1 旧版 vs 新版判别表更新、
  §2.7 新增旧版抓取流程 + 实测数据

落盘约定(旧版):
  source/ticket.json                     完整 manifest
  source/<sheet_uuid>.json               每张原理图(含 dataStr)
  source/pcb_<pcb_uuid>.json             每块 PCB
  source/coppers.json/textpath.json/blobs.json  辅助 PCB 层资源
  source/manifest.json                   索引

实测:
  立创·梁山派      editor=2.1.30, 2 sheets+1 pcb,    1.0 MB,  78 sym/191 fp/128 dev
  立创·泰山派 RK3566 editor=2.1.40, 29 sheets+1 pcb, 0.8 MB, 299 sym/524 fp/295 dev

旧版项目体量比新版小两个数量级(梁山派 1 MB vs RK3576 66 MB)—— 没有
增量 history,组件库走单独端点,本身就是当前快照。

5/5 Pro 项目终极汇总:
  X86 主板          easyeda-pro        3.2.15  7374 docs / 481 MB
  泰山派 RK3566     easyeda-pro-legacy 2.1.40    30 docs / 0.8 MB
  梁山派            easyeda-pro-legacy 2.1.30     3 docs / 1.0 MB
  220V 桌面电源     easyeda-pro        3.2.69   771 docs /  26 MB
  ESP-VoCat         easyeda-pro        3.2.91   278 docs / 7.5 MB

共 8456 docs / ~516 MB plain。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-28 21:59:25 +08:00

1 line
8.4 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{"uuid":"0bc01399ab3146faa20cc538add2623f","created_at":"2023-12-01 14:36:52","creator":{"uuid":"c644bf6717124cfe9ae4d22a5ba8d83a","username":"eda_nqhjnjnc","nickname":"15211163466_27"},"dataStr":"[\"DOCTYPE\",\"SCH\",\"1.1\"]\n[\"HEAD\",{\"originX\":0,\"originY\":0,\"version\":\"2.1.39.1e0cbcef\",\"maxId\":4639}]\n[\"COMPONENT\",\"e1\",\"\",0,0,0,0,{},0]\n[\"FONTSTYLE\",\"st1\",null,null,null,20,null,null,null,null,1,1]\n[\"ATTR\",\"e18\",\"e1\",\"Symbol\",\"6d3151b9ec7f4aee954ed9f6981fd7a2\",0,0,2506,-116,0,\"st1\",0]\n[\"FONTSTYLE\",\"st2\",null,null,null,null,null,null,null,null,null,null]\n[\"ATTR\",\"e32\",\"e1\",\"Footprint\",\"\",0,0,null,null,0,\"st2\",0]\n[\"ATTR\",\"e3\",\"e1\",\"Company\",\"嘉立创EDA\",0,0,998,30,0,\"st1\",0]\n[\"FONTSTYLE\",\"st3\",null,null,null,15,null,null,null,null,1,0]\n[\"ATTR\",\"e4\",\"e1\",\"Drawed\",\"\",0,0,558,120,0,\"st3\",0]\n[\"ATTR\",\"e5\",\"e1\",\"Reviewed\",\"\",0,0,558,100,0,\"st3\",0]\n[\"FONTSTYLE\",\"st4\",null,null,null,15,null,null,null,null,1,1]\n[\"ATTR\",\"e6\",\"e1\",\"Version\",\"V1.0\",0,0,718,30,0,\"st4\",0]\n[\"ATTR\",\"e7\",\"e1\",\"Page Size\",\"A4\",0,0,800,30,0,\"st4\",0]\n[\"ATTR\",\"e8\",\"e1\",\"@Project Name\",\"立创·泰山派开发板\",0,0,920,100,0,\"st1\",0]\n[\"ATTR\",\"e9\",\"e1\",\"@Page Count\",\"29\",0,0,1102,61,0,\"st4\",0]\n[\"ATTR\",\"e10\",\"e1\",\"@Update Date\",\"2023-12-01\",0,0,1010,180,0,\"st3\",0]\n[\"ATTR\",\"e11\",\"e1\",\"@Create Date\",\"2023-12-01\",0,0,1010,160,0,\"st3\",0]\n[\"ATTR\",\"e12\",\"e1\",\"@Schematic Name\",\"schematic\",0,0,730,170,0,\"st1\",0]\n[\"ATTR\",\"e13\",\"e1\",\"Part Number\",\"\",0,0,1010,140,0,\"st3\",0]\n[\"ATTR\",\"e14\",\"e1\",\"@Page No\",\"12\",0,0,985,61,0,\"st4\",0]\n[\"ATTR\",\"e15\",\"e1\",\"@Page Name\",\"RK3566_AUDIO INTERFACE\",0,0,730,140,0,\"st4\",0]\n[\"FONTSTYLE\",\"st5\",null,null,null,\"10\",null,null,null,null,1,1]\n[\"ATTR\",\"e17\",\"e1\",\"Device\",\"3147b110bcd447c49c6e9be850a52941\",0,0,0,0,0,\"st5\",0]\n[\"COMPONENT\",\"e63\",\"RK3566.8\",485,470,0,0,{},0]\n[\"ATTR\",\"e1151\",\"e63\",\"Footprint\",\"0a619a88ae034219a72b3a4309a9575a\",0,0,null,null,0,\"st2\",0]\n[\"ATTR\",\"e64\",\"e63\",\"Designator\",\"U20\",0,1,445,595,0,\"st2\",0]\n[\"ATTR\",\"e67\",\"e63\",\"Name\",\"\",0,1,445,340,0,\"st2\",0]\n[\"FONTSTYLE\",\"st6\",null,null,null,\"10\",null,null,null,null,null,null]\n[\"ATTR\",\"e74\",\"e63\",\"Device\",\"9c5c929f9c50444d8bb82ada8424fd5f\",0,0,485,470,0,\"st6\",0]\n[\"ATTR\",\"e75\",\"e63\",\"Multi-Part Group\",\"\",0,1,485,470,0,\"st2\",0]\n[\"ATTR\",\"e76\",\"e63\",\"Unique ID\",\"gge305\",0,0,485,470,0,\"st2\",0]\n[\"ATTR\",\"e3795\",\"e63\",\"Reuse Block\",\"\",0,0,null,null,0,\"st2\",0]\n[\"ATTR\",\"e3796\",\"e63\",\"Group ID\",\"\",0,0,null,null,0,\"st2\",0]\n[\"ATTR\",\"e3797\",\"e63\",\"Channel ID\",\"\",0,0,null,null,0,\"st2\",0]\n[\"LINESTYLE\",\"st7\",null,null,\"none\",null]\n[\"WIRE\",\"e242\",[[620,365,620,370],[565,370,620,370],[620,380,620,370]],\"st7\",0]\n[\"ATTR\",\"e244\",\"e242\",\"NET\",\"VCCIO_ACODEC\",0,0,620,375,90,\"st2\",0]\n[\"FONTSTYLE\",\"st8\",null,\"#9933CC\",null,30,null,1,null,null,null,null]\n[\"TEXT\",\"e582\",490,715,0,\"RK3566_8\",\"st8\",0]\n[\"COMPONENT\",\"e219\",\"\",620,380,0,0,{},0]\n[\"FONTSTYLE\",\"st9\",null,null,null,null,null,null,null,null,2,0]\n[\"ATTR\",\"e220\",\"e219\",\"Symbol\",\"b0656b6b4a5744e5adb7bdf36c0103ee\",0,0,620,350,0,\"st9\",0]\n[\"FONTSTYLE\",\"st10\",null,\"#9900FF\",null,null,null,null,null,null,2,1]\n[\"ATTR\",\"e221\",\"e219\",\"Global Net Name\",\"VCCIO_ACODEC\",0,1,615,390,0,\"st10\",0]\n[\"ATTR\",\"e223\",\"e219\",\"Device\",\"66ae456a56584d099579688edf9ceea1\",0,0,620,380,0,\"st5\",0]\n[\"ATTR\",\"e224\",\"e219\",\"Name\",\"VCCIO_ACODEC\",0,0,620,380,0,\"st2\",0]\n[\"WIRE\",\"e1784\",[[645,510,565,510]],\"st7\",0]\n[\"ATTR\",\"e1791\",\"e1784\",\"NET\",\"CLK1_M0_GPIO1_A4\",0,1,580,510,0,\"st2\",0]\n[\"COMPONENT\",\"e2545\",\"CL05B104KB54PNC.1\",620,345,90,0,{},0]\n[\"FONTSTYLE\",\"st11\",null,null,null,null,null,null,null,null,null,0]\n[\"ATTR\",\"e2563\",\"e2545\",\"Symbol\",\"cb83541b8e8949ae88239f13fbeb07a4\",0,0,null,null,0,\"st11\",0]\n[\"ATTR\",\"e2564\",\"e2545\",\"JLCPCB Part Class\",\"Extended Part\",0,0,null,null,0,\"st2\",0]\n[\"ATTR\",\"e2565\",\"e2545\",\"Designator\",\"C89\",0,1,630,350,0,\"st9\",0]\n[\"ATTR\",\"e2566\",\"e2545\",\"Footprint\",\"b7f42d70d7494758ab437916bc62488f\",0,1,630,330,0,\"st9\",0]\n[\"ATTR\",\"e2567\",\"e2545\",\"Name\",\"={Value}\",0,1,630,340,0,\"st9\",0]\n[\"ATTR\",\"e2568\",\"e2545\",\"Device\",\"7c28c5549879495486e4b2e11e5c197d\",0,0,620,345,0,\"st9\",0]\n[\"ATTR\",\"e2569\",\"e2545\",\"Unique ID\",\"gge123\",0,0,null,null,0,\"st9\",0]\n[\"ATTR\",\"e3804\",\"e2545\",\"Reuse Block\",\"\",0,0,null,null,0,\"st2\",0]\n[\"ATTR\",\"e3805\",\"e2545\",\"Group ID\",\"\",0,0,null,null,0,\"st2\",0]\n[\"ATTR\",\"e3806\",\"e2545\",\"Channel ID\",\"\",0,0,null,null,0,\"st2\",0]\n[\"WIRE\",\"e3425\",[[645,430,565,430]],\"st7\",0]\n[\"ATTR\",\"e3446\",\"e3425\",\"NET\",\"RGB_LED_R\",0,1,580,430,0,\"st2\",0]\n[\"WIRE\",\"e3431\",[[565,440,645,440]],\"st7\",0]\n[\"ATTR\",\"e4239\",\"e3431\",\"NET\",\"RGB_LED_G\",0,1,580,440,0,\"st2\",0]\n[\"WIRE\",\"e3437\",[[565,450,645,450]],\"st7\",0]\n[\"ATTR\",\"e4240\",\"e3437\",\"NET\",\"RGB_LED_B\",0,1,580,450,0,\"st2\",0]\n[\"WIRE\",\"e3546\",[[565,540,645,540]],\"st7\",0]\n[\"ATTR\",\"e3683\",\"e3546\",\"NET\",\"I2S1_MCLK_M0_PMIC\",0,1,580,540,0,\"st2\",0]\n[\"WIRE\",\"e3549\",[[565,520,645,520]],\"st7\",0]\n[\"ATTR\",\"e3685\",\"e3549\",\"NET\",\"I2S1_SCLK_TX_M0_PMIC\",0,1,580,520,0,\"st2\",0]\n[\"WIRE\",\"e3672\",[[565,490,645,490]],\"st7\",0]\n[\"ATTR\",\"e3688\",\"e3672\",\"NET\",\"I2S1_LRCK_TX_M0_PMIC\",0,1,580,490,0,\"st2\",0]\n[\"WIRE\",\"e3675\",[[565,480,645,480]],\"st7\",0]\n[\"ATTR\",\"e3690\",\"e3675\",\"NET\",\"PDM_CLK0_M0_PMIC\",0,1,580,480,0,\"st2\",0]\n[\"WIRE\",\"e3678\",[[565,460,645,460]],\"st7\",0]\n[\"ATTR\",\"e3693\",\"e3678\",\"NET\",\"I2S1_SDO0_M0_PMIC\",0,1,580,460,0,\"st2\",0]\n[\"WIRE\",\"e3681\",[[565,420,645,420]],\"st7\",0]\n[\"ATTR\",\"e3696\",\"e3681\",\"NET\",\"I2S1_SDI0_M0/PDM\",0,1,580,420,0,\"st2\",0]\n[\"LINESTYLE\",\"st12\",null,null,null,null]\n[\"WIRE\",\"e4165\",[[565,570,645,570]],\"st12\",0]\n[\"ATTR\",\"e4241\",\"e4165\",\"NET\",\"TP_INT_A\",0,1,580,570,0,\"st2\",0]\n[\"WIRE\",\"e4172\",[[565,560,645,560]],\"st12\",0]\n[\"ATTR\",\"e4242\",\"e4172\",\"NET\",\"TP_RST\",0,1,580,560,0,\"st2\",0]\n[\"FONTSTYLE\",\"st13\",null,\"#9900FF\",null,20,null,null,null,null,null,null]\n[\"TEXT\",\"e4538\",395,175,0,\"软件dts的电压配置严格与硬件设计保持一致\",\"st13\",0]\n[\"FONTSTYLE\",\"st14\",null,\"#00FF00\",null,20,null,null,null,null,null,null]\n[\"TEXT\",\"e4539\",395,150,0,\"Check the software configuration(dts)\\nof voltage level, which must be\\nkeep the same as hardware design.\",\"st14\",0]\n[\"LINESTYLE\",\"st15\",\"#00FF00\",3,null,2]\n[\"RECT\",\"e4540\",380,200,770,100,20,20,0,\"st15\",0]\n[\"FONTSTYLE\",\"st16\",null,\"#9900FF\",null,30,null,null,null,null,null,null]\n[\"TEXT\",\"e4541\",450,680,0,\"(VCCIO1 Domain)\",\"st16\",0]\n[\"COMPONENT\",\"e4543\",\"\",620,315,0,0,{},0]\n[\"FONTSTYLE\",\"st17\",null,null,null,10,null,null,null,null,2,0]\n[\"ATTR\",\"e4544\",\"e4543\",\"Symbol\",\"3e2301b8470549f8ae3f43ee012cb390\",0,0,620,285,0,\"st17\",0]\n[\"FONTSTYLE\",\"st18\",null,null,null,10,null,null,null,null,1,1]\n[\"ATTR\",\"e4545\",\"e4543\",\"Global Net Name\",\"GND\",0,1,620,290,0,\"st18\",0]\n[\"ATTR\",\"e4551\",\"e4543\",\"Device\",\"29564a22c8d84bcaa93b6cbb648974a7\",0,0,null,null,0,\"st6\",0]\n[\"WIRE\",\"e4569\",[[620,325,620,315]],\"st12\",0]\n[\"ATTR\",\"e4570\",\"e4569\",\"NET\",\"GND\",0,0,620,317.5,90,\"st2\",0]\n[\"LINESTYLE\",\"st19\",null,3,null,5]\n[\"RECT\",\"e4573\",310,785,845,35,50,50,0,\"st19\",0]\n[\"FONTSTYLE\",\"st20\",null,\"#00FF00\",null,null,null,null,null,null,null,null]\n[\"TEXT\",\"e4574\",665,345,0,\"Caps should be placed \\nunder the U20 package\",\"st20\",0]\n[\"RECT\",\"e4575\",570,410,770,250,20,20,0,\"st15\",0]\n[\"LINESTYLE\",\"st21\",null,3,null,3]\n[\"RECT\",\"e4581\",430,755,685,665,30,30,0,\"st21\",0]","description":"","display_title":"RK3566_AUDIO INTERFACE","docType":1,"modifier":{"uuid":"c644bf6717124cfe9ae4d22a5ba8d83a","username":"eda_nqhjnjnc","nickname":"15211163466_27"},"project_uuid":"7360e73de5dd428e9f29e10573f2d8ac","schematic_uuid":"6394f41146404ead95ba248444940c6c","sheet_id":11,"ticket":4,"title":"rk3566_audio interface","updateTime":1701414472,"thumb":"https://image-pro.lceda.cn/pullimages/c60aeff175944e92971730a782e9c02a.webp","guest":false,"writable":false}