我有一个项目,其中涉及编写视频课程的时间戳列表。每节课都有一个类似于以下格式的文档:
00:01:30简介
00:05:00讨论主题PART 1 HEADING
部分标题
00:07:25第一项
00:15:40第二项
00:12:30 ...子项目00:30:10另一个标记
第2节标题
00:44:00另一个项目
有几个“部分”可能没有标题,每个部分都有一个或多个(甚至没有)时间戳记条目。
我目前正在将此原始文件(用Apple Pages编写,并也导出为PDF供用户使用)保存为文本格式,然后使用Python脚本将其转换(使用明胶)为JSON文件,以便另一个系统处理(在视频旁边提供了一个可点击的目录)。此JSON具有以下格式(添加了元数据,并忽略了子项缩进):
{
"course": "Test Course",
"tutor": "Mr Test",
"lesson": "1",
"date": "2018-12-07",
"description": "",
"timeline": [
{
"times": [
{
"time": "00:01:30",
"label": "Introduction"
},
{
"time": "00:05:00",
"label": "Discussion on topics"
}
]
},
{
"section": "PART 1 Heading"
},
{
"section": "Section heading",
"times": [
{
"time": "00:07:25",
"label": "First item"
},
{
"time": "00:15:40",
"label": "Second item"
},
{
"time": "00:12:30",
"label": "Sub-item"
}
]
},
{
"times": [
{
"time": "00:30:10",
"label": "Another marker"
}
]
},
{
"section": "Section 2 heading",
"times": [
{
"time": "00:44:00",
"label": "Another item"
}
]
}
]
}
我的新项目是使用此数据制作可搜索的存档。到目前为止,我有Tutor/Person
,Course
和Lesson
的模型。考虑到每个“节”可能有一个标题,或者实际上可能只是一个没有时间轴条目的标题,我正在尝试找出如何存储其余数据的方法。最初,我只是尝试使用带有Timestamp
标志的type
模型来确定它是否是以标题开头的部分,没有标题或普通时间戳记条目。但是我不确定这是否是正确的方法-这意味着为节开始条目创建虚假的时间戳。
如果我有分层的Section
和Timestamp
模型,那么我可能会有一个问题,就是要确保所包含的时间戳记在各节之间不重叠(我想可能会有一些验证规则,但这看起来很复杂!)。我确实考虑过将原始JSON存储在我的Lesson模型中,但这会阻止进一步的扩展,例如对单个条目进行标记和分类或添加其他注释。
有人可以给我任何启发/指导来组织模型的好方法吗?谢谢!