Phase 1 MVP: crawl 10 high-quality oshwhub projects into LFS

Why:
- Charles 指定:先爬 10 个高质量项目存 Gitea LFS,一个项目一个文件夹,
  保留原文件和 URL。先以小批量验证 schema + LFS 流水线,放量前再拍板
  存储规模。

What:
- crawlers/oshwhub: 列表 API (`/api/project?sort=hot`) + SSR HTML 解析,
  一次性产出 metadata / description / cover / files / _urls
- schemas/project.schema.json: 跨源统一 schema
- docs/sources/oshwhub.md: API 入口 / 字段映射 / 陷阱调研
- pyproject.toml: httpx[http2] 单依赖
- .gitattributes: data/raw/**/files/** 一律走 LFS(规则写窄,避免误伤 schemas/*.json 等)
- .gitignore: 移除 data/raw/* 排除(改走 LFS 入库)

10 个项目覆盖:调试器 / 加热台 / 盖革计数器 / 数控电源 / 焊台 /
智能手表 / USB 测电流 / ZVS 感应加热 / AI 开发板 / 红外热成像。
共 52 附件 ≈ 524 MB 入 LFS,筛选判据 grade=4 & likes>=100 & 多样性。

Known gaps(见 plan.md § Phase 1.4):
- EasyEDA 源 JSON 需登录 (u.lceda.cn),v0.1 跳过
- fs-web-stream.jlc.com 的工程源下载未测
- scripts/validate.py 自动 schema 校验未实现

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Zhang Jiahao
2026-04-23 19:34:09 +08:00
parent bf2370f83b
commit 5ffa10f256
103 changed files with 2279 additions and 28 deletions

View File

@@ -0,0 +1,41 @@
{
"detail_url": "https://oshwhub.com/CYIIOT/ST_LINK-V2_1",
"cover_url": "https://image.lceda.cn/avatars/2020/7/QGOICt1FmLQGlyFeTCShZUHzaN0thIW2Xhv0nmSs.jpeg",
"attachments": [
{
"name": "ST-Link V2.1官方图纸.pdf",
"url": "https://image.lceda.cn/attachments/2020/7/mRn5hQZRhmx5r4usGxFmy8BXsCIHw5QoAT5HaLGC.pdf",
"original_id": "83ade303f9824d67b189378f9068648e"
},
{
"name": "STLinkV2.J16.S4_固件.zip",
"url": "https://image.lceda.cn/attachments/2020/7/TSTPA8NInE8TfdNLjAVjBkcnXvFEhQ8RoA5SUzn4.zip",
"original_id": "aff1059cee92438d8d50f5c9937e31e0"
},
{
"name": "STLinkV2.J28.M18_固件.zip",
"url": "https://image.lceda.cn/attachments/2020/7/qnbaX4ArFPq1kC6rNr5PCqaKPr6XdvfX27ZRGpFn.zip",
"original_id": "faa5cc219eb145a5a43c66dc4ad55cbc"
},
{
"name": "【发行公告】RN0093-firmware-upgrade-for-stlink-stlinkv2-stlinkv21-and-stlinkv3-boards-stmicroelectronics.pdf",
"url": "https://image.lceda.cn/attachments/2020/7/j1hsq6ByuWAiMHckonVoLGNqa3z47mp7D5w5n7e7.pdf",
"original_id": "80ede3877efd4cdabcc6fae174046452"
},
{
"name": "【技术说明】TN1235 Overview of ST-LINK derivatives.pdf",
"url": "https://image.lceda.cn/attachments/2020/7/dVO0hjpKz38q7ZtvFtEviPmVF60BIJDfScdnK9sB.pdf",
"original_id": "ce58b59a45464ed58475c1c7e191570a"
},
{
"name": "ST-LINK V2-1 固件烧录.mp4",
"url": "https://image.lceda.cn/attachments/2020/7/5ZfKD020NJcGs5mQ7H9MGh1WwSvy4RHY7TeTObfv.mp4",
"original_id": "1a443f96ecd849648278b2b6d2e7f670"
},
{
"name": "en.stsw-link007_V2-37-26.zip",
"url": "https://image.lceda.cn/attachments/2021/6/ZZO5tNxsae0LKhQ2aQ2VkZl0l0B94PSaFeVsmdqQ.zip",
"original_id": "7b431bd72f1c4f3d87d8dba98c171175"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 382 KiB

View File

@@ -0,0 +1,9 @@
# 自制ST-LINK V2-1开源版本
最近迷上了攻城狮工具的制作因手头有个潘多拉开发板板载一个STLINK/V2.1这玩意支持STM32调试还带了一个虚拟串口和虚拟U盘下载所以用立创EDA打造了一个小巧的STLINK/V2.1
---
- Source: https://oshwhub.com/CYIIOT/ST_LINK-V2_1
- Author: 攻城狮神木 (CYIIOT)
- License: GPL 3.0
- Published: 2025-12-01T02:55:40.000Z

View File

@@ -0,0 +1,118 @@
{
"source": "oshwhub",
"source_url": "https://oshwhub.com/CYIIOT/ST_LINK-V2_1",
"project_id": "298873b7fdbe44f8ba0e7351e023bc2c",
"title": "自制ST-LINK V2-1开源版本",
"description_short": "最近迷上了攻城狮工具的制作因手头有个潘多拉开发板板载一个STLINK/V2.1这玩意支持STM32调试还带了一个虚拟串口和虚拟U盘下载所以用立创EDA打造了一个小巧的STLINK/V2.1",
"description_path": "description.md",
"author": {
"username": "CYIIOT",
"display_name": "攻城狮神木",
"user_id": "367b6ee2c2114a459898e14b1268a641"
},
"license": "GPL 3.0",
"tags": [],
"created_at": "2020-07-21T08:18:03.000Z",
"updated_at": "2026-04-15T07:42:15.000Z",
"published_at": "2025-12-01T02:55:40.000Z",
"crawled_at": "2026-04-23T11:25:21.265012+00:00",
"metrics": {
"likes": 863,
"stars": 1947,
"forks": 996,
"views": 239671,
"watch": 0,
"comments": 369
},
"cover": {
"url": "https://image.lceda.cn/avatars/2020/7/QGOICt1FmLQGlyFeTCShZUHzaN0thIW2Xhv0nmSs.jpeg",
"path": "cover.jpeg"
},
"files": [
{
"name": "ST-Link V2.1官方图纸.pdf",
"url": "https://image.lceda.cn/attachments/2020/7/mRn5hQZRhmx5r4usGxFmy8BXsCIHw5QoAT5HaLGC.pdf",
"original_id": "83ade303f9824d67b189378f9068648e",
"ext": "pdf",
"mime": "application/pdf",
"size": 183323,
"md5": "bdb976690426a0e3216ad3aacd9878cc",
"path": "files/ST-Link V2.1官方图纸.pdf",
"sha256": "a73fdfe732b60d4c7482a09fc4464460bac7b4afcfdca014a9d33f8099b126cd"
},
{
"name": "STLinkV2.J16.S4_固件.zip",
"url": "https://image.lceda.cn/attachments/2020/7/TSTPA8NInE8TfdNLjAVjBkcnXvFEhQ8RoA5SUzn4.zip",
"original_id": "aff1059cee92438d8d50f5c9937e31e0",
"ext": "zip",
"mime": "application/x-zip-compressed",
"size": 31004,
"md5": "d84a96b7110a61e77e479eb8501ec270",
"path": "files/STLinkV2.J16.S4_固件.zip",
"sha256": "c20db3e7512df2afc60dbad3bffeb8a743ea1ff7d160b877874c66d7fcb97bfb"
},
{
"name": "STLinkV2.J28.M18_固件.zip",
"url": "https://image.lceda.cn/attachments/2020/7/qnbaX4ArFPq1kC6rNr5PCqaKPr6XdvfX27ZRGpFn.zip",
"original_id": "faa5cc219eb145a5a43c66dc4ad55cbc",
"ext": "zip",
"mime": "application/x-zip-compressed",
"size": 42906,
"md5": "5904682016ab096c16b06f5cf232dbc5",
"path": "files/STLinkV2.J28.M18_固件.zip",
"sha256": "b58d6ee8ee51098868a1aae30fcf5ea104f2be6005d10a14858ee2f546eae607"
},
{
"name": "【发行公告】RN0093-firmware-upgrade-for-stlink-stlinkv2-stlinkv21-and-stlinkv3-boards-stmicroelectronics.pdf",
"url": "https://image.lceda.cn/attachments/2020/7/j1hsq6ByuWAiMHckonVoLGNqa3z47mp7D5w5n7e7.pdf",
"original_id": "80ede3877efd4cdabcc6fae174046452",
"ext": "pdf",
"mime": "application/pdf",
"size": 226423,
"md5": "cde4dedc62b84959b8084a04881443da",
"path": "files/【发行公告】RN0093-firmware-upgrade-for-stlink-stlinkv2-stlinkv21-and-stlinkv3-boards-stmicroelectronics.pdf",
"sha256": "9536752ee47a63f86a17b68a99abe3e1e9238370d63dfe602e44b386a2c49342"
},
{
"name": "【技术说明】TN1235 Overview of ST-LINK derivatives.pdf",
"url": "https://image.lceda.cn/attachments/2020/7/dVO0hjpKz38q7ZtvFtEviPmVF60BIJDfScdnK9sB.pdf",
"original_id": "ce58b59a45464ed58475c1c7e191570a",
"ext": "pdf",
"mime": "application/pdf",
"size": 876773,
"md5": "6c737c2d8ed697011f9de862f5df3857",
"path": "files/【技术说明】TN1235 Overview of ST-LINK derivatives.pdf",
"sha256": "03db2b7a4a4161160f697c84f49ad61401a09dca77b8e9b7ae8bfca5d1995cf7"
},
{
"name": "ST-LINK V2-1 固件烧录.mp4",
"url": "https://image.lceda.cn/attachments/2020/7/5ZfKD020NJcGs5mQ7H9MGh1WwSvy4RHY7TeTObfv.mp4",
"original_id": "1a443f96ecd849648278b2b6d2e7f670",
"ext": "mp4",
"mime": "video/mp4",
"size": 18953976,
"md5": "f8547b0850763aed60dde607578c6005",
"path": "files/ST-LINK V2-1 固件烧录.mp4",
"sha256": "31e81fadb0f3c67064dd87e8a269b76abcb2660a574c1f0c384ff1509b95fe73"
},
{
"name": "en.stsw-link007_V2-37-26.zip",
"url": "https://image.lceda.cn/attachments/2021/6/ZZO5tNxsae0LKhQ2aQ2VkZl0l0B94PSaFeVsmdqQ.zip",
"original_id": "7b431bd72f1c4f3d87d8dba98c171175",
"ext": "zip",
"mime": "application/x-zip-compressed",
"size": 1597918,
"md5": "2fb1abb4c30ef4537743cb837af402d1",
"path": "files/en.stsw-link007_V2-37-26.zip",
"sha256": "ef6a58b366c6004553ce2bf45bed934f17f88e6b87da1df30d56956c65aa2c3b"
}
],
"raw_fields": {
"path": "CYIIOT/ST_LINK-V2_1",
"grade": 4,
"origin": "std",
"public": true,
"publish": true,
"skipped_files": []
}
}