예제 #1
0
$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;
예제 #2
0
$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;