$curl = new YaleCurl(); $curl->setCookieFile(TEMP_PATH . '/FetchClasses/cookies.txt'); $curl->setAutoLoginParameters(CAS_USERNAME, CAS_PASSWORD); $mysqli = ProjectFunctions::createMysqli(); MysqliUtil::prepareMysqli($mysqli); foreach ($c['SUBJECT_CODES'] as $courseSubject) { if ($courseSubject === $startSubject) { $skipSubject = false; } if ($skipSubject) { continue; } $searchPost['ProgramSubject'] = urlencode($courseSubject); $log->write("Doing {$courseSubject}"); flush(); $page = $curl->fetchPageAndLogin(OCI_SERVER . '/oci/resultWindow.jsp', $searchPost, false, true); $curl->fetchPageAndLogin(OCI_SERVER . '/oci/resultFrame.jsp', null, false, true); $classes = explode('</tr>', $curl->fetchPageAndLogin(OCI_SERVER . '/oci/resultList.jsp', null, false, true)); array_shift($classes); array_pop($classes); foreach ($classes as &$class) { preg_match('@course=([0-9]*)@', $class, $matches); $id = (int) $matches[1]; // Crappy continue after break scheme if ($id === $startId) { $skip = false; } if ($skip === true) { $log->write("Skipping {$id}"); flush(); continue;
$curl->setCookieFile(TEMP_PATH . "/FetchRatings/{$cookieFileName}.txt"); $curl->setAutoLoginParameters(CAS_USERNAME, CAS_PASSWORD); $mysqli = ProjectFunctions::createMysqli(); MysqliUtil::prepareMysqli($mysqli); $pid = getmypid(); foreach ($c['SUBJECT_CODES'] as $courseSubject) { if ($courseSubject === $startSubject) { $skipSubject = false; } if ($skipSubject) { continue; } $log->write("{$pid} Processing {$courseSubject}", E_NOTICE, $logFlags); $rawCourseSubject = $courseSubject; $courseSubject = urlencode($courseSubject); $subjectPage = $curl->fetchPageAndLogin("https://students.yale.edu/evalsearch/Search?sc={$courseSubject}", null, false, true); $matches1 = array(); $matches2 = array(); preg_match_all('@([a-z]*Evals)\\(([0-9]*),([0-9]*)\\);">[^<]*</a></td><td nowrap>[^<]*</td><td>[^<]*</td><td>([^ ]*)[^0-9]([^<]*)</td><td>([^<]*)@', $subjectPage, $matches1, PREG_SET_ORDER); preg_match_all('@([a-z]*Evals)\\(([0-9]*),([0-9]*)\\);">[^<]*</a></td><td nowrap>[^<]*</td><td>[^<]*</td><td>([^ ]*)[^0-9]([^<]*)<span[^<]*</span>[^<]*<div[^<]*</div>[^<]*</td><td>([^<]*)@', $subjectPage, $matches2, PREG_SET_ORDER); $evaluationData = array_merge($matches1, $matches2); foreach ($evaluationData as &$evaluation) { $crn = (int) $evaluation[2]; $season = $evaluation[3]; $type = mb_strtolower($evaluation[1]); $professors = $evaluation[6]; $thisListing = array(); $thisListing['number'] = $evaluation[4]; $thisListing['section'] = (int) $evaluation[5]; $thisListing['season'] = $season; $thisListing['subject'] = $rawCourseSubject;