コード例 #1
0
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
コード例 #2
0
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