62 lines
2.5 KiB
Python
62 lines
2.5 KiB
Python
import json
|
|
import copy
|
|
import re
|
|
class CourseList:
|
|
def __init__(self, db_file='db/data/course/course_list.json'):
|
|
self.db_file = db_file
|
|
with open(self.db_file, 'r', encoding='utf-8') as f:
|
|
self.db = json.load(f)
|
|
|
|
def add_course(self, course_id, course_name, course_create_date, course_update_data, course_img_path):
|
|
"""添加新的用户登录信息"""
|
|
# 检查是否已经有该用户
|
|
assert course_id not in self.db, f"Course {course_name} with ID {course_id} already exists."
|
|
self.db[course_id] = {}
|
|
self.db[course_id]['course_name'] = course_name
|
|
self.db[course_id]['course_create_date'] = course_create_date
|
|
self.db[course_id]['course_update_data'] = course_update_data
|
|
self.db[course_id]['course_img_path'] = course_img_path
|
|
|
|
with open(self.db_file, 'w', encoding='utf-8') as f:
|
|
json.dump(self.db, f, indent=4)
|
|
|
|
|
|
def get_course_brief_info(self, course_id, course) -> dict:
|
|
assert course_id in self.db, f"Course ID {course_id} does not exist."
|
|
result = copy.deepcopy(self.db[course_id])
|
|
result["lessons"]=[]
|
|
for lesson in course.lessons:
|
|
d={}
|
|
d['lesson_id'] = lesson['lesson_id']
|
|
d["lesson_name"]=lesson['lesson_name']
|
|
print(lesson["markdown"])
|
|
h3_titles = re.findall(r'[\s]###\s+(.*)', lesson["markdown"])
|
|
print(h3_titles)
|
|
d["subChapters"]=h3_titles
|
|
result["lessons"].append(d)
|
|
return result
|
|
|
|
def update_course_brief_info(self, course_id, course_name, course_create_date, course_update_data, course_img_path):
|
|
assert course_id in self.db, f"Course ID {course_id} does not exist."
|
|
|
|
self.db[course_id]['course_name'] = course_name
|
|
self.db[course_id]['course_create_date'] = course_create_date
|
|
self.db[course_id]['course_update_data'] = course_update_data
|
|
self.db[course_id]['course_img_path'] = course_img_path
|
|
|
|
with open(self.db_file, 'w', encoding='utf-8') as f:
|
|
json.dump(self.db, f, indent=4)
|
|
|
|
def delete_course(self, course_id):
|
|
assert course_id in self.db, f"Course ID {course_id} does not exist."
|
|
self.db.remove(course_id)
|
|
|
|
def get_all_courses(self):
|
|
return list(self.db)
|
|
|
|
def to_json(self):
|
|
return json.dumps(self.db)
|
|
|
|
def items(self):
|
|
assert type(self.db) is dict, "db is not a dict"
|
|
return self.db.items() |