$id = (int) $matches[1]; // Crappy continue after break scheme if ($id === $startId) { $skip = false; } if ($skip === true) { $log->write("Skipping {$id}"); flush(); continue; } $class = explode('</td>', $class); foreach ($class as &$entry) { $entry = StringUtil::textFromHtml($entry); } $page = $curl->fetchPageAndLogin(OCI_SERVER . "/oci/resultDetail.jsp?course={$id}&term={$term}", null, false, true); $courseInfo = extractCourseInfo($page); $courseNames = new MysqlTable($mysqli, 'course_names'); $existingEvaluationId = false; foreach ($courseInfo['course_codes']['listings'] as &$listing) { $courseNames->retrieve(array('subject', 'number', 'section'), array($listing['subject'], $listing['number'], $courseInfo['course_codes']['section']), array('course_id')); if ($courseNames->resultsExist) { $existingEvaluationId = $courseNames->info['course_id']; break; } } $courses = new MysqlTable($mysqli, 'courses'); $infoToSet = extractFieldsFromArray(array('title', 'description', 'requirements', 'extra_info'), $courseInfo); $infoToSet['exam_group'] = $courseInfo['exam']['group']; if ($existingEvaluationId) { $infoToSet['id'] = $existingEvaluationId; }
function extractEvaluationInfo($page, $professors, $type) { $evaluationInfo = array(); $evaluationInfo['courses'] = extractCourseInfo($page); $evaluationInfo['season'] = $season; $evaluationInfo['professors'] = professorsFromField($professors); foreach ($radioButtonPages as $columnPrefix => &$pageType) { $page = $curl->fetchPageAndLogin("https://faculty.yale.edu/viewevals/Search/ViewAnswersByQuestion?subType=all&ap=0&qid={$qidPrefixes[$type]}{$pageType['qid_number']}&na=10000", null, false, true); if (!empty($page)) { $responses = getRadioCheckedFrequenciesInPage($pageType['labels'], $page); foreach ($responses as $columnSuffix => &$response) { $evaluationInfo[$columnPrefix . $columnSuffix] = $response; } } } $evaluationInfo['comments'] = array(); foreach ($commentPages as &$qidNumber) { $page = $curl->fetchPageAndLogin("https://faculty.yale.edu/viewevals/Search/ViewAnswersByQuestion?subType=all&ap=0&qid={$qidPrefixes[$type]}{$qidNumber}&na=10000", null, false, true); if (empty($page)) { continue; } $comments = getCommentsFromPage($page); if (!empty($comments)) { $evaluationInfo['comments'][(int) $qidNumber] = $comments; } } }