note/smartedu国家智慧教育平台结构.md

52 lines
4.4 KiB
Markdown
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.

# 国家智慧教育平台结构
1. 总的结构文件: `https://s-file-2.ykt.cbern.com.cn/zxx/ndrs/prepare_lesson/teachingmaterials/parts.json`
1. 这个文件会结下出来多个part_100.json part_101.json part.102.json
2. 再继续解析
2. 再继续解析到每一本书的part_100.json: 以高中数学A必修第一册为例
1. 书本id也可以称teachingmaterialId85c19ef2-23a4-43b6-94dd-8c7898639b5d
2. 拼接成资源文件url`https://s-file-2.ykt.cbern.com.cn/zxx/ndrs/prepare_lesson/teachingmaterials/85c19ef2-23a4-43b6-94dd-8c7898639b5d/resources/part_100.json`
3. 拼接成课本结构章节url`https://s-file-2.ykt.cbern.com.cn/zxx/ndrv2/national_lesson/trees/85c19ef2-23a4-43b6-94dd-8c7898639b5d.json`
3. 每一本书的part_100.json含有所有的资源索引。接下来继续解析
1.
## smartedu 下载json和创建目录
1. 目录结构:
1. 最上层根目录all_parts.json; 这个文件固定从这个文件里找tag_dimension_id学段zxxxd、学科zxxxk建立相应的目录找global_resource_id教科书id拼接教科书的urlpart_100.json和trees.json; 拼接方法https://s-file-1.ykt.cbern.com.cn/zxx/ndrs/national_lesson/teachingmaterials/{global_resource_id}/resources/part_100.json https://s-file-2.ykt.cbern.com.cn/zxx/ndrv2/national_lesson/trees/{global_resource_id}.json ; 建立教科书目录title在教科书目录title里存放拼接并下载的两个json
2. 第二层目录:学段,分为:小学 初中 高中
3. 第三层目录:学科,如:数学、英语、化学等;
4. 第四层目录教科书人教版第一册、苏教版第二册等文件part_100.json trees.json; all_classroom_links.json(需要自己组织);
5. 第四层all_classroom_links.json如何构造 在part_100.json中查找chapter_ids;一般有2个-3个或许有更多根据chapter_ids,在trees.json中查找trees.json中id对应的title名字chapter_ids的第一个字段是“章”最后一个字段是最小单位的“小节”,把最后一个字段记录为chapter_id中间字段是中间的节,除去最后一个前面的记录为ids和titles在part_100.json中还需要找到id字段这个id与chapter_ids同级把它记录为activity_id,同理记录title为activity_title; part_100.json中的teachmeterial_ids都是一样的值把它记录为teachingmaterialId所以all_classroom_links中的链接构造为https://basic.smartedu.cn/syncClassroom/classActivity?activityId={activity_id}&chapterId={chapter_id}&teachingmaterialId={teachmeterial_ids}&fromPrepare=0&classHourId=lesson_1 构造的json
```json
{
"teachmeterial_ids": "85c19ef2-23a4-43b6-94dd-8c7898639b5d",//part_100.json中的teachmeterial_ids
"chapter_ids":
{
"ids": ["",""],//part_100.json中的chapter_ids除去最后一个元素的其他元素
"titles": ["",""], //根据上面的ids去trees.json查对应的title
}
"chapter_id": "", //part_100.json中的chapter_ids的最后一个元素
"activity_title": "",//part_100.json第一层的title
"activity_id": "", //part_100.json第一层的id
"activity_url": "https://basic.smartedu.cn/syncClassroom/classActivity?activityId={activity_id}&chapterId={chapter_id}&teachingmaterialId={teachmeterial_ids}&fromPrepare=0&classHourId=lesson_1"
},
{
"teachmeterial_ids": "85c19ef2-23a4-43b6-94dd-8c7898639b5d",
"chapter_ids": //part_100.json中的chapter_ids除去最后一个元素的其他元素
{
"ids": ["",""],
"titles": ["",""],
}
"chapter_id": "", //part_100.json中的chapter_ids的最后一个元素
"activity_title": "",
"activity_id": "",
"activity_url": "https://basic.smartedu.cn/syncClassroom/classActivity?activityId={activity_id}&chapterId={chapter_id}&teachingmaterialId={teachmeterial_ids}&fromPrepare=0&classHourId=lesson_1"
}
```
6. 第五层目录根据all_classroom_links.json下载detail.json
1. 根据all_classroom_links.json中的"chapter_ids"下面的"titles"的第一个元素titles1的名字创建目录
2. 下载detail.json. 拼接并下载urlhttps://s-file-2.ykt.cbern.com.cn/zxx/ndrv2/national_lesson/resources/details/{activity_id}.json ,重命名detail.json名字chapter_ids中的titles2-titles3-activity_title.detail.json;
3. 把重命名的文件放到对应的titles1的目录里.