# HG changeset patch # User Matti Hamalainen # Date 1440402597 -10800 # Node ID 074a4a00af083c060419e0387b5045d340e0d474 # Parent 0c3c27de67103a8042378e73f9a41ef0e41eab6b Refactor course cache updating. diff -r 0c3c27de6710 -r 074a4a00af08 index.php --- a/index.php Sun Aug 23 19:39:48 2015 +0300 +++ b/index.php Mon Aug 24 10:49:57 2015 +0300 @@ -188,12 +188,34 @@ } +function lukFetchCourseData($uri, &$cache) +{ + global $pageCharset; + + if (($data = @file_get_contents($uri)) !== FALSE) + { + $data = @iconv("iso8859-15", $pageCharset, $data); + // Korjausrakentamisen rakennussuunnittelu 3 op + if (preg_match("#(.+?)\s+(\d+)\s*(op|ECTS\s+cr)\s*#", $data, $m)) + { + $cache = array("desc" => $m[1], "op" => intval($m[2]), "uri" => $uri); + return TRUE; + } + else + // ... (N op) + if (preg_match("#(.+?)\s+\((\d+)\s*(op|ECTS\s+cr)\)\s*#", $data, $m)) + { + $cache = array("desc" => $m[1], "op" => intval($m[2]), "uri" => $uri); + return TRUE; + } + } + return FALSE; +} + + function lukMatchCourse($id) { - global $cache, $cacheDirty, $pageCharset, $pageLang, $mobileMode; - - //$uri = "http://www.oamk.fi/opiskelijalle/rakenne/opinto-opas/koulutusohjelmat/?sivu=oj&kieli=".strtoupper($pageLang)."&koodi1=".$id; - $uri = "http://www.oamk.fi/koulutus_ja_hakeminen/opiskelu_oamkissa/opinto-opas/koulutusohjelmat/?sivu=oj_kuvaus&koodi1=".$id."&kieli=".strtoupper($pageLang); + global $cache, $cacheDirty, $pageLang, $mobileMode; // Create the index if (!isset($cache[$id])) @@ -203,19 +225,12 @@ if (!isset($cache[$id][$pageLang])) { // Not cached, try to fetch data - $cacheDirty = TRUE; - $data = @file_get_contents($uri); - if ($data !== FALSE) - { - $data = @iconv("iso-8859-15", $pageCharset, $data); - if (preg_match("#(.+?)\s+(\d+)\s*(op|ECTS\s+cr)\s*#", $data, $m)) - { - // Add data to cache - $cache[$id][$pageLang] = array("desc" => $m[1], "op" => intval($m[2])); - } - } + $uri = "http://www.oamk.fi/opinto-opas/opintojaksohaku/?sivu=oj_kuvaus&koodi1=".$id."&kieli=".strtoupper($pageLang); + if (lukFetchCourseData($uri."&opas=2015-2016", $cache[$id][$pageLang]) || + lukFetchCourseData($uri."&opas=2014-2015", $cache[$id][$pageLang])) + $cacheDirty = TRUE; } - + if (isset($cache[$id]) && isset($cache[$id][$pageLang])) { if ($mobileMode) @@ -226,7 +241,7 @@ { return "".chentities($cache[$id][$pageLang]["desc"]).""; + "\" href=\"".chentities($cache[$id][$pageLang]["uri"])."\">".chentities($cache[$id][$pageLang]["desc"]).""; } } else