diff --git a/courseinfo_scraper/CourseOfferingsScraper.cpp b/courseinfo_scraper/CourseOfferingsScraper.cpp index c624509..4337226 100644 --- a/courseinfo_scraper/CourseOfferingsScraper.cpp +++ b/courseinfo_scraper/CourseOfferingsScraper.cpp @@ -239,7 +239,15 @@ void handle_everything(const Json::Value& sections, const Json::Value& term_prereqs) { Json::Value& course_term = course_terms[term]; const auto& course_id = course["id"].asString(); - course_term["title"] = course["title"]; + // course_term["title"] = course["title"]; + std::set titles; + for(const auto& sec : course["sections"]) { + titles.insert(sec["title"].asString()); + } + course_term["title"] = Json::arrayValue; + for(const auto& title : titles) { + course_term["title"].append(title); + } handle_sections(sections,course_term); course_terms["latest_term"] = term; handle_attributes(sections[0],course_id,course_term,out_prereqs); diff --git a/courseinfo_scraper/GenerateHtml.cpp b/courseinfo_scraper/GenerateHtml.cpp index d21f245..f1b011d 100644 --- a/courseinfo_scraper/GenerateHtml.cpp +++ b/courseinfo_scraper/GenerateHtml.cpp @@ -417,7 +417,7 @@ void generate_table_cell(const int year, std::ostream& os) { std::string year_term = std::to_string(year) + term_to_number.at(term); const auto& term_offered = terms_offered[year_term]; - const auto& course_title = term_offered["title"].asString(); + const auto& course_titles = term_offered["title"]; const auto& credit_string = generate_credit_string(term_offered["credits"]); tag(os,TAG::COMPLEX_BEGIN) << R"()" << course_title << " (" << credit_string << "c)"; + << R"(">)" << course_titles[0].asString() << " (" << credit_string << "c)"; for(const auto& attr : term_offered["attributes"]) { os << ' ' << attr.asString(); } - os << '\n'; + for(int i = 1; i < course_titles.size(); i++) { + os << "
" << course_titles[i].asString(); + } + os << "" << '\n'; tag(os,TAG::END,"span"); tag(os,TAG::BEGIN,R"(ul class="prof-list")"); @@ -547,7 +550,7 @@ get_course_title_and_description(const std::string& course_id, if(catalog_entry) { title = catalog_entry["name"].asString(); } else { - title = terms_offered[latest_term]["title"].asString(); + title = terms_offered[latest_term]["title"][0].asString(); } if(catalog_entry) { description = catalog_entry["description"].asString();