diff --git a/工具v2/database_tools.py b/工具v2/database_tools.py index 17b35818..dcd9861d 100644 --- a/工具v2/database_tools.py +++ b/工具v2/database_tools.py @@ -223,10 +223,13 @@ def AddProblemstoDict(startingid,raworigin,problems,editor,indexdescription,thed newproblem = CreateNewProblem(pid,p.strip(),origin,thedict,GetDate() + "\t" + editor) if "blank" in p: newproblem["genre"] = "填空题" + newproblem["space"] = "" elif "bracket" in p: newproblem["genre"] = "选择题" + newproblem["space"] = "" else: newproblem["genre"] = "解答题" + newproblem["space"] = "4em" thedict[pid] = newproblem maxsim,argmaxsim = detectmaxsim(pid,[pid],thedict) print("已收录题号: %s, 最接近题目: %s, 相似程度: %.3f, 题目类型: %s, 题目内容: %s"%(pid,argmaxsim,maxsim,newproblem["genre"],p)) @@ -246,7 +249,7 @@ def CreateIDLinks(old_id_list,new_id_list,*thedict): #建立已有id和新id之 return id_links # 返回id联系, 每个元组表示一对id, 前者是旧id, 后者是新id -def CreateRelatedProblems(links,thedict,filepath): # 根据links关联生成待编辑的新题目字典, 等待编辑修改 +def CreateRelatedProblems(links,thedict,filepath,editor): # 根据links关联生成待编辑的新题目字典, 等待编辑修改 try: new_dict = {} for item in links: @@ -257,7 +260,7 @@ def CreateRelatedProblems(links,thedict,filepath): # 根据links关联生成待 new_dict[old_id]["usages"] = [] new_dict[old_id]["same"] = [] new_dict[old_id]["unrelated"] = [] - new_dict[old_id]["edit"] = new_dict[old_id]["edit"].copy() + [GetDate()+"\t"] + new_dict[old_id]["edit"] = new_dict[old_id]["edit"].copy() + [GetDate()+"\t"+editor] new_dict[old_id]["origin"] += "-" + GetDate() + "修改" save_dict(new_dict,filepath) except: @@ -277,6 +280,16 @@ def ImportRelatedProblems(new_json,main_json): # 导入编辑过的关联题目j pro_dict[new_id]["id"] = new_id pro_dict[id]["related"] += [new_id] pro_dict[new_id]["related"] += [id] + p = pro_dict[new_id]["content"] + if "blank" in p: + pro_dict[new_id]["genre"] = "填空题" + pro_dict[new_id]["genre"] = "" + elif "bracket" in p: + pro_dict[new_id]["genre"] = "选择题" + pro_dict[new_id]["genre"] = "" + else: + pro_dict[new_id]["genre"] = "解答题" + pro_dict[new_id]["genre"] = "4em" print("导入关联题目 %s -> %s 信息成功."%(id,new_id)) save_dict(SortDict(pro_dict),main_json) #保存至目标pro_dict文件 return 0 #正常返回0 diff --git a/工具v2/添加关联题目.py b/工具v2/添加关联题目.py new file mode 100644 index 00000000..41f4dd27 --- /dev/null +++ b/工具v2/添加关联题目.py @@ -0,0 +1,16 @@ +old_ids = "1,10000" # 需要添加关联题目的id字符串 +new_ids = "22127:50000" # 目的地的id字符串, 其中空闲位置需不少于old_ids中的题目数量 +editor = "王伟叶" # 修改人姓名 + +from database_tools import * + +tempfilepath = "临时文件/problem_edit.json" + +pro_dict = load_dict("../题库0.3/problems.json") +links = CreateIDLinks(generate_number_set(old_ids),generate_number_set(new_ids),pro_dict) +CreateRelatedProblems(links,pro_dict,tempfilepath,editor) + +os.system("code "+tempfilepath) + +input("编辑完毕后, 回车继续.") +ImportRelatedProblems(tempfilepath,"../题库0.3/problems.json") \ No newline at end of file