4.4 KiB
4.4 KiB
国家智慧教育平台结构
- 总的结构文件:
https://s-file-2.ykt.cbern.com.cn/zxx/ndrs/prepare_lesson/teachingmaterials/parts.json- 这个文件会结下出来多个part_100.json part_101.json part.102.json
- 再继续解析
- 再继续解析到每一本书的part_100.json: 以高中数学A必修第一册为例:
- 书本id,也可以称teachingmaterialId,是:85c19ef2-23a4-43b6-94dd-8c7898639b5d
- 拼接成资源文件url:
https://s-file-2.ykt.cbern.com.cn/zxx/ndrs/prepare_lesson/teachingmaterials/85c19ef2-23a4-43b6-94dd-8c7898639b5d/resources/part_100.json - 拼接成课本结构章节url:
https://s-file-2.ykt.cbern.com.cn/zxx/ndrv2/national_lesson/trees/85c19ef2-23a4-43b6-94dd-8c7898639b5d.json
- 每一本书的part_100.json,含有所有的资源索引。接下来继续解析: 1.
smartedu 下载json和创建目录
- 目录结构:
- 最上层根目录:all_parts.json; 这个文件固定;从这个文件里,找tag_dimension_id,学段zxxxd、学科zxxxk;建立相应的目录;找global_resource_id教科书id,拼接教科书的url:part_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;
- 第二层目录:学段,分为:小学 初中 高中
- 第三层目录:学科,如:数学、英语、化学等;
- 第四层目录:教科书,如:人教版第一册、苏教版第二册等;文件:part_100.json trees.json; all_classroom_links.json(需要自己组织);
- 第四层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" } - 第五层目录:根据all_classroom_links.json,下载detail.json
- 根据all_classroom_links.json中的"chapter_ids"下面的"titles"的第一个元素titles1的名字,创建目录;
- 下载detail.json. 拼接并下载url:https://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;
- 把重命名的文件放到对应的titles1的目录里.