Files
hsa/Html/db/course_list.py
2025-01-01 01:43:28 +08:00

62 lines
2.4 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') 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()