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') 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') 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') 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()