def scrape_cors(acad_year, semester): modules = modulecrawler.crawl_modules() for module_code, module in modules.iteritems(): if module["preclusions_string"] != "None": module["preclusions"] = ModuleParser.precludeModule(module_code, module["preclusions_string"])[0] if module["prerequisites_string"] != "None": module["prerequisites"] = ModuleParser.precludeModule(module_code, module["prerequisites_string"]) logging.debug("Generated preclusion and pre-requisite lists for %s" % module_code) return modules
def scrape_nusmods_data(data): nusmods_modules = data["cors"] faculties = data["departments"] modules = {} for module_code, nusmods_module in nusmods_modules.iteritems(): description = "No description" if "description" in nusmods_module: description = nusmods_module["description"] department = nusmods_module["department"] faculty = "UNKNOWN" for nusmods_faculty, departments in faculties.iteritems(): if department in departments: faculty = nusmods_faculty break #if faculty in ["SCHOOL OF BUSINESS", "SCHOOL OF DESIGN AND ENVIRONMENT"]: prerequisites = [] preclusions = [] preclusions_string = "None" prerequisites_string = "None" # TODO: Parse the preclusions properly if "prerequisite" in nusmods_module: # prerequisites = ModuleParser.prereqModule(nusmods_module["label"], nusmods_module["prerequisite"], faculty) prerequisites_string = nusmods_module["prerequisite"] prerequisites = ModuleParser.precludeModule(module_code, nusmods_module["prerequisite"]) if "preclusion" in nusmods_module: preclusions_string = nusmods_module["preclusion"] # If the module preclusion contains the world "level" as in "A-level", it may be a bridging module. # Do not parse preclusions for bridging modules! if "level" not in preclusions_string: preclusion_groups = ModuleParser.precludeModule(module_code, nusmods_module["preclusion"]) preclusions = preclusion_groups[0] modules[module_code] = { "code" : nusmods_module["label"], "name" : nusmods_module["title"], "description" : description, "mc" : int(nusmods_module["mcs"]), "faculty" : faculty, "preclusions_string" : preclusions_string, "preclusions" : preclusions, "prerequisites_string" : prerequisites_string, "prerequisites" : prerequisites } if "workload" in nusmods_module: modules[module_code]["workload"] = nusmods_module["workload"] return modules