<?php include_once '../lib/util.php'; $db = new DBAdmin(); $begin = isset($argv[1]) ? (int) $argv[1] : 0; $end = isset($argv[2]) ? $argv[2] : NULL; echo 'Updating `raw` table ... '; $year = $db->single("SELECT MAX(`value`) FROM `config`\n \tWHERE `name` = 'year'"); $q = $db->query('SELECT * FROM `list` WHERE `year` = ? ORDER BY `id`', $year); while ($row = $q->fetch_assoc()) { if ($begin <= $row['id'] && (is_null($end) || $row['id'] <= $end)) { $query = "?NENDO={$row['year']}&BUKYOKU=" . "{$row['department_code']}&CODE={$row['internal_code']}"; $html = sjis2utf(file_get_contents(HTML_URL . $query)); $text = sjis2utf(file_get_contents(TEXT_URL . $query)); if (mb_strpos($text, '<TITLE>授業が見つかりません</TITLE>') !== FALSE) { continue; } $db->replace('raw', array('id' => $row['id'], 'html' => $html, 'text' => $text)); } echo "[26G[K{$row['id']}"; } $db->close(); echo " " . PRINT_OK . PHP_EOL;
<?php include_once '../lib/util.php'; $db = new DBAdmin(); echo 'Updating `summary` table ... '; $table = $db->query('SELECT `list`.`id`, `list`.`year`, `department`.`department_id`, `htmldata`.`code`, `htmldata`.`title`, `htmldata`.`title_english`, `htmldata`.`credit`, `htmldata`.`target`, `htmldata`.`style`, `htmldata`.`note`, `htmldata`.`public`, `htmldata`.`ches` FROM `list` LEFT JOIN `htmldata` ON `list`.`id` = `htmldata`.`id` LEFT JOIN `department` ON `list`.`department_code` = `department`.`department_code` ORDER BY `list`.`id`'); $db->begin(); while ($row = $table->fetch_assoc()) { $row = array_map(function ($s) { return trim(kana($s)); }, $row); if ($row['code'] === '') { $row['code'] = NULL; } $db->replace('summary', $row); echo "[30G[K{$row['id']}"; } $db->commit(); $db->close(); echo " " . PRINT_OK . PHP_EOL;
$db->begin(); while ($row = $q->fetch_assoc()) { $department = $db->single('SELECT * FROM `department` WHERE `department_id` = ?', $row['department_id']); $icode = $db->single('SELECT `internal_code` FROM `list` WHERE `id` = ?', $row['id']); $teacher = array_map(function ($t) { return implode($t); }, $db->query('SELECT `staff`.`name` FROM `teacher` INNER JOIN `staff` ON `staff`.`staff_id` = `teacher`.`staff_id` WHERE `id` = ? ORDER BY `teacher`.`main` DESC', $row['id'])->fetch_all(MYSQL_ASSOC)); $semester = NULL; if (is_null($row['semester_id']) === FALSE) { $semester = $db->single('SELECT `description` FROM `semester` WHERE `semester_id` = ?', $row['semester_id']); } $schedule = array_map(function ($a) { return array('day' => is_null($a['day']) ? NULL : (int) $a['day'], 'period' => is_null($a['period']) ? NULL : (int) $a['period'], 'early' => (bool) $a['early'], 'late' => (bool) $a['late'], 'intensive' => (bool) $a['intensive'], 'irregular' => (bool) $a['irregular']); }, $db->query('SELECT * FROM `schedule` WHERE `id` = ?', $row['id'])->fetch_all(MYSQL_ASSOC)); $classroom = $db->query('SELECT `department`.`name` as `place`, `department`.`department_code` as `place_code`, `room`.`name` as `name` FROM `classroom`INNER JOIN `room` ON `room`.`room_id` = `classroom`.`room_id` INNER JOIN `department` ON `department`.`department_id` = `room`.`department_id` WHERE `classroom`.`id` = ?', $row['id'])->fetch_all(MYSQL_ASSOC); $db->replace('json', array('id' => $row['id'], 'json' => json_encode(array('id' => (int) $row['id'], 'year' => (int) $row['year'], 'department' => $department['name'], 'department_code' => $department['department_code'], 'code' => $row['code'], 'query' => "?NENDO={$row['year']}&BUKYOKU=" . "{$department['department_code']}&CODE={$icode}", 'title' => $row['title'], 'title_english' => $row['title_english'], 'teacher' => $teacher, 'semester' => $semester, 'schedule' => $schedule, 'classroom' => $classroom, 'credit' => (double) $row['credit'], 'target' => $row['target'], 'style' => $row['style'], 'note' => $row['note'], 'public' => (bool) $row['public'], 'ches' => (bool) $row['ches'])))); echo "[31G[K{$row['id']}"; } $db->commit(); $db->close(); echo " " . PRINT_OK . PHP_EOL;
$data['code'] = $tmp[1]->table->tbody->tr[0]->td[3]; $data['public'] = (int) (strpos($tmp[0], '市民開放授業') !== FALSE); $data['ches'] = (int) (strpos($tmp[0], '県内大学') !== FALSE); $tmp = $tmp[1]->table->tbody->tr; $data['title'] = $tmp[1]->td[1]; if (substr($data['code'], 0, 1) !== 'M') { $data['title_english'] = $tmp[2]->td; $data['teacher'] = $tmp[3]->td[1]; $data['sub_teacher'] = $tmp[3]->td[3]; $data['semester'] = $tmp[4]->td[1]; $data['schedule'] = $tmp[4]->td[3]; $data['classroom'] = $tmp[4]->td[5]; $data['credit'] = $tmp[4]->td[7]; $data['target'] = $tmp[5]->td[1]; $data['style'] = $tmp[5]->td[3]; $data['note'] = $tmp[5]->td[5]; } else { $data['teacher'] = $tmp[2]->td[1]; $data['semester'] = $tmp[3]->td[3]; $data['schedule'] = $tmp[3]->td[5]; $data['classroom'] = $tmp[4]->td[3]; $data['credit'] = (double) kana($tmp[4]->td[1]); $data['target'] = $tmp[3]->td[1]; $data['note'] = $tmp[1]->td[3]; } $db->replace('htmldata', $data); echo "[31G[K{$row['id']}"; } $db->commit(); $db->close(); echo " " . PRINT_OK . PHP_EOL;