Ejemplo n.º 1
0
def main(semester,year):
    # Hardcoded values
    url_base = "http://ssbp.mycampus.ca"
    url_action = "/prod/bwckschd.p_get_crse_unsec"

    # Set metaData (used by database storer)
    metaData = {
        'term': semester,
        'year': year
    }

    # Everything is in catch-all try block
    try:
        # Instantiate objects
        courseData = []
        pageParser = Parser(courseData)

        # === PHASE 1: PARSING ===

        # Set list of faculties to parse
        facsToUse = acros.faculties
        #facsToUse = ["ENGR"]

        # Parse for each faculty
        facSoFar = 0
        for faculty in facsToUse:
            facSoFar += 1
            # Print out which faculty is being parsed
            outta = str(facSoFar)+"/"+str(len(facsToUse))
            logging.info("Parsing faculty: "+outta+" "+faculty+": "+acros.faculties[faculty])

            # Instanciate page loader and get page
            #pageLoader = PageLoader(url_base,url_action,semester,year,faculty)
            #page = pageLoader.get_page(pageLoader.gen_url_and_data());
            with open('last_source.html','r') as f:
                page = ''.join(f.readlines());

            bs = BowlShit(page)
            """
            with open('last_source.html','w') as f:
                f.write(page)
            """

            # Parse page
            pageParser.parse_course_info(page)

        with open('last_object_dump.txt','w') as f:
            util.log_anything_prettily(lambda t: f.write(t + "\n"),courseData)
            #pickle.dump(courseData,f)

        # === PHASE 2: STORING ===
        frf = FRFStore()
        frf.set_course_data(courseData,metaData)
        frf.setup_default_connection()
        frf.insert_data_as_offerings()

    except SomethingWentWrong as e:
        logging.exception("Something terrible(?) happened!!")